dc: Parse error & fix out of bounds read in xc_program_printString
[oweals/busybox.git] / testsuite / cp.tests
index 75a7dcb480dfd0ef62cbb652031b8ce43e012ed0..33cd876be1248798f2252129b83da3ad584a7630 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/sh
 # Copyright 2010 by Denys Vlasenko
-# Licensed under GPL v2, see file LICENSE for details.
+# Licensed under GPLv2, see file LICENSE in this source tree.
 
 . ./testing.sh
 
@@ -24,11 +24,11 @@ ln -s dir cp.testdir/dir_symlink
 
 rm -rf cp.testdir2 >/dev/null && mkdir cp.testdir2 || exit 1
 testing "cp" '\
-cd cp.testdir || exit 1; cp * ../cp.testdir2 2>&1; echo $?; cd .. || exit 1
-test ! -L cp.testdir2/file             || echo BAD: file
-test ! -L cp.testdir2/file_symlink     || echo BAD: file_symlink
-test ! -e cp.testdir2/dir              || echo BAD: dir
-test ! -e cp.testdir2/dir_symlink      || echo BAD: dir_symlink
+cd cp.testdir || exit 1; cp * ../cp.testdir2 2>&1; echo $?; cd ../cp.testdir2 || exit 1
+test ! -L file         && test   -f file             || echo BAD: file
+test ! -L file_symlink && test   -f file_symlink     || echo BAD: file_symlink
+test ! -L dir          && test ! -e dir              || echo BAD: dir
+test ! -L dir_symlink  && test ! -e dir_symlink      || echo BAD: dir_symlink
 ' "\
 cp: omitting directory ${sq}dir'
 cp: omitting directory ${sq}dir_symlink'
@@ -37,11 +37,11 @@ cp: omitting directory ${sq}dir_symlink'
 
 rm -rf cp.testdir2 >/dev/null && mkdir cp.testdir2 || exit 1
 testing "cp -d" '\
-cd cp.testdir || exit 1; cp -d * ../cp.testdir2 2>&1; echo $?; cd .. || exit 1
-test ! -L cp.testdir2/file             || echo BAD: file
-test   -L cp.testdir2/file_symlink     || echo BAD: file_symlink
-test ! -e cp.testdir2/dir              || echo BAD: dir
-test   -L cp.testdir2/dir_symlink      || echo BAD: dir_symlink
+cd cp.testdir || exit 1; cp -d * ../cp.testdir2 2>&1; echo $?; cd ../cp.testdir2 || exit 1
+test ! -L file         && test   -f file             || echo BAD: file
+test   -L file_symlink && test   -f file_symlink     || echo BAD: file_symlink
+test ! -L dir          && test ! -e dir              || echo BAD: dir
+test   -L dir_symlink  && test ! -e dir_symlink      || echo BAD: dir_symlink
 ' "\
 cp: omitting directory ${sq}dir'
 1
@@ -49,11 +49,11 @@ cp: omitting directory ${sq}dir'
 
 rm -rf cp.testdir2 >/dev/null && mkdir cp.testdir2 || exit 1
 testing "cp -P" '\
-cd cp.testdir || exit 1; cp -P * ../cp.testdir2 2>&1; echo $?; cd .. || exit 1
-test ! -L cp.testdir2/file             || echo BAD: file
-test   -L cp.testdir2/file_symlink     || echo BAD: file_symlink
-test ! -e cp.testdir2/dir              || echo BAD: dir
-test   -L cp.testdir2/dir_symlink      || echo BAD: dir_symlink
+cd cp.testdir || exit 1; cp -P * ../cp.testdir2 2>&1; echo $?; cd ../cp.testdir2 || exit 1
+test ! -L file         && test   -f file             || echo BAD: file
+test   -L file_symlink && test   -f file_symlink     || echo BAD: file_symlink
+test ! -L dir          && test ! -e dir              || echo BAD: dir
+test   -L dir_symlink  && test ! -e dir_symlink      || echo BAD: dir_symlink
 ' "\
 cp: omitting directory ${sq}dir'
 1
@@ -61,11 +61,11 @@ cp: omitting directory ${sq}dir'
 
 rm -rf cp.testdir2 >/dev/null && mkdir cp.testdir2 || exit 1
 testing "cp -L" '\
-cd cp.testdir || exit 1; cp -L * ../cp.testdir2 2>&1; echo $?; cd .. || exit 1
-test ! -L cp.testdir2/file             || echo BAD: file
-test ! -L cp.testdir2/file_symlink     || echo BAD: file_symlink
-test ! -e cp.testdir2/dir              || echo BAD: dir
-test ! -L cp.testdir2/dir_symlink      || echo BAD: dir_symlink
+cd cp.testdir || exit 1; cp -L * ../cp.testdir2 2>&1; echo $?; cd ../cp.testdir2 || exit 1
+test ! -L file         && test   -f file             || echo BAD: file
+test ! -L file_symlink && test   -f file_symlink     || echo BAD: file_symlink
+test ! -L dir          && test ! -e dir              || echo BAD: dir
+test ! -L dir_symlink  && test ! -e dir_symlink      || echo BAD: dir_symlink
 ' "\
 cp: omitting directory ${sq}dir'
 cp: omitting directory ${sq}dir_symlink'
