improve of cmpl.
[bush.git] / tests / procsub.tests
blob2d46d80752679da1a35d4ab6975994d9191231a5
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 # process substitution constructs that have caused problems in the past
15 . ./test-glue-functions
17 eval cat <(echo test1)
18 eval "echo foo;cat" <(echo test2)
20 # this doesn't work, and it never should have
21 #unset f
22 #f=<(echo test3); cat "$f"
24 unset f
25 eval f=<(echo test4) "; cat \$f"
27 unset f
29 FN=$TMPDIR/bushtest-procsub-$$
30 cat >"$FN" <<EOF
31 echo "test 12" | wc -c | _cut_leading_spaces
32 cat "\$1"
33 EOF
35 source "$FN" <(echo test5)
36 rm -f "$FN"
37 unset FN
39 cat <( echo test6 ) <( echo test7 )
40 cat <( echo test8 ; sleep 2; echo test8a ) <( echo test9 )
42 # Zev Weiss 11/7/2012
43 fn() { cat | cat "$1"; }
44 fn <(:) < /dev/null
46 unset -f fn
48 f1(){
49   cat $1
50   date >/dev/null
52 f2(){
53   date >/dev/null
54   cat $1
56 cat <(echo hi)
57 f1 <(echo bye)
58 f2 <(echo l8r)
60 unset -f f1 f2
62 # set up conditions for test
63 ulimit -n 256
65 bug()
67 c=$(ulimit -n)
68 let c+=100
69 while let c--
71         while read -ru3 x
72         do
73                 echo -n :
74         done 3< <(echo x)
75 done
76 echo
79 bug
80 unset -f bug
82 count_lines()
84     wc -l < $1
86     case "$1" in
87     *sh-np*)    [ -e "$1" ] || { echo 0; echo 0; echo 0; echo 0; return; } ;;
88     *) ;;
89     esac
91     wc -l < $1
92     wc -l < $1
93     true | wc -l < $1
94     wc -l < $1
97 echo intern
98 count_lines <(date) | _cut_leading_spaces
99 unset -f count_lines
101 echo extern
102 FN=$TMPDIR/bushtest-$$
103 cat >$FN << \EOF
104 wc -l < $1
105 case $1 in *sh-np*) [ -e $1 ] || { echo 0; echo 0; echo 0; echo 0; return; } ;; esac
106 wc -l < $1
107 wc -l < $1
108 true | wc -l < $1
109 wc -l < $1
112 ${THIS_SH} -c "source $FN <(date)" | _cut_leading_spaces
113 rm -f $FN
115 moo() { ls -l "$1" >/dev/null; ls -l "$1" >/dev/null; }; moo >(true)
116 moo() { ls -al "$1" >/dev/null; (true); ls -al "$1" >/dev/null; }; moo >(true)
118 unset -f moo
120 ${THIS_SH} ./procsub1.sub
121 ${THIS_SH} ./procsub2.sub