summaryrefslogtreecommitdiff
path: root/t/unit-tests/unit-test.h
diff options
context:
space:
mode:
authorPatrick Steinhardt <ps@pks.im>2024-09-04 16:17:22 +0200
committerJunio C Hamano <gitster@pobox.com>2024-09-04 08:41:37 -0700
commitc9763684ea1da13fc511eebeea3bc0b80c6c9c0e (patch)
tree4084ac62533c6c9099117f9a477ad14c6400dcaf /t/unit-tests/unit-test.h
parentd7f0c47964adc7ec6b6f5ef211c91be822587fb0 (diff)
t/unit-tests: convert ctype tests to use clar
Convert the ctype tests to use the new clar unit testing framework. Introduce a new function `cl_failf()` that allows us to print a formatted error message, which we can use to point out which of the characters was classified incorrectly. This results in output like this on failure: # start of suite 1: ctype not ok 1 - ctype::isspace --- reason: | Test failed. 0x0d is classified incorrectly: expected 0, got 1 at: file: 't/unit-tests/ctype.c' line: 36 function: 'test_ctype__isspace' --- ok 2 - ctype::isdigit ok 3 - ctype::isalpha ok 4 - ctype::isalnum ok 5 - ctype::is_glob_special ok 6 - ctype::is_regex_special ok 7 - ctype::is_pathspec_magic ok 8 - ctype::isascii ok 9 - ctype::islower ok 10 - ctype::isupper ok 11 - ctype::iscntrl ok 12 - ctype::ispunct ok 13 - ctype::isxdigit ok 14 - ctype::isprint Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/unit-tests/unit-test.h')
-rw-r--r--t/unit-tests/unit-test.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/t/unit-tests/unit-test.h b/t/unit-tests/unit-test.h
index 66ec2387cc..85e5d6a948 100644
--- a/t/unit-tests/unit-test.h
+++ b/t/unit-tests/unit-test.h
@@ -1,3 +1,10 @@
#include "git-compat-util.h"
#include "clar/clar.h"
#include "clar-decls.h"
+#include "strbuf.h"
+
+#define cl_failf(fmt, ...) do { \
+ char desc[4096]; \
+ snprintf(desc, sizeof(desc), fmt, __VA_ARGS__); \
+ clar__fail(__FILE__, __func__, __LINE__, "Test failed.", desc, 1); \
+} while (0)