JetBrains-Research / JetBrains-Research/TestSpark

Dockerize IntelliJ IDEA build and TestSpark commit for hermetic headless mode executions

Open
#489 0 comments 0 reactions 0 assignees View on GitHub
new feature
Dominant language
Kotlin
Stars
88
Forks
24
PR merge metrics
No merged PRs in 30d

Description

### Involved Module
- [ ] UI
- [ ] EvoSuite
- [ ] LLM
- [ ] Kex
- [x] Other: **headless mode**

### Description
Currently, we have two sources of change: TestSpark's headless mode implementation and Gradle/IDEA APIs that change when IntelliJ IDEA is updated (e.g., the transition from Gradle API 1.x to 2.x). Preservation of TestSpark's commit along is not sufficient to have **reproducibility of headless mode runs**.

In order to achieve headless mode run reproducibility, we need to freeze both TestSpark and IntelliJ IDEA versions.

### Solution:
Implement dockerization functionality that freezes versions of both IntelliJ IDEA and TestSpark (that are shown to be compatible with each other in terms of headless mode correct functionality) and installs them on demand when a Docker container is bootstrapped.

### Notes

This is a potentially big work, so it is a subject for an internship or a student's semester project.

### Definition of Done
* [ ] Dockerize IntelliJ IDEA build version and install it on-demand via a script.
* [ ] Dockerize TestSpark's commit with the headless mode version that runs successfully against the selected IntelliJ.
* [ ] Implement automation scripting that would allow user-friendly executions of headless mode.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.