run-file () { local spec_name=$1; shift; local spec_file=spec/$spec_name.test.sh; local suite; suite=$(test/sh_spec.py --print-spec-suite $spec_file); local spec_subdir; case $suite in osh) spec_subdir='osh-cpp' ;; ysh) spec_subdir='ysh-cpp' ;; *) die "Invalid suite $suite" ;; esac; local base_dir=_tmp/spec/$spec_subdir; mkdir -v -p $base_dir; sh-spec $spec_file --timeout 10 --oils-bin-dir $PWD/bin --oils-cpp-bin-dir $REPO_ROOT/_bin/cxx-asan --tsv-output $base_dir/${spec_name}.tsv "$@" } builtin-trap: spec test case results

Results for builtin-trap.test.sh

statusoshosh-cpp
pass 1717
ok 11
total1818
caseoshosh-cppdescription
0pass pass trap accepts/ignores --
1ok ok trap 'echo hi' KILL (regression test, caught by smoosh suite)
detailsdetails
2pass pass Register invalid trap
3pass pass Remove invalid trap
4pass pass SIGINT and INT are aliases
5pass pass Invalid trap invocation
6pass pass exit 1 when trap code string is invalid
7pass pass trap EXIT calling exit
8pass pass trap EXIT return status ignored
9pass pass trap EXIT with PARSE error
10pass pass trap EXIT with PARSE error and explicit exit
11pass pass trap EXIT with explicit exit
12pass pass trap EXIT with command sub / subshell / pipeline
13pass pass trap 0 is equivalent to EXIT
14pass pass trap 1 is equivalent to SIGHUP; HUP is equivalent to SIGHUP
15pass pass eval in the exit trap (regression for issue #293)
16pass pass exit codes for traps are isolated
17pass pass traps are cleared in subshell (started with &)
34 passed, 2 OK, 0 not implemented, 0 BUG, 0 failed, 0 timeouts, 0 cases skipped

Details on runs that didn't PASS

osh1 trap 'echo hi' KILL (regression test, caught by smoosh suite)

stdout:
status=1
status=1
status=1
status=0
stderr:
  trap 'echo hi' 9
                 ^
[ stdin ]:1: Signal '9' can't be handled
  trap 'echo hi' KILL
                 ^~~~
[ stdin ]:4: Invalid signal or hook 'KILL'
  trap 'echo hi' STOP
                 ^~~~
[ stdin ]:7: Signal 'STOP' can't be handled
osh-cpp1 trap 'echo hi' KILL (regression test, caught by smoosh suite)

stdout:
status=1
status=1
status=1
status=0
stderr:
  trap 'echo hi' 9
                 ^
[ stdin ]:1: Signal '9' can't be handled
  trap 'echo hi' KILL
                 ^~~~
[ stdin ]:4: Invalid signal or hook 'KILL'
  trap 'echo hi' STOP
                 ^~~~
[ stdin ]:7: Signal 'STOP' can't be handled