summaryrefslogtreecommitdiff
path: root/release/src/router/busybox/tests/cp_tests.mk
diff options
context:
space:
mode:
authorAndreas Baumann <mail@andreasbaumann.cc>2015-01-03 12:04:58 +0100
committerAndreas Baumann <mail@andreasbaumann.cc>2015-01-03 12:04:58 +0100
commit008d0be72b2f160382c6e880765e96b64a050c65 (patch)
tree36f48a98a3815a408e2ce1693dd182af90f80305 /release/src/router/busybox/tests/cp_tests.mk
parent611becfb8726c60cb060368541ad98191d4532f5 (diff)
downloadtomato-008d0be72b2f160382c6e880765e96b64a050c65.tar.gz
tomato-008d0be72b2f160382c6e880765e96b64a050c65.tar.bz2
imported original firmware WRT54GL_v4.30.11_11_US
Diffstat (limited to 'release/src/router/busybox/tests/cp_tests.mk')
-rw-r--r--release/src/router/busybox/tests/cp_tests.mk360
1 files changed, 360 insertions, 0 deletions
diff --git a/release/src/router/busybox/tests/cp_tests.mk b/release/src/router/busybox/tests/cp_tests.mk
new file mode 100644
index 00000000..b96c5cea
--- /dev/null
+++ b/release/src/router/busybox/tests/cp_tests.mk
@@ -0,0 +1,360 @@
+# cp_tests.mk - Set of test cases for busybox cp
+# -------------
+# Copyright (C) 2000 Karl M. Hegbloom <karlheg@debian.org> GPL
+#
+
+# GNU `cp'
+GCP = /bin/cp
+# BusyBox `cp'
+BCP = $(shell pwd)/cp
+
+all:: cp_tests
+clean:: cp_clean
+
+cp_clean:
+ - rm -rf cp_tests cp_*.{gnu,bb} cp
+
+# check_cp_dir_to_dir_wo_a removed from this list; see below
+cp_tests: cp_clean cp check_exists check_simple_cp check_cp_symlnk \
+ check_cp_symlink_w_a check_cp_files_to_dir check_cp_files_to_dir_w_d \
+ check_cp_files_to_dir_w_p check_cp_files_to_dir_w_p_and_d \
+ check_cp_dir_to_dir_w_a \
+ check_cp_dir_to_dir_w_a_take_two
+
+check_exists:
+ @echo;
+ @echo "No output from diff means busybox cp is functioning properly.";
+ @echo "Some tests might show timestamp differences that are Ok.";
+
+ @echo;
+ @echo Verify that busybox cp exists;
+ @echo ------------------------------;
+ [ -x ${BCP} ] || exit 0
+
+ @echo;
+ mkdir cp_tests;
+
+check_simple_cp:
+ @echo Copy a file to a copy of the file;
+ @echo ------------------------------;
+ cd cp_tests; \
+ echo A file > afile; \
+ ls -l afile > ../cp_afile_afilecopy.gnu; \
+ ${GCP} afile afilecopy; \
+ ls -l afile afilecopy >> ../cp_afile_afilecopy.gnu;
+
+ @echo;
+ rm -rf cp_tests/*;
+
+ @echo;
+ cd cp_tests; \
+ echo A file > afile; \
+ ls -l afile > ../cp_afile_afilecopy.bb; \
+ ${BCP} afile afilecopy; \
+ ls -l afile afilecopy >> ../cp_afile_afilecopy.bb;
+
+ @echo;
+ @echo Might show timestamp differences.
+ -diff -u cp_afile_afilecopy.gnu cp_afile_afilecopy.bb;
+
+ @echo;
+ rm -rf cp_tests/*;
+
+check_cp_symlnk:
+ @echo; echo Copy a file pointed to by a symlink;
+ @echo ------------------------------;
+ cd cp_tests; \
+ mkdir here there; \
+ echo A file > afile; \
+ cd here; \
+ ln -s ../afile .; \
+
+ @echo;
+ cd cp_tests; \
+ ls -lR . > ../cp_symlink.gnu; \
+ ${GCP} here/afile there; \
+ ls -lR . >> ../cp_symlink.gnu;
+
+ @echo;
+ rm -rf cp_tests/there/*;
+
+ sleep 1;
+
+ @echo;
+ cd cp_tests; \
+ ls -lR . > ../cp_symlink.bb; \
+ ${BCP} here/afile there; \
+ ls -lR . >> ../cp_symlink.bb;
+
+ @echo;
+ @echo Will show timestamp difference.
+ -diff -u cp_symlink.gnu cp_symlink.bb;
+
+ @echo;
+ rm -rf cp_tests/*
+
+check_cp_symlink_w_a:
+ @echo; echo Copy a symlink, useing the -a switch.;
+ @echo ------------------------------;
+ cd cp_tests; \
+ echo A file > afile; \
+ mkdir here there; \
+ cd here; \
+ ln -s ../afile .
+
+ cd cp_tests; \
+ ls -lR . > ../cp_a_symlink.gnu; \
+ ${GCP} -a here/afile there; \
+ ls -lR . >> ../cp_a_symlink.gnu;
+
+ @echo;
+ rm -rf cp_tests/there/*;
+
+ sleep 1;
+
+ @echo;
+ cd cp_tests; \
+ echo A file > afile; \
+ ls -lR . > ../cp_a_symlink.bb; \
+ ${BCP} -a here/afile there; \
+ ls -lR . >> ../cp_a_symlink.bb;
+
+ @echo;
+ diff -u cp_a_symlink.gnu cp_a_symlink.bb;
+
+ @echo;
+ rm -rf cp_tests/*;
+
+
+check_cp_files_to_dir:
+ # Copy a set of files to a directory.
+ @echo; echo Copy a set of files to a directory.;
+ @echo ------------------------------;
+ cd cp_tests; \
+ echo A file number one > afile1; \
+ echo A file number two, blah. > afile2; \
+ ln -s afile1 symlink1; \
+ mkdir there;
+
+ cd cp_tests; \
+ ${GCP} afile1 afile2 symlink1 there/; \
+ ls -lR > ../cp_files_dir.gnu;
+
+ @echo;
+ rm -rf cp_tests/there/*;
+
+ @echo;
+ cd cp_tests; \
+ ${BCP} afile1 afile2 symlink1 there/; \
+ ls -lR > ../cp_files_dir.bb;
+
+ @echo;
+ diff -u cp_files_dir.gnu cp_files_dir.bb;
+
+ @echo;
+ rm -rf cp_tests/*;
+
+check_cp_files_to_dir_w_d:
+ # Copy a set of files to a directory with the -d switch.
+ @echo; echo Copy a set of files to a directory with the -d switch.;
+ @echo ------------------------------;
+ cd cp_tests; \
+ echo A file number one > afile1; \
+ echo A file number two, blah. > afile2; \
+ ln -s afile1 symlink1; \
+ mkdir there1; \
+ ${GCP} -d afile1 afile2 symlink1 there1/; \
+ ls -lR > ../cp_d_files_dir.gnu;
+
+ @echo;
+ rm -rf cp_tests/{afile{1,2},symlink1,there1};
+
+ @echo;
+ cd cp_tests; \
+ echo A file number one > afile1; \
+ echo A file number two, blah. > afile2; \
+ ln -s afile1 symlink1; \
+ mkdir there1; \
+ ${BCP} -d afile1 afile2 symlink1 there1/; \
+ ls -lR > ../cp_d_files_dir.bb;
+
+ @echo;
+ diff -u cp_d_files_dir.gnu cp_d_files_dir.bb;
+
+ @echo;
+ rm -rf cp_tests/{afile{1,2},symlink1,there1};
+
+check_cp_files_to_dir_w_p:
+ # Copy a set of files to a directory with the -p switch.
+ @echo; echo Copy a set of files to a directory with the -p switch.;
+ @echo ------------------------------;
+ cd cp_tests; \
+ echo A file number one > afile1; \
+ echo A file number two, blah. > afile2; \
+ touch --date='Sat Jan 29 21:24:08 PST 2000' afile1; \
+ ln -s afile1 symlink1; \
+ mkdir there1; \
+ ${GCP} -p afile1 afile2 symlink1 there1/; \
+ ls -lR > ../cp_p_files_dir.gnu;
+
+ @echo;
+ rm -rf cp_tests/{afile{1,2},symlink1,there1};
+
+ @echo;
+ cd cp_tests; \
+ echo A file number one > afile1; \
+ echo A file number two, blah. > afile2; \
+ touch --date='Sat Jan 29 21:24:08 PST 2000' afile1; \
+ ln -s afile1 symlink1; \
+ mkdir there1; \
+ ${BCP} -p afile1 afile2 symlink1 there1/; \
+ ls -lR > ../cp_p_files_dir.bb;
+
+ @echo;
+ diff -u cp_p_files_dir.gnu cp_p_files_dir.bb;
+
+ @echo;
+ rm -rf cp_tests/{afile{1,2},symlink1,there1};
+
+
+check_cp_files_to_dir_w_p_and_d:
+ @echo; echo Copy a set of files to a directory with -p and -d switches.
+ @echo ------------------------------;
+ cd cp_tests; \
+ echo A file number one > afile1; \
+ echo A file number two, blah. > afile2; \
+ touch --date='Sat Jan 29 21:24:08 PST 2000' afile1; \
+ ln -s afile1 symlink1; \
+ mkdir there1; \
+ ${GCP} -p -d afile1 afile2 symlink1 there1/; \
+ ls -lR > ../cp_pd_files_dir.gnu;
+
+ @echo;
+ rm -rf cp_tests/{afile{1,2},symlink1,there1};
+
+ @echo;
+ cd cp_tests; \
+ echo A file number one > afile1; \
+ echo A file number two, blah. > afile2; \
+ touch --date='Sat Jan 29 21:24:08 PST 2000' afile1; \
+ ln -s afile1 symlink1; \
+ mkdir there1; \
+ ${BCP} -p -d afile1 afile2 symlink1 there1/; \
+ ls -lR > ../cp_pd_files_dir.bb;
+
+ @echo;
+ diff -u cp_pd_files_dir.gnu cp_pd_files_dir.bb;
+
+ @echo;
+ rm -rf cp_tests/{afile{1,2},symlink1,there1};
+
+# This test doesn't work any more; gnu cp now _does_ copy a directory
+# to a subdirectory of itself. What's worse, that "feature" has no
+# (documented) way to be disabled with command line switches.
+# It's not obvious that busybox cp should mimic this behavior.
+# For now, this test is removed from the cp_tests list, above.
+check_cp_dir_to_dir_wo_a:
+ # Copy a directory to another directory, without the -a switch.
+ @echo; echo Copy a directory to another directory, without the -a switch.
+ @echo ------------------------------;
+ @echo There should be an error message about cannot cp a dir to a subdir of itself.
+ cd cp_tests; \
+ touch a b c; \
+ mkdir adir; \
+ ls -lR . > ../cp_a_star_adir.gnu; \
+ ${GCP} -a * adir; \
+ ls -lR . >> ../cp_a_star_adir.gnu;
+
+ @echo
+ @echo There should be an error message about cannot cp a dir to a subdir of itself.
+ cd cp_tests; \
+ rm -rf adir; \
+ mkdir adir; \
+ ls -lR . > ../cp_a_star_adir.bb; \
+ ${BCP} -a * adir; \
+ ls -lR . >> ../cp_a_star_adir.bb;
+
+ @echo;
+ diff -u cp_a_star_adir.gnu cp_a_star_adir.bb;
+
+ # Done
+ @echo;
+ rm -rf cp_tests;
+ @echo; echo Done.
+
+
+check_cp_dir_to_dir_w_a:
+ @echo; echo Copy a directory into another directory with the -a switch.
+ @echo ------------------------------;
+ cd cp_tests; \
+ mkdir dir{a,b}; \
+ echo A file > dira/afile; \
+ echo A file in dirb > dirb/afileindirb; \
+ ln -s dira/afile dira/alinktoafile; \
+ mkdir dira/subdir1; \
+ echo Another file > dira/subdir1/anotherfile; \
+ ls -lR . > ../cp_a_dira_dirb.gnu; \
+ ${GCP} -a dira dirb; \
+ ls -lR . >> ../cp_a_dira_dirb.gnu;
+
+ @echo;
+ rm -rf cp_tests/dir{a,b};
+
+ @echo;
+ cd cp_tests; \
+ mkdir dir{a,b}; \
+ echo A file > dira/afile; \
+ echo A file in dirb > dirb/afileindirb; \
+ ln -s dira/afile dira/alinktoafile; \
+ mkdir dira/subdir1; \
+ echo Another file > dira/subdir1/anotherfile; \
+ ls -lR . > ../cp_a_dira_dirb.bb; \
+ ${BCP} -a dira dirb; \
+ ls -lR . >> ../cp_a_dira_dirb.bb;
+
+ @echo;
+ diff -u cp_a_dira_dirb.gnu cp_a_dira_dirb.bb;
+
+ @echo;
+ rm -rf cp_tests/dir{a,b};
+
+
+check_cp_dir_to_dir_w_a_take_two:
+ @echo; echo Copy a directory into another directory with the -a switch;
+ @echo ------------------------------;
+ mkdir -p cp_tests/gnu; \
+ mkdir -p cp_tests/bb; \
+ cd cp_tests; \
+ mkdir here there; \
+ echo A file > here/afile; \
+ mkdir here/adir; \
+ touch here/adir/afileinadir; \
+ ln -s $$(pwd) here/alink;
+
+ @echo;
+ cd cp_tests/gnu; \
+ ls -lR . > ../../cp_a_dir_dir.gnu; \
+ ${GCP} -a here/ there/; \
+ ls -lR . >> ../../cp_a_dir_dir.gnu;
+
+ @echo;
+ rm -rf cp_tests/there/*;
+
+ sleep 1;
+
+ @echo;
+ cd cp_tests/bb; \
+ ls -lR . > ../../cp_a_dir_dir.bb; \
+ ${BCP} -a here/ there/; \
+ ls -lR . >> ../../cp_a_dir_dir.bb;
+
+ @echo;
+ echo "Erik 1"
+ diff -u cp_a_dir_dir.gnu cp_a_dir_dir.bb;
+ echo "Erik 2"
+
+ @echo;
+ echo "Erik 3"
+ rm -rf cp_tests/*;
+
+