* [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
2026-07-21 18:06 ` Weijie Yuan
0 siblings, 2 replies; 5+ 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] 5+ 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
2026-07-21 17:17 ` Junio C Hamano
2026-07-21 18:06 ` Weijie Yuan
1 sibling, 1 reply; 5+ 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] 5+ messages in thread
* Re: [PATCH] t0213: skip ancestry tests under user-mode emulation
2026-07-07 2:30 ` Junio C Hamano
@ 2026-07-21 17:17 ` Junio C Hamano
0 siblings, 0 replies; 5+ messages in thread
From: Junio C Hamano @ 2026-07-21 17:17 UTC (permalink / raw)
To: Jamie Magee via GitGitGadget; +Cc: git, Jamie Magee
Junio C Hamano <gitster@pobox.com> writes:
> "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.
Just to clarify, 'Will queue' simply means that the patch will
appear in 'seen'. It does not imply that I have personally
reviewed the change and found it acceptable to merge into 'next'.
I would appreciate a review from someone familiar with the trace2
facility.
Thanks.
^ permalink raw reply [flat|nested] 5+ 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
@ 2026-07-21 18:06 ` Weijie Yuan
2026-07-21 21:55 ` Junio C Hamano
1 sibling, 1 reply; 5+ messages in thread
From: Weijie Yuan @ 2026-07-21 18:06 UTC (permalink / raw)
To: Jamie Magee via GitGitGadget; +Cc: git, Jamie Magee, Junio C Hamano
On Mon, Jul 06, 2026 at 05:34:01PM +0000, Jamie Magee via GitGitGadget wrote:
> 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>
> ---
Very sorry to say something completely outside the patch.
But may I ask what's the point of writting the line started with "Cc:"?
I know that Linux kernel has something about writting Cc in the commit
message, while I don't see much from Git's documentation about trailers,
including MyFirstContribution and SubmittingPatches. Although I know
that "git send-email" and "git interpret-trailers" could use "Cc:", I
still wonder whether using this trailer is encouraged or not. If so,
adding some decriptions about it would be nice, I guess, since I was
confused when reading kernel docs about using Cc trailers in the commit
message sometime ago.
Sorry in advance if I missed any context.
Thanks very much.
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH] t0213: skip ancestry tests under user-mode emulation
2026-07-21 18:06 ` Weijie Yuan
@ 2026-07-21 21:55 ` Junio C Hamano
0 siblings, 0 replies; 5+ messages in thread
From: Junio C Hamano @ 2026-07-21 21:55 UTC (permalink / raw)
To: Weijie Yuan; +Cc: Jamie Magee via GitGitGadget, git, Jamie Magee
Weijie Yuan <wy@wyuan.org> writes:
>> ...
>> Cc: Matthew John Cheetham <mjcheetham@outlook.com>
>> Signed-off-by: Jamie Magee <jamie.magee@gmail.com>
>> ---
>
> Very sorry to say something completely outside the patch.
>
> But may I ask what's the point of writting the line started with "Cc:"?
> ...
> I know that Linux kernel has something about writting Cc in the commit
> message, while I don't see much from Git's documentation about trailers,
> including MyFirstContribution and SubmittingPatches.
If you ask me, 'Cc:' belongs in e-mail headers, not in commit
messages, though the Linux kernel community has a different
convention.
GitGitGadget collects 'Cc:' lines from the commit message and, when
sending e-mails on behalf of the author, copies the recipients
listed there, if I am not mistaken. Thus, it is not surprising that
contributors use the trailer for that purpose.
We do not use the 'Cc:' trailer to allow a commit author to say, "As
the commit object indicates, I CC'd this change to that expert. I
am no longer solely responsible for any bugs in this commit. That
expert should have caught my mistake!" ;-)
Thanks.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-07-21 21:55 UTC | newest]
Thread overview: 5+ 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
2026-07-21 17:17 ` Junio C Hamano
2026-07-21 18:06 ` Weijie Yuan
2026-07-21 21:55 ` 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