git: c5961b6fcfe0 - main - yes: fix argv test race between fork and exec

From: Olivier Cochard <olivier_at_FreeBSD.org>
Date: Mon, 06 Apr 2026 17:22:46 UTC
The branch main has been updated by olivier:

URL: https://cgit.FreeBSD.org/src/commit/?id=c5961b6fcfe0f3587be11187a9c666a7fa200f4b

commit c5961b6fcfe0f3587be11187a9c666a7fa200f4b
Author:     Olivier Cochard <olivier@FreeBSD.org>
AuthorDate: 2026-04-06 17:17:49 +0000
Commit:     Olivier Cochard <olivier@FreeBSD.org>
CommitDate: 2026-04-06 17:22:25 +0000

    yes: fix argv test race between fork and exec
    
    The argv test checks ps(1) output immediately after backgrounding yes(1), but
    the forked child briefly shows the parent shell's argv before exec(2) replaces it.
    This caused intermittent failures where ps(1) captured the atf shell wrapper
    command line instead of "yes y".
    
    Approved by:    des
    Sponsored by:   Netflix
    Differential Revision:  https://reviews.freebsd.org/D56231
---
 usr.bin/yes/tests/yes_test.sh | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/usr.bin/yes/tests/yes_test.sh b/usr.bin/yes/tests/yes_test.sh
index f4c04e186536..797ac5f6ac9f 100644
--- a/usr.bin/yes/tests/yes_test.sh
+++ b/usr.bin/yes/tests/yes_test.sh
@@ -52,6 +52,8 @@ argv_body()
 {
 	yes y >/dev/null &
 	local pid=$!
+	# Wait for yes(1) to exec before checking args
+	sleep 0.1
 	atf_check -o inline:"yes y\n" ps -o args= $pid
 	kill $pid
 	wait