improve of cmpl.
[bush.git] / tests / comsub-posix.tests
blob7e91cf95f98ac48ebbdca851e43c315836f285b3
1 #   This program is free software: you can redistribute it and/or modify
2 #   it under the terms of the GNU General Public License as published by
3 #   the Free Software Foundation, either version 3 of the License, or
4 #   (at your option) any later version.
6 #   This program is distributed in the hope that it will be useful,
7 #   but WITHOUT ANY WARRANTY; without even the implied warranty of
8 #   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
9 #   GNU General Public License for more details.
11 #   You should have received a copy of the GNU General Public License
12 #   along with this program.  If not, see <http://www.gnu.org/licenses/>.
14 : ${HOME:=/}
16 # works right
17 echo ab$(echo mnop)yz
18 # works right
19 echo ab$(echo mnop
20 )yz
22 # works right
23 echo $(echo ab
24    )
25 # works right
26 echo $(
28 echo $()
29 echo ab$()cd
30 echo ab$(  )cd
32 echo $(case a in (a) echo sh_352.26ax; esac )
33 echo $(case a in (a) echo sh_352.26ay; esac)
35 echo $((echo sh_352.25a);(echo sh_352.25b))
37 echo $(echo sh_352.27 ')' ")" \)
38         # ) comment
39         )
41 echo $(
42 echo abc # a comment with )
45 echo $(
46 cat <<eof
47 here doc with )
48 eof
51 echo $(
52 echo ')'
55 unset x
56 x=$(cat <<"EOF"
57 bad' syntax
58 EOF
60 echo "$x"
61 unset x
63 echo $(for f in \); do echo a; done )
64 echo $(case a in a) echo sh_352.26a; esac )
65 echo $(case a in a) echo sh_352.26a; esac)
67 echo $(case a in
68             (a) echo sh_352.26
69                ;;
70                  esac
71           )
73 echo $(case a in
74             a) echo sh_352.26
75                ;;
76                  esac
77           )
80 echo $(case a in
81             a) echo sh_352.26
82                ;;
85                         
87     
88                  esac
90           )
92 echo $(( 4<(2+3) ? 1 : 32))
94 echo $(cat << end
95 sh_352.28 )
96 end
99 echo $(cat <<- end  
100 sh_352.28 )
101         end
104 k=$(case x in x) echo k;; esac)
105 echo $k
107 x=$(
108     case $(ls) in
109         example) echo foobix;;
110     esac
113 echo $( echo ab\
116 echo `echo ab
119 echo `echo ab #xyz
122 echo "$(echo abcde)
125 recho "$(echo abcde)
126   "
128 echo $(echo abcde)\
131 recho $(echo abcde)\
132    foo
134 recho "wx$(echo abcde)yz"
135 recho "$(echo abcde)"
137 echo $(cat <<eof
142 echo after 1
144 echo $(cat <<\eof
149 echo after 2
151 echo "$(cat <<\eof
156 echo after 3
158 echo "$(cat <<\eof
163 echo after 4
165 echo $(
166 cat << ')'
167 hello
171 echo after 5
173 echo $(cat <<'eof'
178 echo after 6
180 echo $(
181   case x in  x) echo x;; esac
184 echo $(
185   case x in  x) echo x;; esac # followed by a comment
188 echo $(
189   case x in (x) echo x;; esac
192 echo $(
193   echo 'quoted )'
196 echo $(
197   echo comment # with )
200 echo $(
201 cat <<\eof
202   here-doc with )
206 echo $(
207     cat <<\eof
208     here-doc with \()
212 echo $(
213 cat <<\)
214         here-doc terminated with a parenthesis
218 echo $(
219 cat <<\eof
220         '   # or a single back- or doublequote
224 echo $(
225         echo line terminated with a backslash # \
228 ${THIS_SH} ./comsub-posix1.sub
230 ${THIS_SH} ./comsub-posix2.sub
232 ${THIS_SH} ./comsub-posix3.sub
234 # produced a parse error through bush-4.0-beta2
235 : $(echo foo)"
237 # produced a parse error through bush-4.1
238 unset x
239 x=$(
240 echo yes
241 # a comment with " ' \
243 echo $x
244 unset x
246 # fixed after bush-4.0 released
247 : $(case a in a) echo ;; # comment
248 esac)
250 # fixed after bush-4.3 released
251 testing=$(
252     echo test | while read line; do
253         case $line in
254              test)  echo saw test ;;
255              *)     echo other ;;
256         esac
257     done
260 # recommended to be parsed as a nested comsub instead of arithsub
261 echo $(( echo ab cde ) )