libtest: Make it mandatory for test functions to call test_result(3).
Instead of returning an 'enum test_result' value, test
functions now call test_result() one or more times to report
test status. Calls to test_result() with values indicating
test failure override prior 'pass' results.
This changes simplifies the implementation of test functions
that conduct the same test over a range of inputs.
libtest: Simplify the test(3) & test_driver(3) APIs.
- Signal errors in setup/teardown functions using a plain
'bool'.
- Do not place test tags and test descriptions in the C
source code for a test. These are better placed elsewhere
alongside other metadata associated with the test.
libtest: simplify the protocol for test case setup/teardown.
Remove 'enum test_case_status': a true/false value suffices
to indicate setup and teardown failure.
Use a dedicated header for elftc_get_program_name(3).
This change allows the function to be used without needing
<libelf.h> (included via <libelftc.h>) to be present.