1tests
2-----
3
4this is the test suite for shinobi. it consistes of a parralel runner written in go, and a bucket of thousands of makefile fragments, mostly from the GNU make test suite, but also from the kati and pdpmake test suites, as well as a few i wrote myself.
5
6the test cases are contained in the mk/ directory. each test case has three files: a 'mk' file with the test makefile, an 'out' file with the expected output, and a 'test.json' file with a json object containing various metadata about the test case, how it should be executed, files that should be created that the test depends on, and so on.
7
8to run the entire test suite from the repo root, simply run 'make test'. to run individual tests, run 'make shin helper runner' and then 'tests/shintest.sh suite/category/subcategory'. for example, gnu/targets/POSIX. to run a whole suite or category, you can just do 'gnu' or 'gnu/targets' .
9
10in the future, tests from netbsd, openbsd, solaris and others will also be incorporated into this suite. if you want to write some tests, and you can think of specific edge cases, features, and the like that none of our tests cover yet, feel free to make a pull request.
11
12just a note that currently, the test suite must be ran with the official c++ ninja implementation: samurai will not work, as it does not have the --quiet flag.