Write good automatic tests
Good automatic tests are important for creating a high quality compiler.
The Freeode project uses the "py.test" framework for testing.
Blueprint information
Related branches
Sprints
Whiteboard
The tests should cover every important feature. They should not test for unimportant implementation details, so that they don't break for every little change.
The tests should try to test features independently of other features. This helps porting and debugging in case of big architecture changes.
Code that generates error messages is seldom invoked. Therefore errors might develop through changes elsewhere, and stay undetected in the error handler for a long time. Therefore code that generates exceptions should be very simple. For every user visible error message there should be a test that provokes it.
The example programs should be run as part of the tests too. Printing some important variables at the end of the simulation should make it possible to check if the computation is correct. This will give more coverage of the automatic tests, and it will also ensure that the examples always work.
Work Items
Dependency tree
* Blueprints in grey have been implemented.