mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-23 11:18:54 +00:00
Add tests for r194406 and r194516.
Approved by: ed (mentor)
This commit is contained in:
parent
e68165a6bb
commit
57c21ee73a
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=194517
52
tools/regression/bin/sh/builtins/trap2.0
Normal file
52
tools/regression/bin/sh/builtins/trap2.0
Normal file
@ -0,0 +1,52 @@
|
||||
# $FreeBSD$
|
||||
# This is really a test for outqstr(), which is readily accessible via trap.
|
||||
|
||||
runtest()
|
||||
{
|
||||
teststring=$1
|
||||
trap -- "$teststring" USR1
|
||||
traps=$(trap)
|
||||
if [ "$teststring" != "-" ] && [ -z "$traps" ]; then
|
||||
# One possible reading of POSIX requires the above to return an
|
||||
# empty string because backquote commands are executed in a
|
||||
# subshell and subshells shall reset traps. However, an example
|
||||
# in the normative description of the trap builtin shows the
|
||||
# same usage as here, it is useful and our /bin/sh allows it.
|
||||
echo '$(trap) is broken'
|
||||
exit 1
|
||||
fi
|
||||
trap - USR1
|
||||
eval "$traps"
|
||||
traps2=$(trap)
|
||||
if [ "$traps" != "$traps2" ]; then
|
||||
echo "Mismatch for '$teststring'"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
runtest 'echo'
|
||||
runtest 'echo hi'
|
||||
runtest "'echo' 'hi'"
|
||||
runtest '"echo" $PATH'
|
||||
runtest '\echo "$PATH"'
|
||||
runtest ' 0'
|
||||
runtest '0 '
|
||||
runtest ' 1'
|
||||
runtest '1 '
|
||||
i=1
|
||||
while [ $i -le 127 ]; do
|
||||
c=$(printf \\"$(printf %o $i)")
|
||||
if [ $i -lt 48 ] || [ $i -gt 57 ]; then
|
||||
runtest "$c"
|
||||
fi
|
||||
runtest " $c$c"
|
||||
runtest "a$c"
|
||||
i=$((i+1))
|
||||
done
|
||||
IFS=,
|
||||
runtest ' '
|
||||
runtest ','
|
||||
unset IFS
|
||||
runtest ' '
|
||||
|
||||
exit 0
|
4
tools/regression/bin/sh/errors/backquote-error1.0
Normal file
4
tools/regression/bin/sh/errors/backquote-error1.0
Normal file
@ -0,0 +1,4 @@
|
||||
# $FreeBSD$
|
||||
|
||||
echo 'echo `for` echo ".BAD"CODE.' | sh -i 2>&1 | grep -q BADCODE && exit 1
|
||||
exit 0
|
Loading…
Reference in New Issue
Block a user