Results for builtin-trap.test.sh

statusdashbashmkshashosh
pass 2228202326
ok 40542
N-I 30110
BUG-2 00010
BUG 12410
FAIL 00002
total3030303030
casedashbashmkshashoshdescription
0pass BUG pass BUG-2 pass traps are not active inside subshells $() () trap | cat
detailsdetails
1pass pass pass pass pass trap accepts/ignores --
2pass pass pass pass pass Register invalid trap, remove invalid trap
3pass pass BUG pass pass trap foo gives non-zero error
details
4N-I pass pass pass pass SIGINT and INT are aliases
details
5pass pass pass pass pass trap without args prints traps
6ok pass ok ok FAIL print trap handler with multiple lines
detailsdetailsdetailsdetails
7N-I pass N-I N-I pass trap -p is like trap: it prints the handlers and full signal names
detailsdetailsdetails
8ok pass ok ok pass Register the same handler for multiple signals
detailsdetailsdetails
9pass pass pass pass pass Remove multiple handlers with trap -
10ok pass BUG ok pass trap EXIT clears the EXIT trap
detailsdetailsdetails
11ok pass ok ok pass trap 0 is equivalent to trap EXIT
detailsdetailsdetails
12N-I pass pass pass pass trap 1 is equivalent to SIGHUP; HUP is equivalent to SIGHUP
details
13pass pass pass pass pass trap 0 2 resets EXIT AND SIGINT
14pass pass BUG pass FAIL trap '' EXIT - printing state
detailsdetails
15pass pass pass pass ok trap 'echo hi' KILL (regression test, caught by smoosh suite)
details
16BUG BUG BUG BUG pass exit 1 when trap code string is invalid
detailsdetailsdetailsdetails
17pass pass pass pass pass trap EXIT calling exit
18pass pass pass pass pass trap EXIT return status ignored
19pass pass ok pass pass trap EXIT with PARSE error
details
20pass pass pass pass pass trap EXIT with PARSE error and explicit exit
21pass pass pass pass pass trap EXIT with explicit exit
22pass pass pass pass pass trap EXIT with command sub / subshell / pipeline
23pass pass pass pass pass eval in the exit trap (regression for issue #293)
24pass pass pass pass pass exit codes for traps are isolated
25pass pass pass pass pass traps are cleared in subshell (started with &)
26pass pass pass pass pass trap USR1, sleep, SIGINT: non-interactively
27pass pass ok pass ok trap INT, sleep, SIGINT: non-interactively
detailsdetails
28pass pass pass pass pass trap EXIT, sleep, SIGINT: non-interactively
29pass pass pass pass pass Remove trap with an unsigned integer
119 passed, 15 OK, 5 not implemented, 9 BUG, 2 failed, 0 timeouts, 0 cases skipped
2 failed under osh

Details on runs that didn't PASS

bash0 traps are not active inside subshells $() () trap | cat

stdout:
1 traps.txt
( )
trap -- 'echo bye' EXIT
$(trap)
trap -- 'echo bye' EXIT
trap | cat
trap -- 'echo bye' EXIT
bye
stderr:
ash0 traps are not active inside subshells $() () trap | cat

stdout:
1 traps.txt
( )
$(trap)
trap -- 'echo bye' EXIT
trap | cat
bye
stderr:
mksh3 trap foo gives non-zero error

stdout:
stderr: 
dash4 SIGINT and INT are aliases

stdout:
1
0
stderr:
trap: SIGINT: bad trap
dash6 print trap handler with multiple lines

stdout:
trap -- 'echo 1
echo 2
echo 3' INT
stderr:
mksh6 print trap handler with multiple lines

stdout:
trap -- $'echo 1\necho 2\necho 3' INT
stderr:
ash6 print trap handler with multiple lines

stdout:
trap -- 'echo 1
echo 2
echo 3' INT
stderr:
osh6 print trap handler with multiple lines

[osh stdout] Expected "trap -- 'echo 1\necho 2\necho 3' SIGINT\n" Got "trap -- '<unknown>' SIGINT\n"

stdout:
trap -- '<unknown>' SIGINT
stderr:
dash7 trap -p is like trap: it prints the handlers and full signal names

stdout:
stderr: 
mksh7 trap -p is like trap: it prints the handlers and full signal names

stdout:
EXIT
stderr:
mksh: <stdin>[4]: trap: -p: unknown option
ash7 trap -p is like trap: it prints the handlers and full signal names

stdout:
EXIT
stderr:
ash: trap: line 4: illegal option -p
dash8 Register the same handler for multiple signals

stdout:
trap -- 'echo test' EXIT
trap -- 'echo test' INT
trap -- 'echo test' TERM
test
stderr:
mksh8 Register the same handler for multiple signals

stdout:
trap -- 'echo test' EXIT
trap -- 'echo test' INT
trap -- 'echo test' TERM
test
stderr:
ash8 Register the same handler for multiple signals

stdout:
trap -- 'echo test' EXIT
trap -- 'echo test' INT
trap -- 'echo test' TERM
test
stderr:
dash10 trap EXIT clears the EXIT trap

stdout:
trap -- 'echo EXIT' EXIT
trap -- 'echo INT' INT
---
trap -- 'echo INT' INT
---
stderr:
mksh10 trap EXIT clears the EXIT trap

stdout:
trap -- 'echo EXIT' EXIT
trap -- 'echo INT' INT
---
trap -- 'echo EXIT' EXIT
trap -- 'echo INT' INT
---
trap -- 'echo EXIT' EXIT
trap -- 'echo INT' INT
EXIT
stderr:
ash10 trap EXIT clears the EXIT trap

stdout:
trap -- 'echo EXIT' EXIT
trap -- 'echo INT' INT
---
trap -- 'echo INT' INT
---
stderr:
dash11 trap 0 is equivalent to trap EXIT

stdout:
trap -- 'echo EXIT' EXIT
trap -- 'echo INT' INT
---
trap -- 'echo INT' INT
stderr:
mksh11 trap 0 is equivalent to trap EXIT

stdout:
trap -- 'echo EXIT' EXIT
trap -- 'echo INT' INT
---
trap -- 'echo INT' INT
stderr:
ash11 trap 0 is equivalent to trap EXIT

stdout:
trap -- 'echo EXIT' EXIT
trap -- 'echo INT' INT
---
trap -- 'echo INT' INT
stderr:
dash12 trap 1 is equivalent to SIGHUP; HUP is equivalent to SIGHUP

stdout:
status=1
status=0
status=0
status=0
stderr:
trap: SIGHUP: bad trap
mksh14 trap '' EXIT - printing state

stdout:
trap -- 'echo exit' EXIT

trap --  EXIT

trap -- '# comment' EXIT
stderr:
osh14 trap '' EXIT - printing state

[osh stdout] Expected "trap -- 'echo exit' EXIT\n\ntrap -- '' EXIT\n\ntrap -- '# comment' EXIT\n" Got "trap -- 'echo exit' EXIT\n\ntrap -- '<unknown>' EXIT\n\ntrap -- '<unknown>' EXIT\n"

stdout:
trap -- 'echo exit' EXIT

trap -- '<unknown>' EXIT

trap -- '<unknown>' EXIT
stderr:
osh15 trap 'echo hi' KILL (regression test, caught by smoosh suite)

stdout:
status=2
status=2
status=2
status=0
stderr:
  trap 'echo hi' 9
                 ^
[ stdin ]:1: Signal '9' can't be handled
  trap 'echo hi' KILL
                 ^~~~
[ stdin ]:4: Signal 'KILL' can't be handled
  trap 'echo hi' STOP
                 ^~~~
[ stdin ]:7: Signal 'STOP' can't be handled
dash16 exit 1 when trap code string is invalid

stdout:
status=0
stderr:
dash: 1: Syntax error: end of file unexpected
bash16 exit 1 when trap code string is invalid

stdout:
status=0
stderr:
bash: exit trap: line 1: syntax error near unexpected token `newline'
bash: exit trap: line 1: `echo <'
mksh16 exit 1 when trap code string is invalid

stdout:
status=0
stderr:
mksh: syntax error: unexpected EOF
ash16 exit 1 when trap code string is invalid

stdout:
status=0
stderr:
ash: syntax error: unexpected end of file
mksh19 trap EXIT with PARSE error

stdout:
FAILED
stderr:
mksh: <stdin>[2]: syntax error: 'newline' unexpected
mksh27 trap INT, sleep, SIGINT: non-interactively

stdout:
mksh
stderr:
osh27 trap INT, sleep, SIGINT: non-interactively

stdout:
int
status=0
stderr: