diff options
author | Denys Vlasenko <dvlasenk@redhat.com> | 2010-09-12 15:38:04 +0200 |
---|---|---|
committer | Denys Vlasenko <dvlasenk@redhat.com> | 2010-09-12 15:38:04 +0200 |
commit | a110c90de2f56bf38de30972813f012d44042cb9 (patch) | |
tree | e10506003010cd97df9db623912abb74c409d54c /shell/hush_test | |
parent | 2d8187c139985e73349e3cb092ab4ea68a3be034 (diff) | |
download | busybox-w32-a110c90de2f56bf38de30972813f012d44042cb9.tar.gz busybox-w32-a110c90de2f56bf38de30972813f012d44042cb9.tar.bz2 busybox-w32-a110c90de2f56bf38de30972813f012d44042cb9.zip |
hush: fix EXIT trap display inside exit trap handler
function old new delta
hush_exit 84 78 -6
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
Diffstat (limited to 'shell/hush_test')
-rw-r--r-- | shell/hush_test/hush-trap/exit.right | 10 | ||||
-rwxr-xr-x | shell/hush_test/hush-trap/exit.tests | 31 |
2 files changed, 41 insertions, 0 deletions
diff --git a/shell/hush_test/hush-trap/exit.right b/shell/hush_test/hush-trap/exit.right index b4932fb7f..3d0072564 100644 --- a/shell/hush_test/hush-trap/exit.right +++ b/shell/hush_test/hush-trap/exit.right | |||
@@ -1,2 +1,12 @@ | |||
1 | cow | 1 | cow |
2 | moo | 2 | moo |
3 | Traps1: | ||
4 | trap -- 'exitfunc' EXIT | ||
5 | Traps2: | ||
6 | trap -- 'echo Should not run' EXIT | ||
7 | Check1: 42 | ||
8 | Traps1: | ||
9 | trap -- 'exitfunc' EXIT | ||
10 | Traps2: | ||
11 | trap -- 'echo Should not run' EXIT | ||
12 | Check2: 42 | ||
diff --git a/shell/hush_test/hush-trap/exit.tests b/shell/hush_test/hush-trap/exit.tests index 092543c25..2061105dd 100755 --- a/shell/hush_test/hush-trap/exit.tests +++ b/shell/hush_test/hush-trap/exit.tests | |||
@@ -1,3 +1,34 @@ | |||
1 | "$THIS_SH" -c 'trap "echo cow" 0' | 1 | "$THIS_SH" -c 'trap "echo cow" 0' |
2 | "$THIS_SH" -c 'trap "echo moo" EXIT' | 2 | "$THIS_SH" -c 'trap "echo moo" EXIT' |
3 | "$THIS_SH" -c 'trap "echo no" 0; trap 0' | 3 | "$THIS_SH" -c 'trap "echo no" 0; trap 0' |
4 | |||
5 | ( | ||
6 | exitfunc() { | ||
7 | echo "Traps1:" | ||
8 | trap | ||
9 | # EXIT trap is disabled after it is triggered, | ||
10 | # it can not be "re-armed" like this: | ||
11 | trap "echo Should not run" EXIT | ||
12 | echo "Traps2:" | ||
13 | trap | ||
14 | } | ||
15 | trap 'exitfunc' EXIT | ||
16 | exit 42 | ||
17 | ) | ||
18 | echo Check1: $? | ||
19 | |||
20 | ( | ||
21 | exitfunc() { | ||
22 | echo "Traps1:" | ||
23 | trap | ||
24 | # EXIT trap is disabled after it is triggered, | ||
25 | # it can not be "re-armed" like this: | ||
26 | trap "echo Should not run" EXIT | ||
27 | echo "Traps2:" | ||
28 | trap | ||
29 | exit 42 | ||
30 | } | ||
31 | trap 'exitfunc' EXIT | ||
32 | exit 66 | ||
33 | ) | ||
34 | echo Check2: $? | ||