Wiki
Clone wikiCooperari / Cooperari 0.1 archive
Archived material of Cooperari 0.1
Check for more recent releases of Cooperari at GitHub.
(Click above for the PPPJ'14 paper and talk slides)
About Cooperari
Cooperari is a tool for cooperative testing of multithreaded Java applications.
See our PPPJ'14 paper, presentation slides, and simple demo. These and other resources are also listed below.
Original authors
Eduardo R. B. Marques, Francisco Martins and Miguel Simões, Large-Scale Informatics Systems Laboratory , University of Lisbon.
Downloads
- Cooperari: A Tool for Cooperative Testing of Multithreaded Java Programs, PPPJ'14.
- PPPJ'14 talk slides
- PPPJ'14 talk - simple demo example (Eclipse project).
- Alll the PPPJ'14 benchmark examples (Eclipse project).
- Cooperari JAR file and AspectBench Compiler JAR file
- Cooperative testing of multithreaded Java programs, Miguel Simões, MSc Thesis, Mestrado em Engenharia Informática, Faculdade de Ciências da Universidade de Lisboa, 2014
Trying out Cooperari
Requirements
Cooperari has been tested with Java 7 and Eclipse Indigo / Kepler. It does NOT work yet with Java 8. If you use Eclipse Luna, you need to configure a Java 7 runtime environment.
With these settings, you should be able to import the PPPJ'14 projects above onto Eclipse (they already include the Cooperari and AspectBench Compiler JAR files).
To create your own tests, download the Cooperari and AspectBench JAR file and make sure they are in your classpath.
Classpath configuration
To run tests cooperatively, you currently need to create the "instrumented" directory manually as part of the Java classpath. It should precede all other items in the classpath.
In Eclipse: run a test class once ("Run As/JUnit Test") to create a fresh run configuration. Then change the classpath of the run configuration, ensuring that the "instrumented" directory has precedence over the default classpath ("Run As/Run Configurations/ClassPath/User Entries/Advanced/Add Folder").
Acknowledgements
-
Cooperari makes use of the abc compiler for AspectJ-based bytecode instrumentation, and in particular the RacerAJ extensions to abc.
-
The multithreaded program examples we used are taken from the SIR repository and the ConTest benchmark suite.
Updated