| @@ -0,0 +1,206 @@ |
| + | #!/bin/sh |
| + | # Copyright 2010 by Denys Vlasenko |
| + | # Licensed under GPL v2, see file LICENSE for details. |
| + | |
| + | . ./testing.sh |
| + | |
| + | # Opening quote in "omitting directory 'dir'" message: |
| + | sq='`' # GNU cp: ` |
| + | sq="'" # bbox cp: ' |
| + | |
| + | rm -rf cp.testdir >/dev/null |
| + | |
| + | mkdir cp.testdir |
| + | mkdir cp.testdir/dir |
| + | > cp.testdir/dir/file |
| + | ln -s file cp.testdir/dir/file_symlink |
| + | |
| + | > cp.testdir/file |
| + | ln -s file cp.testdir/file_symlink |
| + | ln -s dir cp.testdir/dir_symlink |
| + | |
| + | |
| + | # testing "test name" "command" "expected result" "file input" "stdin" |
| + | |
| + | 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 |
| + | ' "\ |
| + | cp: omitting directory ${sq}dir' |
| + | cp: omitting directory ${sq}dir_symlink' |
| + | 1 |
| + | " "" "" |
| + | |
| + | 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 |
| + | ' "\ |
| + | cp: omitting directory ${sq}dir' |
| + | 1 |
| + | " "" "" |
| + | |
| + | 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 |
| + | ' "\ |
| + | cp: omitting directory ${sq}dir' |
| + | 1 |
| + | " "" "" |
| + | |
| + | 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 |
| + | ' "\ |
| + | cp: omitting directory ${sq}dir' |
| + | cp: omitting directory ${sq}dir_symlink' |
| + | 1 |
| + | " "" "" |
| + | |
| + | 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 |
| + | ' "\ |
| + | cp: omitting directory ${sq}dir' |
| + | cp: omitting directory ${sq}dir_symlink' |
| + | 1 |
| + | " "" "" |
| + | |
| + | 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 |
| + | ' "\ |
| + | 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 |
| + | ' "\ |
| + | 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 |
| + | ' "\ |
| + | 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 |
| + | ' "\ |
| + | 0 |
| + | " "" "" |
| + | |
| + | rm -rf cp.testdir2 >/dev/null && mkdir cp.testdir2 || exit 1 |
| + | # GNU coreutils 7.2 says: |
| + | # 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 |
| + | ' "\ |
| + | 0 |
| + | " "" "" |
| + | |
| + | rm -rf cp.testdir2 >/dev/null && mkdir cp.testdir2 || exit 1 |
| + | # GNU coreutils 7.2 says: |
| + | # 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 |
| + | ' "\ |
| + | 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 |
| + | ' "\ |
| + | 0 |
| + | " "" "" |
| + | |
| + | rm -rf cp.testdir2 >/dev/null && mkdir cp.testdir2 || exit 1 |
| + | # Wow! "cp -RLH" is not the same as "cp -RHL" (prev test)! |
| + | # GNU coreutils 7.2 says: |
| + | # 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 |
| + | ' "\ |
| + | 0 |
| + | " "" "" |
| + | |
| + | |
| + | # Clean up |
| + | rm -rf cp.testdir cp.testdir2 2>/dev/null |
| + | |
| + | exit $FAILCOUNT |