I encountered a new problem on git 2.44.0-rc0 for test t0080.1. Run very verbose (--verbose -x): ++ cat ++ /home/randall/git/t/unit-tests/bin/t-basic ++ test_cmp expect actual ++ test 2 -ne 2 ++ eval 'diff -u' '"$@"' +++ diff -u expect actual --- expect 2024-02-10 18:04:28 +0000 +++ actual 2024-02-10 18:04:28 +0000 @@ -1,43 +1,43 @@ ok 1 - passing test ok 2 - passing test and assertion return 1 -# check "1 == 2" failed at t/unit-tests/t-basic.c:76 +# check "1 == 2" failed at /home/randall/git/t/unit-tests/t-basic.c:76 # left: 1 # right: 2 not ok 3 - failing test ok 4 - failing test and assertion return 0 not ok 5 - passing TEST_TODO() # TODO ok 6 - passing TEST_TODO() returns 1 -# todo check 'check(x)' succeeded at t/unit-tests/t-basic.c:25 +# todo check 'check(x)' succeeded at /home/randall/git/t/unit-tests/t-basic.c:25 not ok 7 - failing TEST_TODO() ok 8 - failing TEST_TODO() returns 0 -# check "0" failed at t/unit-tests/t-basic.c:30 +# check "0" failed at /home/randall/git/t/unit-tests/t-basic.c:30 # skipping test - missing prerequisite -# skipping check '1' at t/unit-tests/t-basic.c:32 +# skipping check '1' at /home/randall/git/t/unit-tests/t-basic.c:32 ok 9 - test_skip() # SKIP ok 10 - skipped test returns 1 # skipping test - missing prerequisite ok 11 - test_skip() inside TEST_TODO() # SKIP ok 12 - test_skip() inside TEST_TODO() returns 1 -# check "0" failed at t/unit-tests/t-basic.c:48 +# check "0" failed at /home/randall/git/t/unit-tests/t-basic.c:48 not ok 13 - TEST_TODO() after failing check ok 14 - TEST_TODO() after failing check returns 0 -# check "0" failed at t/unit-tests/t-basic.c:56 +# check "0" failed at /home/randall/git/t/unit-tests/t-basic.c:56 not ok 15 - failing check after TEST_TODO() ok 16 - failing check after TEST_TODO() returns 0 -# check "!strcmp("\thello\\", "there\"\n")" failed at t/unit-tests/t-basic.c:61 +# check "!strcmp("\thello\\", "there\"\n")" failed at /home/randall/git/t/unit-tests/t-basic.c:61 # left: "\011hello\\" # right: "there\"\012" -# check "!strcmp("NULL", NULL)" failed at t/unit-tests/t-basic.c:62 +# check "!strcmp("NULL", NULL)" failed at /home/randall/git/t/unit-tests/t-basic.c:62 # left: "NULL" # right: NULL -# check "'a' == '\n'" failed at t/unit-tests/t-basic.c:63 +# check "'a' == '\n'" failed at /home/randall/git/t/unit-tests/t-basic.c:63 # left: 'a' # right: '\012' -# check "'\\' == '\''" failed at t/unit-tests/t-basic.c:64 +# check "'\\' == '\''" failed at /home/randall/git/t/unit-tests/t-basic.c:64 # left: '\\' # right: '\'' not ok 17 - messages from failing string and char comparison -# BUG: test has no checks at t/unit-tests/t-basic.c:91 +# BUG: test has no checks at /home/randall/git/t/unit-tests/t-basic.c:91 not ok 18 - test with no checks ok 19 - test with no checks returns 0 1..19 error: last command exited with $?=1 The diff appears to have failed because of an assumption of how paths are resolved during compilation. The assumption is that files remain partially qualified, which is not the case in all C compilers. This is c99. My experience with gcc is that it qualifies names differently than other compilers. It might be useful to pipe to sed to strip ${HOME}/ when building the actual file, something like: sed -i "1,\$s/${HOME}\//g" actual # Not that that will actually work because sed will process /. A different delimiter would work. Randall -- Randall S. Becker NSGit Chief Architect Nexbridge Inc. +1.416.984.9826