- JDK11+
- node 14.xx
- npm 8.1.4
- gradle 6.5 or 7.3.1
This project is a tool to visualize the program repair process of an Automated Program Repair tool written in Java for Java, kGenProg. It focuses specifically on the visualization of suspicious values.
Use the following command to clone the project. Since this project contains submodules, the submodules will not be downloaded without the "--recursive" option.
git clone --recursive https://github.com/SEED0228/grackle.git
First,build the kGenProg project. Go to the kGenProg directory to do that.
cd kGenProg
Build with the gradle command. At this point, please make sure you have version 6.5.1 or 7.3.1 of gradle installed on your PC.
gradle build
Secondly, let kGenProg, a modified version of the original that can output source code and suspicious values as JSON files do the automatic program modification. To do so, place the program and unit test program somewhere in the kGenProg folder and execute the following command. For more information about the kGenProg command, please see here. Note that you will need to use the "--history-record" option to output JSON to use this project.
java -jar build/libs/kGenProg-1.8.2.jar -r ./ -s <java program path> -t <unit test program path> --history-record
For example, run a command like the following. At this point, please make sure you have version 11 of jdk installed on your PC.
java -jar build/libs/kGenProg-1.8.2.jar -r ./ -s example/CloseToZero04/src/example/CloseToZero.java -t example/CloseToZero04/src/example/CloseToZeroTest.java --history-record
If you run the above command, you should see kgenprog-out output.
Then, return to the directory of this project.
cd ..
Finally, set up the project.
npm install
In addition, compiles and hot-reloads for development.
npm run serve
Then, access the local host on port 8080 with a browser and select the JSON file generated earlier (maybe kGenProg/kgenprog-out/history.json) in the selection form on the upper right.
Then you will be able to see the automatic modification process of kGenProg.
npm install
npm run serve
npm run build
npm run lint
Copyright (c) 2018-2021 the kGenProg team in Kusumoto Lab (Yoshiki Higo, Shinsuke Matsumoto, Ryo Arima, Akito Tanikado, Keigo Naitou, Hiroyuki Matsuo, Junnosuke Matsumoto, Yuya Tomida, Kaisei Hanayama, Tetsushi Kuma, Ryoko Izuta, and Hiroto Watanabe) https://github.com/kusumotolab/kGenProg