1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2026-01-01 20:11:06 +01:00

23131: new tests for command substitution

This commit is contained in:
Peter Stephenson 2007-01-24 10:19:49 +00:00
parent 61a5c826c8
commit 3be13f0b14
3 changed files with 89 additions and 1 deletions

View file

@ -1,3 +1,8 @@
2007-01-24 Peter Stephenson <pws@csr.com>
* 23131: Test/.distfiles, Test/D08cmdsubst.ztst: new tests for
command substitution.
2007-01-23 Peter Stephenson <pws@csr.com>
* 23126, modified: Src/lex.c: errors when deciding between

View file

@ -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

83
Test/D08cmdsubst.ztst Normal file
View file

@ -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