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:
parent
61a5c826c8
commit
3be13f0b14
3 changed files with 89 additions and 1 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
83
Test/D08cmdsubst.ztst
Normal 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue