This project aims to detect semantic conflicts by generating and running test suites on merge scenarios.
- Clone the project locally using the command on your prompt: git clone https://github.com/leusonmario/SMAT
- After cloning, you must rename the configuration file env-config.template.json for env-config.json, and set up the required information for java_home. You must inform the location that Java was installed on your project. In case this environment variable is already configured, you don't need to inform this information again.
- Next, you must inform the path of the file with the list of merge scenarios to be analyzed for the field path_hash_csv. Bellow, we provide further information to use the dataset we used to perform our study.
- Our scripts require Python 3.6.x. In case you are running the scripts on a Linux terminal, you can just call the semantic_study.py file (python3 semantic_study.py). As a result, the file semantic_conflict_results.csv and the folder output-test-dest grouping the generated test suites will be created.
- Clone the project MergeDataSet locally.
- Next, perform a checkout for the commit c8b965f.
- Finally, run the script get_sample.py.
- As a result, the file results_semantic_study.csv will be created. If you want to analyze other merge scenarios, you must provide a file the same information provided in our dataset.