Standard old test functions, but they don't call TEST_INIT or
TEST_PASSED. They're placed at the start and at the end of the test
array.
Those macros just do printing anyway, so they're not necessary.
We might need to setup a prelude for initialising a file in the
filesystem for testing here - not only does stream_test_file need it,
but I see later tests requiring an equivalence check for files and
strings (variants of a stream).
While the previous method of in-lining a stack allocated array of
tests into the suite struct declaration was nice, we had to update
size manually.
This macro will allow us to just append new tests to the suite without
having to care for that. It generates a uniquely named variable for
the test array, then uses that test array in the suite declaration.
Nice and easy.
TEST_VERBOSE is a preprocesser directive which TEST is dependent on.
By default it is 0, in which case TEST simply fails if the condition
is not true. Otherwise, a full log (as done previously) is made.