]> Kevux Git Server - rit/commit
unit-tests: show location of checks outside of tests
authorRené Scharfe <l.s.r@web.de>
Tue, 30 Jul 2024 14:07:00 +0000 (16:07 +0200)
committerJunio C Hamano <gitster@pobox.com>
Tue, 30 Jul 2024 20:32:43 +0000 (13:32 -0700)
commit1f452d6c6835e41d25e163616d8ee75aa91b5b17
treec72df49319cbd8de494a8abe0c697a12837ecc0f
parent4575ba6a7c579ab5ac46d929c7c5de20013938cf
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>
t/helper/test-example-tap.c
t/t0080-unit-test-output.sh
t/unit-tests/test-lib.c