The war test driver automates regression testing.
$ make war
$ bin/war test
This tool descends into the given directory, and runs any tests it finds.
- For subdirectories containing a Main.ds file, it builds and executes that program. The resulting binary is named Main.bin and placed in the same directory as the source. If there is also a Main.stdout file, then checks the program's output against this expected output. If there is any difference it prompts the user whether to stop testing, or update the expected output.
- For subdirectories that do not contain a Main.ds, it simply compiles all the source files there.
- If a subdirectory contains a Module.error.check file, where Module is some arbitrary module name, then compilation is expected to fail with the error message given by that check file.
The programs in test/93-Graphics can open up X windows and display pretty pictures. When run with no arguments they dump their final frame as a PPM image to stdout. When run with "-x" they open up an X window an display the animation in real-time.
$ bin/war test/93-Graphics +compway opt -O $ test/93-Graphics/Styrene/Main.bin -x
You can also compile and run demos individually with something like:
$ bin/ddc -O -make demo/Graphics/Styrene/Main.ds -o styrene $ ./styrene -x
Note that DDC's -make flag will rebuild any module needed by the program being compiled, including modules in the base libraries. This can be useful when working on the libraries, or on DDC's -make support.
For example, we can clean out all the binaries in the library and demo directories with:
$ make cleanLibrary
We can then rebuild the whole styrene program with:
$ bin/ddc -O -make demo/Graphics/Styrene/Main.ds -o styrene