Git development
 help / color / mirror / Atom feed
* [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