ConTeGe (short for Concurrent Test Generator) is a framework for generating sequential and concurrent unit tests. It is a research platform to build tools for finding correctness and performance problems in sequential and concurrent Java classes. In particular, ConTeGe is the basis for the following approaches:
See thread-safe.org for details.
Fully Automatic and Precise Detection of Thread Safety Violations
by Michael Pradel and Thomas R. Gross
at Conference on Programming Language Design and Implementation (PLDI), 2012
An approach for automatic substitutability testing that finds various bugs in widely used Java classes
See this page for details.
Automatic Testing of Sequential and Concurrent Substitutability
by Michael Pradel and Thomas R. Gross
at International Conference on Software Engineering (ICSE), 2013
See the SpeedGun branch for details.
Performance Regression Testing of Concurrent Classes
by Michael Pradel, Markus Huggler, and Thomas R. Gross
at International Symposium on Software Testing and Analysis (ISSTA), 2014
To run a pre-built version equivalent to the PLDI'12 paper, run the following from the ConTeGe
direcory:
./scripts/ClassTester_pre-built.sh
It will test the XYSeries
class from the benchmarks directory and (hopefully) find a thread safety violation after a few seconds. To test other classes and run more benchmarks, see the comments in this and the other scripts.