This demo reproduces the result of the paper "Automated Patch Extraction via Syntax- and Semantics-Aware Delta Debugging on Source Code Changes" accepted by ESEC/FSE 2018.
Python is used to run the demo. Download a helper script ddjdemo_esecfse2018.py. Then pull the image.
$ docker pull codecontinuum/ddj:esecfse2018
At least 8GB RAM per core will be required to run the demo.
The following command will run Docker to list the available projects.
$ ./ddjdemo_esecfse2018.py list
It should result in the following lines:
docker run --rm -u ddj codecontinuum/ddj:esecfse2018 /home/ddj/scripts/info.py
12 projects found:
projects from Defects4J:
Chart_d4j (11 examples) (2 parts)
Closure_d4j (69 examples) (14 parts)
Lang_d4j (22 examples) (5 parts)
...
Then the following will show the available example IDs of Chart_d4j.
$ ./ddjdemo_esecfse2018.py list Chart_d4j
It should result in the following lines:
docker run --rm -u ddj codecontinuum/ddj:esecfse2018 /home/ddj/scripts/info.py Chart_d4j
Chart_d4j (11 examples):
[6, 9, 10, 11, 18], [20, 21, 22, 23, 24, 26]
$ ./ddjdemo_esecfse2018.py run Chart_d4j -e 6 -o XXX
The above command will run Docker to perform DDJ on example 6 of Chart_d4j (bug 6 of Chart in Defects4J). The results will be placed at XXX. It took about 20 minutes on MacBook Pro 13-inch. If you write -p 0 instead of -e 6, it will process multiple examples 6, 9, 10, 11, and 18. If you want to try DDP, add --plain to the command line.
Content type
Image
Digest
Size
2.7 GB
Last updated
almost 6 years ago
docker pull codecontinuum/ddj