* [PATCH] t0213: skip ancestry tests under user-mode emulation
@ 2026-07-06 17:34 Jamie Magee via GitGitGadget
2026-07-07 2:30 ` Junio C Hamano
0 siblings, 1 reply; 2+ messages in thread
From: Jamie Magee via GitGitGadget @ 2026-07-06 17:34 UTC (permalink / raw)
To: git; +Cc: Jamie Magee, Jamie Magee
From: Jamie Magee <jamie.magee@gmail.com>
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>
---
t0213: skip ancestry tests under user-mode emulation
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-2168%2FJamieMagee%2Ft0213-skip-under-emulation-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-2168/JamieMagee/t0213-skip-under-emulation-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/2168
t/t0213-trace2-ancestry.sh | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/t/t0213-trace2-ancestry.sh b/t/t0213-trace2-ancestry.sh
index a2b9536da8..2eb86c1952 100755
--- a/t/t0213-trace2-ancestry.sh
+++ b/t/t0213-trace2-ancestry.sh
@@ -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
base-commit: e9019fcafe0040228b8631c30f97ae1adb61bcdc
--
gitgitgadget
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] t0213: skip ancestry tests under user-mode emulation
2026-07-06 17:34 [PATCH] t0213: skip ancestry tests under user-mode emulation Jamie Magee via GitGitGadget
@ 2026-07-07 2:30 ` Junio C Hamano
0 siblings, 0 replies; 2+ messages in thread
From: Junio C Hamano @ 2026-07-07 2:30 UTC (permalink / raw)
To: Jamie Magee via GitGitGadget; +Cc: git, Jamie Magee
"Jamie Magee via GitGitGadget" <gitgitgadget@gmail.com> writes:
> -# 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.
T.r.i.c.k.y. ;-)
> 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
This will be happy even if "test-tool-trash" that happens to have
"test-tool" as its prefix appears on a cmd_ancestry line (for that
matter, things like "cmd_ancestry-not-quite" that has "cmd_ancestry"
as its prefix would be accepted). I guess that is OK because we are
testing this in a fairly tightly controlled environment (trace keys
are taken from known vocabulary, not arbitrary strings, for example).
Will queue. Thanks.
> then
> test_set_prereq TRACE2_ANCESTRY
> fi
>
> base-commit: e9019fcafe0040228b8631c30f97ae1adb61bcdc
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-07-07 2:30 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-06 17:34 [PATCH] t0213: skip ancestry tests under user-mode emulation Jamie Magee via GitGitGadget
2026-07-07 2:30 ` Junio C Hamano
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox