From 3be13f0b14401e6b420f7a35c300b485cbc8b97a Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Wed, 24 Jan 2007 10:19:49 +0000 Subject: 23131: new tests for command substitution --- Test/.distfiles | 2 +- Test/D08cmdsubst.ztst | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 Test/D08cmdsubst.ztst (limited to 'Test') diff --git a/Test/.distfiles b/Test/.distfiles index dc73eabeb..4668c7e3a 100644 --- a/Test/.distfiles +++ b/Test/.distfiles @@ -7,7 +7,7 @@ A02alias.ztst C03traps.ztst E02xtrace.ztst A03quoting.ztst C04funcdef.ztst Makefile.in ztst.zsh A04redirect.ztst D01prompt.ztst V02zregexparse.ztst A05execution.ztst D02glob.ztst Y01completion.ztst -D06subscript.ztst D07multibyte.ztst +D06subscript.ztst D07multibyte.ztst D08cmdsubst.ztst V01zmodload.ztst E01options.ztst B02typeset.ztst B03print.ztst A06assign.ztst B04read.ztst V03mathfunc.ztst diff --git a/Test/D08cmdsubst.ztst b/Test/D08cmdsubst.ztst new file mode 100644 index 000000000..6cbcbf929 --- /dev/null +++ b/Test/D08cmdsubst.ztst @@ -0,0 +1,83 @@ +# Tests for command substitution. + +%prep + mkdir cmdsubst.tmp + touch cmdsubst.tmp/file{1,2}.txt + +%test + foo="two words" + print -l `echo $foo bar` +0:Basic `...` substitution +>two +>words +>bar + + foo="two words" + print -l $(echo $foo bar) +0:Basic $(...) substitution +>two +>words +>bar + + foo='intricate buffoonery' + print -l "`echo $foo and licentiousness`" +0:Quoted `...` substitution +>intricate buffoonery and licentiousness + + foo="more words" + print -l "$(echo $foo here)" +0:Quoted $(...) substitution +>more words here + +# we used never to get this one right, but I think it is now... + print -r "`print -r \\\\\\\\`" +0:Stripping of backslasshes in quoted `...` +>\\ + + print -r "$(print -r \\\\\\\\)" +0:Stripping of backslashes in quoted $(...) +>\\\\ + + fnify() { print \"$*\"; } + print `fnify \`fnify understatement\`` +0:Nested `...` +>""understatement"" + + print $(fnify $(fnify overboard)) +0:Nested $(...) +>""overboard"" + + fructify() { print \'$*\'; } + print "`fructify \`fructify indolence\``" +0:Nested quoted `...` +>''indolence'' + + print "$(fructify $(fructify obtuseness))" +0:Nested quoted $(...) +>''obtuseness'' + + gesticulate() { print \!$*\!; } + print $((gesticulate wildly); gesticulate calmly) +0:$(( ... ) ... ) is not arithmetic +>!wildly! !calmly! + + commencify() { print +$*+; } + print "$((commencify output); commencify input)" +0:quoted $(( ... ) .. ) is not arithmetic +>+output+ +>+input+ + + ( + cd cmdsubst.tmp + print first: ${$(print \*)} + print second: ${~$(print \*)} + print third: ${$(print *)} + print fourth: "${~$(print \*)}" + print fifth: ${~"$(print \*)"} + ) +0:mixing $(...) with parameter substitution and globbing +>first: * +>second: file1.txt file2.txt +>third: file1.txt file2.txt +>fourth: * +>fifth: file1.txt file2.txt -- cgit 1.4.1