git: 81df03281359 - main - cp: Improve to_root test case.

From: Dag-Erling Smørgrav <des_at_FreeBSD.org>
Date: Sat, 31 May 2025 18:08:39 UTC
The branch main has been updated by des:

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

commit 81df032813595a7c79e55bcba0c4e5d660451b58
Author:     Dag-Erling Smørgrav <des@FreeBSD.org>
AuthorDate: 2025-05-31 18:07:57 +0000
Commit:     Dag-Erling Smørgrav <des@FreeBSD.org>
CommitDate: 2025-05-31 18:08:12 +0000

    cp: Improve to_root test case.
    
    Since the bug we're testing involved path name construction, we don't
    need to be root to test it; we can simply check the error message.
    
    Fixes:          537fbf70f12b
    Sponsored by:   Klara, Inc.
    Reviewed by:    allanjude
    Differential Revision:  https://reviews.freebsd.org/D50628
---
 bin/cp/tests/cp_test.sh | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/bin/cp/tests/cp_test.sh b/bin/cp/tests/cp_test.sh
index 8511904a0e33..5e9a1899ff75 100755
--- a/bin/cp/tests/cp_test.sh
+++ b/bin/cp/tests/cp_test.sh
@@ -573,22 +573,23 @@ dstmode_body()
 atf_test_case to_root cleanup
 to_root_head()
 {
-	atf_set "require.user" "root"
+	atf_set "require.user" "unprivileged"
 }
 to_root_body()
 {
-	dst="$(atf_get ident).$$"
+	dst="test.$(atf_get ident).$$"
 	echo "$dst" >dst
 	echo "foo" >"$dst"
-	atf_check cp "$dst" /
-	atf_check cmp -s "$dst" "/$dst"
-	atf_check rm "/$dst"
-	atf_check cp "$dst" //
-	atf_check cmp -s "$dst" "/$dst"
+	atf_check -s not-exit:0 \
+	    -e match:"^cp: /$dst: (Permission|Read-only)" \
+	    cp "$dst" /
+	atf_check -s not-exit:0 \
+	    -e match:"^cp: /$dst: (Permission|Read-only)" \
+	    cp "$dst" //
 }
 to_root_cleanup()
 {
-	(dst=$(cat dst) && [ -n "/$dst" ] && [ -f "/$dst" ] && rm "/$dst") || true
+	(dst=$(cat dst) && rm "/$dst") 2>/dev/null || true
 }
 
 atf_init_test_cases()