]> git.ipfire.org Git - thirdparty/git.git/commitdiff
t0213: skip ancestry tests under user-mode emulation
authorJamie Magee <jamie.magee@gmail.com>
Mon, 6 Jul 2026 17:34:01 +0000 (17:34 +0000)
committerJunio C Hamano <gitster@pobox.com>
Tue, 7 Jul 2026 02:24:14 +0000 (19:24 -0700)
The tests added in 3c8c638df6 (t0213: add trace2 cmd_ancestry tests,
2026-02-13) expect the cmd_ancestry event to name "test-tool" and
"git". On Linux those names come from the "comm" field of
/proc/<pid>/stat. Under user-mode emulation (e.g. qemu-user) /proc
reports the emulator ("qemu-riscv64") instead, so the event is still
emitted, the TRACE2_ANCESTRY probe enables the tests, and tests 2-5
fail even though they pass on native riscv64.

Require the probe to see "test-tool" in the ancestry of a test-tool
spawned from test-tool, so the tests skip when the names are unreliable.

Cc: Matthew John Cheetham <mjcheetham@outlook.com>
Signed-off-by: Jamie Magee <jamie.magee@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t0213-trace2-ancestry.sh

index a2b9536da831526eb49e4a78d22c105f41cd8ee0..2eb86c195274c261f144d8c91560a54621e75706 100755 (executable)
@@ -31,12 +31,15 @@ PATH="$TTDIR:$PATH" && export PATH
 # no cmd_ancestry event is emitted.  We detect this at runtime and
 # skip the format-specific tests accordingly.
 
-# Determine if cmd_ancestry is supported on this platform.
+# Enable these tests only when cmd_ancestry reports real process names.
+# The procinfo stub emits no event; under user-mode emulation (e.g.
+# qemu-user) /proc reports the emulator, not the guest. Spawn test-tool
+# from test-tool and require "test-tool" in the child's ancestry.
 test_expect_success 'detect cmd_ancestry support' '
        test_when_finished "rm -f trace.detect" &&
        GIT_TRACE2_BRIEF=1 GIT_TRACE2="$(pwd)/trace.detect" \
-               test-tool trace2 001return 0 &&
-       if grep -q "^cmd_ancestry" trace.detect
+               test-tool trace2 004child test-tool trace2 001return 0 &&
+       if grep -q "^cmd_ancestry.*test-tool" trace.detect
        then
                test_set_prereq TRACE2_ANCESTRY
        fi