| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
GitBug-Java is a reproducible Java benchmark of recent bugs.
If you use GitBug-Java in your research work, please cite GitBug-Java: A Reproducible Benchmark of Recent Java Bugs (MSR 2024)
@inproceedings{gitbugjava,
title={GitBug-Java: A Reproducible Benchmark of Recent Java Bugs},
author={Silva, Andr{\'e} and Saavedra, Nuno and Monperrus, Martin},
booktitle={Proceedings of the 21st International Conference on Mining Software Repositories},
doi={10.1145/3643991.3644884}
}Requirements:
Python (Recommended 3.11)
Poetry (Recommended 2.0 and higher)
Docker (v20 or higher)
If you are on Ubuntu/Debian, choose a system with GLIBC 2.32 or 2.34 as some of the dependencies require these versions (A docker image would not be suitable as it would require DinD).
For example you can create a virtual machine of ubuntu 21.10 (glibc 2.32). Here is a quick setup of an ubuntu VM:
multipass launch 21.10 --disk 280G --memory 16G --cpus 2multipass shell VM-NAME-PRINTED-LAST-STEPOnce the above requirements are satisfied within your system or the VM machine is created, clone this repository and execute the following steps:
Setup Python environment
poetry shell
poetry install --no-rootNote: Poetry shell will attempt to create a new virtual environment. However, if you are already inside a virtual environment, poetry will use the that environment. In such case, the subsequent commands would only work with a Python3.11 environment.
Add GitBug-Java and custom Act version to path
export PATH="$(pwd):$(pwd)/bin:$PATH"Note: The above command needs to be executed on every new shell instance
Run Setup (Installs Docker Image ~50GiB, downloads required dependencies ~80GiB). The downloadable data size is around 130GB. However, after unzipping files, the space taken goes up to 240GB (it goes down after deleting the zipped files).
gitbug-java setupNOTE: Ensure that all gitbug-java commands are executed without using sudo to guarantee correct functionality.
gitbug-java pidsgitbug-java bids [-p=PID]gitbug-java checkout BID WORK_DIR [--fixed]gitbug-java run WORKDIR [--act_cache_dir=ACT_CACHE_DIR | --timeout=TIMEOUT]A verbose mode is also available with the option -v or --verbose.
The parsed test execution results are stored, after executing the gitbug-java run command, under ${WORKDIR}/.gitbug-java/test-results.json The file includes the following information:
{
"expected_tests": num_expected_executed_tests,
"executed_tests": num_executed_tests,
"skipped_tests": num_skipped_tests,
"passing_tests": num_executed_tests - num_failed_tests,
"failing_tests": num_failed_tests,
"unexpected_tests": list(unexpected_tests),
"missing_tests": list(missing_tests),
"failed_tests": [
{"classname": test.classname, "name": test.name}
for test in failed_tests
],
"run_outputs": [
{
"workflow_name": run.workflow_name,
"stdout": run.stdout,
"stderr": run.stderr,
}
for run in runs
],
}Note: Our output includes information from the entire GitHub Action run, including the stack-trace from the test run but also the output from other steps in the executed workflows. This is different from benchmarks such as Defects4J that provide only the test execution stack-trace segregated from other outputs. Currently, we do not support extracting only the test execution stack-trace.
| Back | FazBrowse Home | New Git URL |