unit-tests: show location of checks outside of tests
Checks outside of tests are caught at runtime and reported like this: Assertion failed: (ctx.running), function test_assert, file test-lib.c, line 267. The assert() call aborts the unit test and doesn't reveal the location or even the type of the offending check, as test_assert() is called by all of them. Handle it like the opposite case, a test without any checks: Don't abort, but report the location of the actual check, along with a message explaining the situation. The output for example above becomes: # BUG: check outside of test at t/helper/test-example-tap.c:75 ... and the unit test program continues and indicates the error in its exit code at the end. Signed-off-by: René Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
4575ba6a7c
commit
1f452d6c68
@ -72,6 +72,8 @@ static void t_empty(void)
|
||||
|
||||
int cmd__example_tap(int argc, const char **argv)
|
||||
{
|
||||
check(1);
|
||||
|
||||
test_res = TEST(check_res = check_int(1, ==, 1), "passing test");
|
||||
TEST(t_res(1), "passing test and assertion return 1");
|
||||
test_res = TEST(check_res = check_int(1, ==, 2), "failing test");
|
||||
|
Reference in New Issue
Block a user