Legend:

This tool descends into the given directory, and runs any tests it finds.

17

17

18

* 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.

18

* For subdirectories containing a `Main.ds`, `Main.dcl` or `Main.dcs` 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.check` 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.

19

19

20

* For subdirectories that do not contain a {{{Main.ds}}}, it simply compiles all the source files there.

20

* For subdirectories that do not contain a `Main.*`, it simply compiles all the source files there.

21

21

22

* 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.

22

* For subdirectories containing a `Test.dcx` file it uses `ddci-core` to run the tests in it.

23

24

* 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.