1*3e3895bfSKrzysztof Piecuch# $FreeBSD: head/bin/sh/tests/builtins/trap2.0 194517 2009-06-19 22:15:59Z jilles $ 23df4d8b0SPeter Avalos# This is really a test for outqstr(), which is readily accessible via trap. 33df4d8b0SPeter Avalos 43df4d8b0SPeter Avalosruntest() 53df4d8b0SPeter Avalos{ 63df4d8b0SPeter Avalos teststring=$1 73df4d8b0SPeter Avalos trap -- "$teststring" USR1 83df4d8b0SPeter Avalos traps=$(trap) 93df4d8b0SPeter Avalos if [ "$teststring" != "-" ] && [ -z "$traps" ]; then 103df4d8b0SPeter Avalos # One possible reading of POSIX requires the above to return an 113df4d8b0SPeter Avalos # empty string because backquote commands are executed in a 123df4d8b0SPeter Avalos # subshell and subshells shall reset traps. However, an example 133df4d8b0SPeter Avalos # in the normative description of the trap builtin shows the 143df4d8b0SPeter Avalos # same usage as here, it is useful and our /bin/sh allows it. 153df4d8b0SPeter Avalos echo '$(trap) is broken' 163df4d8b0SPeter Avalos exit 1 173df4d8b0SPeter Avalos fi 183df4d8b0SPeter Avalos trap - USR1 193df4d8b0SPeter Avalos eval "$traps" 203df4d8b0SPeter Avalos traps2=$(trap) 213df4d8b0SPeter Avalos if [ "$traps" != "$traps2" ]; then 223df4d8b0SPeter Avalos echo "Mismatch for '$teststring'" 233df4d8b0SPeter Avalos exit 1 243df4d8b0SPeter Avalos fi 253df4d8b0SPeter Avalos} 263df4d8b0SPeter Avalos 273df4d8b0SPeter Avalosruntest 'echo' 283df4d8b0SPeter Avalosruntest 'echo hi' 293df4d8b0SPeter Avalosruntest "'echo' 'hi'" 303df4d8b0SPeter Avalosruntest '"echo" $PATH' 313df4d8b0SPeter Avalosruntest '\echo "$PATH"' 323df4d8b0SPeter Avalosruntest ' 0' 333df4d8b0SPeter Avalosruntest '0 ' 343df4d8b0SPeter Avalosruntest ' 1' 353df4d8b0SPeter Avalosruntest '1 ' 363df4d8b0SPeter Avalosi=1 373df4d8b0SPeter Avaloswhile [ $i -le 127 ]; do 383df4d8b0SPeter Avalos c=$(printf \\"$(printf %o $i)") 393df4d8b0SPeter Avalos if [ $i -lt 48 ] || [ $i -gt 57 ]; then 403df4d8b0SPeter Avalos runtest "$c" 413df4d8b0SPeter Avalos fi 423df4d8b0SPeter Avalos runtest " $c$c" 433df4d8b0SPeter Avalos runtest "a$c" 443df4d8b0SPeter Avalos i=$((i+1)) 453df4d8b0SPeter Avalosdone 463df4d8b0SPeter AvalosIFS=, 473df4d8b0SPeter Avalosruntest ' ' 483df4d8b0SPeter Avalosruntest ',' 493df4d8b0SPeter Avalosunset IFS 503df4d8b0SPeter Avalosruntest ' ' 513df4d8b0SPeter Avalos 523df4d8b0SPeter Avalosexit 0 53