diff options
Diffstat (limited to 'tests/test/script/builtin/cp.test')
-rw-r--r-- | tests/test/script/builtin/cp.test | 376 |
1 files changed, 0 insertions, 376 deletions
diff --git a/tests/test/script/builtin/cp.test b/tests/test/script/builtin/cp.test deleted file mode 100644 index e81b395..0000000 --- a/tests/test/script/builtin/cp.test +++ /dev/null @@ -1,376 +0,0 @@ -# file : tests/test/script/builtin/cp.test -# copyright : Copyright (c) 2014-2018 Code Synthesis Ltd -# license : MIT; see accompanying LICENSE file - -.include ../common.test - -: args -: -{ - : none - : - $c <'cp 2>"cp: missing arguments" == 1' && $b - - : no-source - : - $c <'cp -R a 2>"cp: missing source path" == 1' && $b - - : no-trailing-sep - : - $c <<EOI && $b - cp a b c 2>"cp: multiple source paths without trailing separator for destination directory" == 1 - EOI - - : empty - : - { - : dest - : - $c <<EOI && $b - cp '' 2>"cp: invalid path ''" == 1 - EOI - - : src1 - : - $c <<EOI && $b - cp '' a 2>"cp: invalid path ''" == 1 - EOI - - : src2 - : - $c <<EOI && $b - cp '' a b/ 2>"cp: invalid path ''" == 1 - EOI - } -} - -: file -: -: Test synopsis 1: make a file copy at the specified path. -: -{ - : existing - : - { - : to-non-existing - : - $c <<EOI && $b - touch a; - cp a b && test -f b - EOI - - : to-existing - : - $c <<EOI && $b - touch a b; - cp a b - EOI - - : to-dir - : - $c <<EOI && $b - touch a; - mkdir b; - cp a b 2>>/~%EOE% != 0 - %cp: unable to copy file '.+/a' to '.+/b': .+% - EOE - EOI - } - - : non-existing - : - { - $c <<EOI && $b - cp a b 2>>/~%EOE% != 0 - %cp: unable to copy file '.+/a' to '.+/b': .+% - EOE - EOI - } - - : non-file - : - { - $c <<EOI && $b - mkdir a; - cp a b 2>>/~%EOE% != 0 - %cp: unable to copy file '.+/a' to '.+/b': .+% - EOE - EOI - } - - : cleanup - : - { - : existing - : - : Test that copy over an existing file does not register cleanup. If it - : does then the file would be removed while leaving the embedded scope, - : and so the cleanup registered by the outer touch would fail. - : - $c <<EOI && $b - +touch b - { - touch a; - cp a ../b - } - EOI - } -} - -: dir -: -: Test synopsis 2: make a directory copy at the specified path. -: -{ - : existing - : - { - : to-non-existing - : - $c <<EOI && $b - mkdir a; - cp -r a b && test -d b - EOI - - : to-existing - : - $c <<EOI && $b - mkdir a b; - cp -R a b 2>>/~%EOE% != 0 - %cp: unable to copy directory '.+/a' to '.+/b': .+% - EOE - EOI - - : to-file - : - $c <<EOI && $b - mkdir a; - touch b; - cp -r a b 2>>/~%EOE% != 0 - %cp: unable to copy directory '.+/a' to '.+/b': .+% - EOE - EOI - - : recursively - : - { - $c <<EOI && $b - mkdir -p a/b/c; - touch a/x a/b/y; - cp -r a d && test -d d/b/c && test -f d/x && test -f d/b/y - EOI - } - } - - : non-existing - : - { - $c <<EOI && $b - cp -r a b 2>>/~%EOE% != 0 - %cp: unable to copy directory '.+/a' to '.+/b': .+% - EOE - EOI - } - - : non-dir - : - { - $c <<EOI && $b - touch a; - cp -r a b 2>>/~%EOE% != 0 - %cp: unable to copy directory '.+/a' to '.+/b': .+% - EOE - EOI - } -} - -: files -: -: Test synopsis 3: copy files into the specified directory. -: -{ - : existing - : - { - : into-dir - : - { - : over-non-existing - : - $c <<EOI && $b - mkdir b; - touch a; - cp a b/ && test -f b/a - EOI - - : over-dir - : - $c <<EOI && $b - mkdir -p b/a; - touch a; - cp a b/ 2>>/~%EOE% != 0 - %cp: unable to copy file '.+/a' to '.+/b/a': .+% - EOE - EOI - - : multiple - : - $c <<EOI && $b - touch a b; - mkdir c; - cp a b c/ && test -f c/a && test -f c/b - EOI - } - - : into-non-existing-dir - : - { - $c <<EOI && $b - touch a; - cp a b/ 2>>/~%EOE% != 0 - %cp: unable to copy file '.+/a' to '.+/b/a': .+% - EOE - EOI - } - - : into-non-dir - : - { - $c <<EOI && $b - touch a b; - cp a b/ 2>>/~%EOE% != 0 - %cp: unable to copy file '.+/a' to '.+/b/a': .+% - EOE - EOI - } - } - - : non-existing - : - { - $c <<EOI && $b - mkdir b; - cp a b/ 2>>/~%EOE% != 0 - %cp: unable to copy file '.+/a' to '.+/b/a': .+% - EOE - EOI - } - - : non-file - : - { - $c <<EOI && $b - mkdir a b; - cp a b/ 2>>/~%EOE% != 0 - %cp: unable to copy file '.+/a' to '.+/b/a': .+% - EOE - EOI - } -} - -: filesystem-entries -: -: Test synopsis 4: copy filesystem entries into the specified directory. -: -{ - : file - : - { - $c <<EOI && $b - mkdir b; - touch a; - cp -R a b/ && test -f b/a - EOI - } - - : dir - : - { - : over-non-existing - : - $c <<EOI && $b - mkdir a b; - touch a/c; - cp -R a b/ && test -f b/a/c - EOI - - : over-existing - : - $c <<EOI && $b - mkdir -p a b/a; - cp -R a b/ 2>>/~%EOE% != 0 - %cp: unable to copy directory '.+/a' to '.+/b/a': .+% - EOE - EOI - } -} - -: attrs -: -if ($cxx.target.class != 'windows') -{ - fs = 's/.+ (\S+\s+\S+\s+\S+)\s+cp-file/\1/p' - ds = 's/.+ (\S+\s+\S+\s+\S+)\s+cp-dir/\1/p' - - : copy - : - { - : file - : - { - $c <<"EOI" && $b - ls -l $src_base/cp-dir | sed -n -e '$fs' | \ - set t; - - cp -p $src_base/cp-dir/cp-file ./; - ls -l | sed -n -e '$fs' >"\$t" - EOI - } - - : dir - : - { - $c <<"EOI" && $b - ls -l $src_base | sed -n -e '$ds' | \ - set t; - - cp -p -r $src_base/cp-dir ./; - ls -l | sed -n -e '$ds' >"\$t" - EOI - } - } - - : no-copy - : - { - : file - : - { - $c <<"EOI" && $b 2>>~%EOE% != 0 - ls -l $src_base/cp-dir | sed -n -e '$fs' | \ - set t; - - cp $src_base/cp-dir/cp-file ./; - ls -l | sed -n -e '$fs' >"\$t" - EOI - %.+ error: sed stdout doesn't match expected% - %.+ - EOE - } - - : dir - : - { - $c <<"EOI" && $b 2>>~%EOE% != 0 - ls -l $src_base | sed -n -e '$ds' | \ - set t; - - cp -r $src_base/cp-dir ./; - ls -l | sed -n -e '$ds' >"\$t" - EOI - %.+ error: sed stdout doesn't match expected% - %.+ - EOE - } - } -} |