JetBrains-Research / JetBrains-Research/TestSpark
Dockerize IntelliJ IDEA build and TestSpark commit for hermetic headless mode executions
- 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
Assessment
This issue has not been assessed yet.