aboutsummaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorDag-Erling Smørgrav <des@FreeBSD.org>2023-12-14 16:06:57 +0000
committerDag-Erling Smørgrav <des@FreeBSD.org>2023-12-14 16:06:57 +0000
commitac56b9d83c75f548667912ffe422be6bd4f5c27e (patch)
tree22f4706a19e8555c1c7bfcc963c57bc1f932711b /bin
parent8fab83d2c5c5e801105dbf25c28252fc97935b00 (diff)
downloadsrc-ac56b9d83c75f548667912ffe422be6bd4f5c27e.tar.gz
src-ac56b9d83c75f548667912ffe422be6bd4f5c27e.zip
cp: Split the basic_symlink test case in two.
This test case tests two different things: first, that copying a symlink results in a file with the same contents as the target of the symlink, rather than a second symlink, and second, that cp will refuse to copy a file to itself, or to a link to itself, or a link to its target. Leave the first part in basic_symlink, move the second part to a new test case named samefile, and slightly expand both cases. MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: kevans Differential Revision: https://reviews.freebsd.org/D43062
Diffstat (limited to 'bin')
-rwxr-xr-xbin/cp/tests/cp_test.sh24
1 files changed, 19 insertions, 5 deletions
diff --git a/bin/cp/tests/cp_test.sh b/bin/cp/tests/cp_test.sh
index a9e419bb39a9..397c06d75bbb 100755
--- a/bin/cp/tests/cp_test.sh
+++ b/bin/cp/tests/cp_test.sh
@@ -51,10 +51,7 @@ basic_symlink_body()
atf_check cp baz foo
atf_check test '!' -L foo
- atf_check -e inline:"cp: baz and baz are identical (not copied).\n" \
- -s exit:1 cp baz baz
- atf_check -e inline:"cp: bar and baz are identical (not copied).\n" \
- -s exit:1 cp baz bar
+ atf_check cmp foo bar
}
atf_test_case chrdev
@@ -227,6 +224,22 @@ recursive_link_Lflag_body()
'(' ! -L foo-mirror/foo/baz ')'
}
+atf_test_case samefile
+samefile_body()
+{
+ echo "foo" >foo
+ ln foo bar
+ ln -s bar baz
+ atf_check -e match:"baz and baz are identical" \
+ -s exit:1 cp baz baz
+ atf_check -e match:"bar and baz are identical" \
+ -s exit:1 cp baz bar
+ atf_check -e match:"foo and baz are identical" \
+ -s exit:1 cp baz foo
+ atf_check -e match:"bar and foo are identical" \
+ -s exit:1 cp foo bar
+}
+
file_is_sparse()
{
atf_check ${0%/*}/sparse "$1"
@@ -234,7 +247,7 @@ file_is_sparse()
files_are_equal()
{
- atf_check test "$(stat -f "%d %i" "$1")" != "$(stat -f "%d %i" "$2")"
+ atf_check_not_equal "$(stat -f%d,%i "$1")" "$(stat -f%d,%i "$2")"
atf_check cmp "$1" "$2"
}
@@ -365,6 +378,7 @@ atf_init_test_cases()
atf_add_test_case recursive_link_dflt
atf_add_test_case recursive_link_Hflag
atf_add_test_case recursive_link_Lflag
+ atf_add_test_case samefile
atf_add_test_case sparse_leading_hole
atf_add_test_case sparse_multiple_holes
atf_add_test_case sparse_only_hole