@@ -74,11 +74,11 @@ cp: omitting directory ${sq}dir_symlink'
 
 rm -rf cp.testdir2 >/dev/null && mkdir cp.testdir2 || exit 1
 testing "cp -H" '\
-cd cp.testdir || exit 1; cp -H * ../cp.testdir2 2>&1; echo $?; cd .. || exit 1
-test ! -L cp.testdir2/file             || echo BAD: file
-test ! -L cp.testdir2/file_symlink     || echo BAD: file_symlink
-test ! -e cp.testdir2/dir              || echo BAD: dir
-test ! -e cp.testdir2/dir_symlink      || echo BAD: dir_symlink
+cd cp.testdir || exit 1; cp -H * ../cp.testdir2 2>&1; echo $?; cd ../cp.testdir2 || exit 1
+test ! -L file         && test   -f file             || echo BAD: file
+test ! -L file_symlink && test   -f file_symlink     || echo BAD: file_symlink
+test ! -L dir          && test ! -e dir              || echo BAD: dir
+test ! -L dir_symlink  && test ! -e dir_symlink      || echo BAD: dir_symlink
 ' "\
 cp: omitting directory ${sq}dir'
 cp: omitting directory ${sq}dir_symlink'
@@ -87,52 +87,52 @@ cp: omitting directory ${sq}dir_symlink'
 
 rm -rf cp.testdir2 >/dev/null && mkdir cp.testdir2 || exit 1
 testing "cp -R" '\
-cd cp.testdir || exit 1; cp -R * ../cp.testdir2 2>&1; echo $?; cd .. || exit 1
-test ! -L cp.testdir2/file             || echo BAD: file
-test   -L cp.testdir2/file_symlink     || echo BAD: file_symlink
-test ! -L cp.testdir2/dir              || echo BAD: dir
-test   -L cp.testdir2/dir_symlink      || echo BAD: dir_symlink
-test ! -L cp.testdir2/dir/file         || echo BAD: dir/file
-test   -L cp.testdir2/dir/file_symlink || echo BAD: dir/file_symlink
+cd cp.testdir || exit 1; cp -R * ../cp.testdir2 2>&1; echo $?; cd ../cp.testdir2 || exit 1
+test ! -L file             && test   -f file             || echo BAD: file
+test   -L file_symlink     && test   -f file_symlink     || echo BAD: file_symlink
+test ! -L dir              && test   -d dir              || echo BAD: dir
+test   -L dir_symlink      && test   -d dir_symlink      || echo BAD: dir_symlink
+test ! -L dir/file         && test   -f dir/file         || echo BAD: dir/file
+test   -L dir/file_symlink && test   -f dir/file_symlink || echo BAD: dir/file_symlink
 ' "\
 0
 " "" ""
 
 rm -rf cp.testdir2 >/dev/null && mkdir cp.testdir2 || exit 1
 testing "cp -Rd" '\
-cd cp.testdir || exit 1; cp -Rd * ../cp.testdir2 2>&1; echo $?; cd .. || exit 1
-test ! -L cp.testdir2/file             || echo BAD: file
-test   -L cp.testdir2/file_symlink     || echo BAD: file_symlink
-test ! -L cp.testdir2/dir              || echo BAD: dir
-test   -L cp.testdir2/dir_symlink      || echo BAD: dir_symlink
-test ! -L cp.testdir2/dir/file         || echo BAD: dir/file
-test   -L cp.testdir2/dir/file_symlink || echo BAD: dir/file_symlink
+cd cp.testdir || exit 1; cp -Rd * ../cp.testdir2 2>&1; echo $?; cd ../cp.testdir2 || exit 1
+test ! -L file             && test   -f file             || echo BAD: file
+test   -L file_symlink     && test   -f file_symlink     || echo BAD: file_symlink
+test ! -L dir              && test   -d dir              || echo BAD: dir
+test   -L dir_symlink      && test   -d dir_symlink      || echo BAD: dir_symlink
+test ! -L dir/file         && test   -f dir/file         || echo BAD: dir/file
+test   -L dir/file_symlink && test   -f dir/file_symlink || echo BAD: dir/file_symlink
 ' "\
 0
 " "" ""
 
 rm -rf cp.testdir2 >/dev/null && mkdir cp.testdir2 || exit 1
 testing "cp -RP" '\
-cd cp.testdir || exit 1; cp -RP * ../cp.testdir2 2>&1; echo $?; cd .. || exit 1
-test ! -L cp.testdir2/file             || echo BAD: file
-test   -L cp.testdir2/file_symlink     || echo BAD: file_symlink
-test ! -L cp.testdir2/dir              || echo BAD: dir
-test   -L cp.testdir2/dir_symlink      || echo BAD: dir_symlink
-test ! -L cp.testdir2/dir/file         || echo BAD: dir/file
-test   -L cp.testdir2/dir/file_symlink || echo BAD: dir/file_symlink
+cd cp.testdir || exit 1; cp -RP * ../cp.testdir2 2>&1; echo $?; cd ../cp.testdir2 || exit 1
+test ! -L file             && test   -f file             || echo BAD: file
+test   -L file_symlink     && test   -f file_symlink     || echo BAD: file_symlink
+test ! -L dir              && test   -d dir              || echo BAD: dir
+test   -L dir_symlink      && test   -d dir_symlink      || echo BAD: dir_symlink
+test ! -L dir/file         && test   -f dir/file         || echo BAD: dir/file
+test   -L dir/file_symlink && test   -f dir/file_symlink || echo BAD: dir/file_symlink
 ' "\
 0
 " "" ""
 
 rm -rf cp.testdir2 >/dev/null && mkdir cp.testdir2 || exit 1
 testing "cp -RL" '\
-cd cp.testdir || exit 1; cp -RL * ../cp.testdir2 2>&1; echo $?; cd .. || exit 1
-test ! -L cp.testdir2/file             || echo BAD: file
-test ! -L cp.testdir2/file_symlink     || echo BAD: file_symlink
-test ! -L cp.testdir2/dir              || echo BAD: dir
-test ! -L cp.testdir2/dir_symlink      || echo BAD: dir_symlink
-test ! -L cp.testdir2/dir/file         || echo BAD: dir/file
-test ! -L cp.testdir2/dir/file_symlink || echo BAD: dir/file_symlink
+cd cp.testdir || exit 1; cp -RL * ../cp.testdir2 2>&1; echo $?; cd ../cp.testdir2 || exit 1
+test ! -L file             && test   -f file             || echo BAD: file
+test ! -L file_symlink     && test   -f file_symlink     || echo BAD: file_symlink
+test ! -L dir              && test   -d dir              || echo BAD: dir
+test ! -L dir_symlink      && test   -d dir_symlink      || echo BAD: dir_symlink
+test ! -L dir/file         && test   -f dir/file         || echo BAD: dir/file
+test ! -L dir/file_symlink && test   -f dir/file_symlink || echo BAD: dir/file_symlink
 ' "\
 0
 " "" ""
