123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206 |
- #!/bin/sh
- # Copyright 2010 by Denys Vlasenko
- # Licensed under GPLv2, see file LICENSE in this source tree.
- . ./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 ../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'
- 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 ../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
- " "" ""
- 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 ../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
- " "" ""
- 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 ../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'
- 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 ../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'
- 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 ../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 ../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 ../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 ../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
- # 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 ../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
- # 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 ../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 ../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
- # 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 ../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
- " "" ""
- # Clean up
- rm -rf cp.testdir cp.testdir2 2>/dev/null
- exit $FAILCOUNT
|