The Transterpreter Project

Concurrency, everywhere.

Test Suite

We did not have a test suite in place for the entire development cycle. However, as of last night, we now have the "cgtest" suite. This is the original compiler test suite for the INMOS occam compiler that has grown over the years along side the Kent Retargetable occam Compiler. With over 1,000 tests in the suite, it is intended to stress every language construct in occam, so as to provide a comprehensive test of the compiler. We're using it more to test our linker and virtual machine, but that's valid as well. At 2:30 AM, Christian dropped a note with the following results (HTML styling applied): cgtest00: all (305) - misc bits cgtest01: all (326) - more misc cgtest02: all (54) - SEQ + PAR cgtest03: Does not slink (widenshort) cgtest04: all (120) - Abbreviations cgtest05: all (405) - Loop + Replication - takes 21:38 to slink(!) on a G4 1.5Ghz cgtest06: Does not slink (widenshort) cgtest07: Does not slink (widenshort) cgtest08: Passes tests until TALT, when it bombs! cgtest09: Does not slink (widenshort) cgtest10: Uses floating point numbers cgtest11: Uses floating point numbers cgtest12: Uses floating point numbers cgtest13: Does not slink (starttable) cgtest14: Uses floating point numbers cgtest15: Uses floating point numbers cgtest16: all (26) - Multi assignment of arrays cgtest17: Does not compile (Special name .VSPTR is not permitted at this pos) cgtest18: Does not slink (realresult) cgtest19: Uses floating point numbers cgtest20: Uses floating point numbers This is very, very significant. Christian set the tests up yesterday, and with some minor additions and bugfixes, he got us to the point where we were passing several large tracts of the tests. That is, the slinker handles the code correctly, and the transterpreter virtual machine executes it correctly. These tests (with the exception of TALT) represent 99.999% of anything a student might do in working with a small robot. The floating point tests will, for now, all be emulated with a pure-occam library that can be included at compile time. We will eventually support these natively, but the library should get us past those tests without a problem. And the slinking problems should be solvable relatively easily. The next step is to finish the automation script so these are run automatically, every night, on a freshly checked out source tree. Overall, we're very pleased.


  • Posted: February 3, 2005
  • Author: Matthew Jadud
  • Comments: None
  • Tags: None