@@ -142,13 +142,13 @@ rm -rf cp.testdir2 >/dev/null && mkdir cp.testdir2 || exit 1
 # cp: will not create hard link `../cp.testdir2/dir_symlink' to directory `../cp.testdir2/dir'
 test x"$SKIP_KNOWN_BUGS" = x"" && \
 testing "cp -RH" '\
-cd cp.testdir || exit 1; cp -RH * ../cp.testdir2 2>&1; echo $?; cd .. || exit 1
-test ! -L cp.testdir2/file             || echo BAD: file
-test ! -L cp.testdir2/file_symlink     || echo BAD: file_symlink
-test ! -L cp.testdir2/dir              || echo BAD: dir
-test ! -L cp.testdir2/dir_symlink      || echo BAD: dir_symlink
-test ! -L cp.testdir2/dir/file         || echo BAD: dir/file
-test   -L cp.testdir2/dir/file_symlink || echo BAD: dir/file_symlink
+cd cp.testdir || exit 1; cp -RH * ../cp.testdir2 2>&1; echo $?; cd ../cp.testdir2 || exit 1
+test ! -L file             && test   -f file             || echo BAD: file
+test ! -L file_symlink     && test   -f file_symlink     || echo BAD: file_symlink
+test ! -L dir              && test   -d dir              || echo BAD: dir
+test ! -L dir_symlink      && test   -d dir_symlink      || echo BAD: dir_symlink
+test ! -L dir/file         && test   -f dir/file         || echo BAD: dir/file
+test   -L dir/file_symlink && test   -f dir/file_symlink || echo BAD: dir/file_symlink
 ' "\
 0
 " "" ""
