TSVD4J detects thread-safety violations for Java projects, which is based off of the TSVD approach with some extentions.
If you use this tool, please cite: Shanto Rahman, Chengpeng Li, and August Shi. "TSVD4J: Thread-Safety Violation Detection for Java."45th International Conference on Software Engineering (ICSE-Demo). IEEE, 2023.
Our video demonstration of TSVD4J is available here.
mvn clean installcd scripts/Run the following command to automatically setup the pom.xml.
bash pom-modify/modify-project.sh path_to_maven_projectFor example,
bash pom-modify/modify-project.sh Project/dataRace-Example/Copy the following plugin into the Maven project's pom.xml. You do not need to perform this step if you have already completed the instructions in Automatically setting up the pom.xml for TSVD4J.
<build>
...
<plugins>
...
<plugin>
<groupId>edu.utexas.ece</groupId>
<artifactId>tsvd4j-maven-plugin</artifactId>
<version>0.1-SNAPSHOT</version>
</plugin>
</plugins>
</build>Once TSVD4J is added to a Maven project, one can then run TSVD4J on the project with the following command.
mvn tsvd4j:tsvd4jIf you need only to keep track of the thread safety violation(TSV) occured by Java field, run the following command.
mvn tsvd4j:tsvd4j -DfieldIf you need only to keep track of thread safety violation(TSV) occured by the Java API, run the following command.
mvn tsvd4j:tsvd4j -DapiFor Cleaning the output directory of .tsvd4j/, run the following command. It will remove the .tsvd4j/ directory
mvn tsvd4j:clean