|
ABSTRACT
With the proliferation of the new multi-core personal computers, and the explosion of the usage of highly concurrent machine configuration, concurrent code moves from being written by the select few to the masses. As anyone who has written such code knows, there are many traps awaiting. This increases the need for good concurrency-aware tools to be used in the program quality cycle: monitoring, testing, debugging, and the emerging field of self-healing. Academics who build such tools face two main difficulties; writing the instrumentation infrastructure for the tool, and integrating it into real user environments to obtain meaningful results. As these difficulties are hard to overcome, most academic tools do not make it past the toy stage. The ConTest Listener architecture provides instrumentation and runtime engines to which writers of test and heal tools, especially concurrency-oriented, can easily plug their code. This paper describes this architecture, mainly from the point of view of a user intending to create a testing/healing tool. This architecture enables tool creators to focus on the concurrent problem they are trying to solve without writing the entire infrastructure. In addition, once they create a tool within the ConTest Listeners framework the tool can be used by the framework users with no additional work, enabling access to real industrial applications. We show how to create tools using the architecture and describe some work that has already taken place.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
C. Artho, K. Havelund, and A. Biere. High-level data races. In VVEIS'03, The First International Workshop on Verification and Validation of Enterprise Information Systems, April 2003.
|
| |
2
|
AspectJ Team. The AspectJ programming guide. Version 1.5.3. Available from http://eclipse.org/aspectj, 2006.
|
 |
3
|
|
 |
4
|
Arkady Bron , Eitan Farchi , Yonit Magid , Yarden Nir , Shmuel Ur, Applications of synchronization coverage, Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming, June 15-17, 2005, Chicago, IL, USA
[doi> 10.1145/1065944.1065972]
|
 |
5
|
|
| |
6
|
S. Copty and S. Ur. Multi-threaded testing with aop is easy, and it finds bugs! In Proc. 11th International Euro-Par Conference, pages 740--749. LNCS, 2005.
|
| |
7
|
S. Copty and S. Ur. Toward automatic concurrent debugging via minimal program mutant generation with aspectj. In TV06, 2006.
|
| |
8
|
Eclipse Organization. Welcome to eclipse (plugin developer guide). http://eclipse.org/documentation, 2005.
|
| |
9
|
O. Edelstein, E. Farchi, Y. Nir, G. Ratzaby, and S. Ur. Multithreaded java program test generation. IBM Systems Journal, 41(3):111--125, 2002.
|
| |
10
|
|
| |
11
|
E. Farchi, Y. Nir-Buchbinder, and S. Ur. Cross-run lock discipline checker for java. In Parallel and Distributed Systems: Testing and Debugging (PADTAD - 3), November 2005.
|
| |
12
|
|
| |
13
|
Mozilla FireFox. developer center. http://developer.mozilla.org/en/docs/Main_Page.
|
 |
14
|
|
| |
15
|
|
| |
16
|
|
CITED BY
|
|
Zdeněk Letko , Tomáš Vojnar , Bohuslav Křena, AtomRace: data race and atomicity violation detector and healer, Proceedings of the 6th workshop on Parallel and distributed systems: testing, analysis, and debugging, p.1-10, July 20-21, 2008, Seattle, Washington
|
|