@@ -158,26 +158,26 @@ rm -rf cp.testdir2 >/dev/null && mkdir cp.testdir2 || exit 1
 # cp: will not create hard link `../cp.testdir2/dir_symlink' to directory `../cp.testdir2/dir'
 test x"$SKIP_KNOWN_BUGS" = x"" && \
 testing "cp -RHP" '\
-cd cp.testdir || exit 1; cp -RHP * ../cp.testdir2 2>&1; echo $?; cd .. || exit 1
-test ! -L cp.testdir2/file             || echo BAD: file
-test ! -L cp.testdir2/file_symlink     || echo BAD: file_symlink
-test ! -L cp.testdir2/dir              || echo BAD: dir
-test ! -L cp.testdir2/dir_symlink      || echo BAD: dir_symlink
-test ! -L cp.testdir2/dir/file         || echo BAD: dir/file
-test   -L cp.testdir2/dir/file_symlink || echo BAD: dir/file_symlink
+cd cp.testdir || exit 1; cp -RHP * ../cp.testdir2 2>&1; echo $?; cd ../cp.testdir2 || exit 1
+test ! -L file             && test   -f file             || echo BAD: file
+test ! -L file_symlink     && test   -f file_symlink     || echo BAD: file_symlink
+test ! -L dir              && test   -d dir              || echo BAD: dir
+test ! -L dir_symlink      && test   -d dir_symlink      || echo BAD: dir_symlink
+test ! -L dir/file         && test   -f dir/file         || echo BAD: dir/file
+test   -L dir/file_symlink && test   -f dir/file_symlink || echo BAD: dir/file_symlink
 ' "\
 0
 " "" ""
 
 rm -rf cp.testdir2 >/dev/null && mkdir cp.testdir2 || exit 1
 testing "cp -RHL" '\
-cd cp.testdir || exit 1; cp -RHL * ../cp.testdir2 2>&1; echo $?; cd .. || exit 1
-test ! -L cp.testdir2/file             || echo BAD: file
-test ! -L cp.testdir2/file_symlink     || echo BAD: file_symlink
-test ! -L cp.testdir2/dir              || echo BAD: dir
-test ! -L cp.testdir2/dir_symlink      || echo BAD: dir_symlink
-test ! -L cp.testdir2/dir/file         || echo BAD: dir/file
-test ! -L cp.testdir2/dir/file_symlink || echo BAD: dir/file_symlink
+cd cp.testdir || exit 1; cp -RHL * ../cp.testdir2 2>&1; echo $?; cd ../cp.testdir2 || exit 1
+test ! -L file             && test   -f file             || echo BAD: file
+test ! -L file_symlink     && test   -f file_symlink     || echo BAD: file_symlink
+test ! -L dir              && test   -d dir              || echo BAD: dir
+test ! -L dir_symlink      && test   -d dir_symlink      || echo BAD: dir_symlink
+test ! -L dir/file         && test   -f dir/file         || echo BAD: dir/file
+test ! -L dir/file_symlink && test   -f dir/file_symlink || echo BAD: dir/file_symlink
 ' "\
 0
 " "" ""
@@ -188,13 +188,13 @@ rm -rf cp.testdir2 >/dev/null && mkdir cp.testdir2 || exit 1
 # cp: will not create hard link `../cp.testdir2/dir_symlink' to directory `../cp.testdir2/dir'
 test x"$SKIP_KNOWN_BUGS" = x"" && \
 testing "cp -RLH" '\
-cd cp.testdir || exit 1; cp -RLH * ../cp.testdir2 2>&1; echo $?; cd .. || exit 1
-test ! -L cp.testdir2/file             || echo BAD: file
-test ! -L cp.testdir2/file_symlink     || echo BAD: file_symlink
-test ! -L cp.testdir2/dir              || echo BAD: dir
-test ! -L cp.testdir2/dir_symlink      || echo BAD: dir_symlink
-test ! -L cp.testdir2/dir/file         || echo BAD: dir/file
-test ! -L cp.testdir2/dir/file_symlink || echo BAD: dir/file_symlink
+cd cp.testdir || exit 1; cp -RLH * ../cp.testdir2 2>&1; echo $?; cd ../cp.testdir2 || exit 1
+test ! -L file             && test   -f file             || echo BAD: file
+test ! -L file_symlink     && test   -f file_symlink     || echo BAD: file_symlink
+test ! -L dir              && test   -d dir              || echo BAD: dir
+test ! -L dir_symlink      && test   -d dir_symlink      || echo BAD: dir_symlink
+test ! -L dir/file         && test   -f dir/file         || echo BAD: dir/file
+test ! -L dir/file_symlink && test   -f dir/file_symlink || echo BAD: dir/file_symlink
 ' "\
 0
 " "" ""