aboutsummaryrefslogtreecommitdiff
path: root/t/unit-tests
diff options
context:
space:
mode:
authorPablo Sabater <pabloosabaterr@gmail.com>2026-03-11 04:14:42 +0100
committerJunio C Hamano <gitster@pobox.com>2026-03-11 11:38:54 -0700
commite30e9442fd9b90d96dde2fad4a6b26d7a03dee5e (patch)
treec6ef302cdcf0965b04dddda34f1028c94056cb2e /t/unit-tests
parent67ad42147a7acc2af6074753ebd03d904476118f (diff)
downloadgit-e30e9442fd9b90d96dde2fad4a6b26d7a03dee5e.tar.xz
test-lib: print escape sequence names
When printing expected/actual characters in failed checks, use their names (\a, \b, \n, ...) instead of their octal representation, making it easier to read. Add tests to test-example-tap.c Update t0080-unit-test-output.sh to match the desired output Teach 'print_one_char()' the equivalent name Signed-off-by: Pablo Sabater <pabloosabaterr@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/unit-tests')
-rw-r--r--t/unit-tests/test-lib.c19
1 files changed, 17 insertions, 2 deletions
diff --git a/t/unit-tests/test-lib.c b/t/unit-tests/test-lib.c
index 87e1f5c201..72ee20a06f 100644
--- a/t/unit-tests/test-lib.c
+++ b/t/unit-tests/test-lib.c
@@ -396,8 +396,23 @@ int check_uint_loc(const char *loc, const char *check, int ok,
static void print_one_char(char ch, char quote)
{
if ((unsigned char)ch < 0x20u || ch == 0x7f) {
- /* TODO: improve handling of \a, \b, \f ... */
- printf("\\%03o", (unsigned char)ch);
+ char esc;
+ switch (ch) {
+ case '\a': esc = 'a'; break;
+ case '\b': esc = 'b'; break;
+ case '\t': esc = 't'; break;
+ case '\n': esc = 'n'; break;
+ case '\v': esc = 'v'; break;
+ case '\f': esc = 'f'; break;
+ case '\r': esc = 'r'; break;
+ default: esc = 0; break;
+ }
+ if (esc) {
+ putc('\\', stdout);
+ putc(esc, stdout);
+ } else {
+ printf("\\%03o", (unsigned char)ch);
+ }
} else {
if (ch == '\\' || ch == quote)
putc('\\', stdout);