git: d4fb5984ab0b - main - mv: Add test cases for command-line options.
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 19 Nov 2024 09:29:34 UTC
The branch main has been updated by des:
URL: https://cgit.FreeBSD.org/src/commit/?id=d4fb5984ab0b96cc784c907e622deda910d020f2
commit d4fb5984ab0b96cc784c907e622deda910d020f2
Author: Dag-Erling Smørgrav <des@FreeBSD.org>
AuthorDate: 2024-11-19 09:29:15 +0000
Commit: Dag-Erling Smørgrav <des@FreeBSD.org>
CommitDate: 2024-11-19 09:29:15 +0000
mv: Add test cases for command-line options.
Sponsored by: Klara, Inc.
Reviewed by: asomers
Differential Revision: https://reviews.freebsd.org/D47582
---
bin/mv/tests/mv_test.sh | 117 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 117 insertions(+)
diff --git a/bin/mv/tests/mv_test.sh b/bin/mv/tests/mv_test.sh
index aae4bc3f9297..4412d5e88c5e 100644
--- a/bin/mv/tests/mv_test.sh
+++ b/bin/mv/tests/mv_test.sh
@@ -371,6 +371,118 @@ fifo_from_dir_into_dir_cleanup() {
mv_cleanup
}
+atf_test_case mv_f cleanup
+mv_f_head() {
+ atf_set "descr" "Force replacement"
+ atf_set "require.user" "root"
+}
+mv_f_body() {
+ mv_setup
+ for FS in "" "fs/" ; do
+ mv_makefile fa
+ atf_check mv fa ${FS}fb
+ mv_checkfile fa ${FS}fb
+ mv_checkabsent fa
+ mv_makefile fa
+ :> ${FS}fb
+ atf_check mv -i -n -f fa ${FS}fb
+ mv_checkfile fa ${FS}fb
+ mv_checkabsent fa
+ done
+}
+mv_f_cleanup() {
+ mv_cleanup
+}
+
+atf_test_case mv_h cleanup
+mv_h_head() {
+ atf_set "descr" "Replace symbolic link"
+ atf_set "require.user" "root"
+}
+mv_h_body() {
+ mv_setup
+ for FS in "" "fs/" ; do
+ atf_check mkdir ${FS}da
+ atf_check ln -s da ${FS}db
+ # First test without -h, file goes into symlink target
+ mv_makefile fa
+ atf_check mv fa ${FS}db
+ mv_checkfile fa ${FS}da/fa
+ # Second test with -h, file replaces symlink
+ mv_makefile fa
+ atf_check mv -h fa ${FS}db
+ mv_checkfile fa ${FS}db
+ done
+}
+mv_h_cleanup() {
+ mv_cleanup
+}
+
+atf_test_case mv_i cleanup
+mv_i_head() {
+ atf_set "descr" "Confirm replacement"
+ atf_set "require.user" "root"
+}
+mv_i_body() {
+ mv_setup
+ echo n >n
+ echo y >y
+ for FS in "" "fs/" ; do
+ mv_makefile fa
+ mv_makefile ${FS}fb
+ # First test, answer no, file is not replaced
+ atf_check -e match:"^overwrite ${FS}fb\\?" \
+ mv -i fa ${FS}fb <n
+ mv_checkfile fa fa
+ mv_checkfile fb ${FS}fb
+ # Second test, answer yes, file is replaced
+ atf_check -e match:"^overwrite ${FS}fb\\?" \
+ mv -i fa ${FS}fb <y
+ mv_checkabsent fa
+ mv_checkfile fa ${FS}fb
+ done
+}
+mv_i_cleanup() {
+ mv_cleanup
+}
+
+atf_test_case mv_n cleanup
+mv_n_head() {
+ atf_set "descr" "Decline replacement"
+ atf_set "require.user" "root"
+}
+mv_n_body() {
+ mv_setup
+ for FS in "" "fs/" ; do
+ mv_makefile fa
+ mv_makefile ${FS}fb
+ atf_check mv -n fa ${FS}fb
+ mv_checkfile fa fa
+ mv_checkfile fb ${FS}fb
+ done
+}
+mv_n_cleanup() {
+ mv_cleanup
+}
+
+atf_test_case mv_v cleanup
+mv_v_head() {
+ atf_set "descr" "Verbose mode"
+ atf_set "require.user" "root"
+}
+mv_v_body() {
+ mv_setup
+ for FS in "" "fs/" ; do
+ mv_makefile fa
+ atf_check mkdir ${FS}da
+ atf_check -o inline:"fa -> ${FS}da/fa\n" \
+ mv -v fa ${FS}da
+ done
+}
+mv_v_cleanup() {
+ mv_cleanup
+}
+
atf_init_test_cases() {
atf_add_test_case rename_file
atf_add_test_case file_into_dir
@@ -388,4 +500,9 @@ atf_init_test_cases() {
atf_add_test_case fifo_into_dir
atf_add_test_case fifo_from_dir
atf_add_test_case fifo_from_dir_into_dir
+ atf_add_test_case mv_f
+ atf_add_test_case mv_h
+ atf_add_test_case mv_i
+ atf_add_test_case mv_n
+ atf_add_test_case mv_v
}