~ubuntu-branches/ubuntu/trusty/bash/trusty-security

« back to all changes in this revision

Viewing changes to tests/set-e.tests

  • Committer: Package Import Robot
  • Author(s): Matthias Klose
  • Date: 2014-03-03 22:52:05 UTC
  • mfrom: (1.3.5) (2.2.6 experimental)
  • Revision ID: package-import@ubuntu.com-20140303225205-87ltrt5kspeq0g1b
Tags: 4.3-1ubuntu1
* Merge with Debian; remaining changes:
  - skel.bashrc:
    - Run lesspipe.
    - Enable ls aliases.
    - Set options in ll alias to -alF.
    - Define an alert alias.
    - Enabled colored grep aliases.
  - etc.bash.bashrc:
    - Add sudo hint.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
if : ; then
 
2
        set -e
 
3
        N=95
 
4
        while :; do
 
5
                # expr returns 1 if expression is null or 0
 
6
                set +e
 
7
                N_MOD_100=`expr $N % 100`
 
8
                set -e
 
9
                echo $N_MOD_100
 
10
                N=`expr $N + 1`
 
11
                if [ $N -eq 110 ]; then
 
12
                        break
 
13
                fi
 
14
        done
 
15
        set +e
 
16
fi
 
17
 
 
18
(
 
19
set -e
 
20
false
 
21
echo bad
 
22
)
 
23
echo $?
 
24
 
 
25
x=$(
 
26
set -e
 
27
false
 
28
echo bad
 
29
)
 
30
echo $? $x
 
31
 
 
32
# command subst should not inherit -e
 
33
set -e
 
34
echo $(false; echo ok)
 
35
 
 
36
if set +e
 
37
then
 
38
        false
 
39
fi
 
40
echo hi
 
41
 
 
42
set -e
 
43
 
 
44
# a failing command in the compound list following a while, until, or
 
45
# if should not cause the shell to exit
 
46
 
 
47
while false; do
 
48
        echo hi
 
49
done
 
50
echo while succeeded
 
51
 
 
52
x=1
 
53
until (( x == 4 )); do
 
54
        x=4
 
55
done
 
56
echo until succeeded: $x
 
57
 
 
58
if false; then
 
59
        echo oops
 
60
fi
 
61
echo if succeeded
 
62
 
 
63
# failing commands that are part of an AND or OR list should not
 
64
# cause the shell to exit
 
65
false && echo AND list failed
 
66
echo AND list succeeded
 
67
 
 
68
false || echo OR list succeeded
 
69
 
 
70
! false
 
71
echo ! succeeded
 
72
 
 
73
# make sure eval preserves the state of the -e flag and `!' reserved word
 
74
set -e
 
75
if eval false; then
 
76
        echo oops
 
77
fi
 
78
echo eval succeeded
 
79
 
 
80
! eval false
 
81
echo ! eval succeeded -- 1
 
82
 
 
83
! eval '(exit 5)'
 
84
echo ! eval succeeded -- 2
 
85
 
 
86
set -e
 
87
until builtin false; do echo a; break; done
 
88
echo $?
 
89
 
 
90
until eval false; do echo b; break; done
 
91
echo $?
 
92
 
 
93
: ${TMPDIR:=/tmp}
 
94
FN=$TMPDIR/set-e-$$
 
95
cat > $FN << EOF
 
96
false
 
97
echo after 1
 
98
false
 
99
EOF
 
100
 
 
101
set -e
 
102
until . $FN; do echo a; break; done
 
103
echo $?
 
104
 
 
105
rm -f $FN
 
106
 
 
107
set +e
 
108
 
 
109
${THIS_SH} ./set-e1.sub
 
110
${THIS_SH} ./set-e2.sub
 
111
${THIS_SH} ./set-e3.sub