diff options
Diffstat (limited to 'tests/test/script/builtin/ln.testscript')
-rw-r--r-- | tests/test/script/builtin/ln.testscript | 180 |
1 files changed, 31 insertions, 149 deletions
diff --git a/tests/test/script/builtin/ln.testscript b/tests/test/script/builtin/ln.testscript index 072c197..456126a 100644 --- a/tests/test/script/builtin/ln.testscript +++ b/tests/test/script/builtin/ln.testscript @@ -4,119 +4,25 @@ .include ../common.testscript -: unknown-option -: -$c <<EOI && $b -ln -u 2>"ln: unknown option '-u'" == 1 -EOI - -: args -: -{ - : -s-option - : - $c <'ln 2>"ln: missing -s|--symbolic option" == 1' && $b - - : none - : - $c <'ln -s 2>"ln: missing arguments" == 1' && $b - - : no-target - : - $c <'ln -s a 2>"ln: missing target path" == 1' && $b - - : no-trailing-sep - : - $c <<EOI && $b - ln -s a b c 2>"ln: multiple target paths with non-directory link path" == 1 - EOI - - : empty - : - { - : link - : - $c <<EOI && $b - ln -s '' 2>"ln: invalid path ''" == 1 - EOI - - : target1 - : - $c <<EOI && $b - ln -s '' a 2>"ln: invalid path ''" == 1 - EOI - - : target2 - : - $c <<EOI && $b - ln -s '' a b/ 2>"ln: invalid path ''" == 1 - EOI - } -} - : file : : Test creating a file symlink. : { - : non-existing-link-path + : cleanup : $c <<EOI && $b - touch a; - ln -s a b && test -f b - EOI - - : existing-link - : - { - : file - : - $c <<EOI && $b - touch a b; - ln -s a b 2>>/~%EOE% != 0 - %( - %ln: unable to create .+link '.+/b' to '.+/a': .+%| - %ln: unable to copy file '.+/a' to '.+/b': .+% - %) - EOE - EOI - - : dir - : - $c <<EOI && $b touch a; - mkdir b; - ln -s a b 2>>/~%EOE% != 0 - %( - %ln: unable to create .+link '.+/b' to '.+/a': .+%| - %ln: unable to copy file '.+/a' to '.+/b': .+% - %) - EOE - EOI - } - - : non-existing - { - : target - : - $c <<EOI && $b - ln -s a b 2>>/~%EOE% != 0 - %ln: unable to create symlink to '.+/a': no such file or directory% - EOE + ln -s a b EOI - : link-dir - : - $c <<EOI && $b + : no-cleanup + : + $c <<EOI && $b touch a; - ln -s a b/c 2>>/~%EOE% != 0 - %( - %ln: unable to create .+link '.+/b/c' to '.+/a': .+%| - %ln: unable to copy file '.+/a' to '.+/b/c': .+% - %) - EOE + ln -s --no-cleanup a b; + rm b EOI - } } : dir @@ -124,57 +30,22 @@ EOI : Test creating a directory symlink. : { - : non-existing-link-path + : cleanup : $c <<EOI && $b - mkdir a; - touch a/b; - ln -s a c && test -f c/b - EOI - - : existing-link - : - { - : dir - : - $c <<EOI && $b - mkdir a b; - ln -s a b 2>>/~%EOE% != 0 - %( - %ln: unable to create .+link '.+/b' to '.+/a': .+%| - %ln: unable to copy directory '.+/a' to '.+/b': .+% - %) - EOE - EOI - - : file - : - $c <<EOI && $b mkdir a; - touch b; - ln -s a b 2>>/~%EOE% != 0 - %( - %ln: unable to create .+link '.+/b' to '.+/a': .+%| - %ln: unable to copy directory '.+/a' to '.+/b': .+% - %) - EOE + touch a/b; + ln -s a c EOI - } - : non-existing - { - : link-dir - : - $c <<EOI && $b + : no-cleanup + : + $c <<EOI && $b mkdir a; - ln -s a b/c 2>>/~%EOE% != 0 - %( - %ln: unable to create .+link '.+/b/c' to '.+/a': .+%| - %ln: unable to copy directory '.+/a' to '.+/b/c': .+% - %) - EOE + touch a/b; + ln -s --no-cleanup a c; + rm -r c EOI - } } : multiple-targets @@ -182,9 +53,20 @@ EOI : Test creating links for multiple targets in the specified directory. : { + : cleanup + : $c <<EOI && $b - touch a; - mkdir b c; - ln -s a b c/ && test -f c/a && test -d c/b - EOI + mkdir b c; + touch a b/c; + ln -s a b c/ + EOI + + : no-cleanup + : + $c <<EOI && $b + mkdir b c; + touch a b/c; + ln -s --no-cleanup a b c/; + rm -r c/a c/b + EOI } |