mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 04:13:03 +00:00
examples: check the errors
* examples/test (run): Check stderr, unless -noerr is passed. * examples/calc++/calc++.test, examples/mfcalc/mfcalc.test: Check errors.
This commit is contained in:
@@ -19,7 +19,8 @@ cat >input <<EOF
|
||||
toto := 1
|
||||
toto
|
||||
EOF
|
||||
run 0 1 -s
|
||||
run 0 1
|
||||
run -noerr 0 1 -s
|
||||
|
||||
|
||||
cat >input <<EOF
|
||||
@@ -30,7 +31,7 @@ d := a + b * c
|
||||
d
|
||||
EOF
|
||||
run 0 7
|
||||
run 0 7 -p
|
||||
run -noerr 0 7 -p
|
||||
|
||||
|
||||
cat >input <<EOF
|
||||
@@ -47,4 +48,11 @@ cat >input <<EOF
|
||||
a := 1
|
||||
d := a + b * c
|
||||
EOF
|
||||
run 1 ''
|
||||
run 1 'err: -:3.1: syntax error, unexpected end of file, expecting ( or identifier or number'
|
||||
|
||||
|
||||
cat >input <<EOF
|
||||
a := 072101108108111044032119111114108100033
|
||||
a
|
||||
EOF
|
||||
run 1 'err: -:1.6-44: integer is out of range: 072101108108111044032119111114108100033'
|
||||
|
||||
@@ -24,4 +24,4 @@ cat >input <<EOF
|
||||
(1+2) * 3
|
||||
EOF
|
||||
run 0 9
|
||||
run 0 9 -p
|
||||
run -noerr 0 9 -p
|
||||
|
||||
@@ -25,7 +25,7 @@ number=1
|
||||
exit=true
|
||||
|
||||
# top_builddir.
|
||||
cwd=`pwd`
|
||||
cwd=$(pwd)
|
||||
|
||||
# The exercised program.
|
||||
for p in "$cwd/examples/$medir/$me" "$cwd/examples/$me"
|
||||
@@ -56,10 +56,16 @@ trap cleanup 0 1 2 13 15
|
||||
mkdir $$.dir
|
||||
cd $$.dir
|
||||
|
||||
# run EXPECTED-EXIT-STATUS EXPECTED-OUTPUT [PARSER-OPTIONS]
|
||||
# ---------------------------------------------------------
|
||||
# run [-noerr] EXPECTED-EXIT-STATUS EXPECTED-OUTPUT [PARSER-OPTIONS]
|
||||
# ------------------------------------------------------------------
|
||||
# -noerr: ignore stderr, otherwise merge it into effective output.
|
||||
run ()
|
||||
{
|
||||
local noerr=false
|
||||
case $1 in
|
||||
(-noerr) noerr=true; shift;;
|
||||
esac
|
||||
|
||||
# Expected exit status.
|
||||
local sta_exp="$1"
|
||||
shift
|
||||
@@ -68,9 +74,9 @@ run ()
|
||||
shift
|
||||
# Effective exit status.
|
||||
local sta_eff=0
|
||||
$prog "$@" - <input >out_eff || sta_eff=$?
|
||||
# Effective output.
|
||||
local out_eff="`cat out_eff`"
|
||||
$prog "$@" - <input >out_eff 2>err_eff || sta_eff=$?
|
||||
# Combine effective output and error streams.
|
||||
local out_eff="$(cat out_eff && $noerr || sed -e 's/^/err: /g' err_eff)"
|
||||
if test $sta_eff -eq $sta_exp; then
|
||||
if test "$out_eff" = "$out_exp"; then
|
||||
echo "$me: PASS: $number"
|
||||
@@ -82,7 +88,7 @@ run ()
|
||||
echo "$me: FAIL: $number (expected status: $sta_exp, effective: $sta_eff)"
|
||||
exit=false
|
||||
fi
|
||||
number=`expr $number + 1`
|
||||
number=$(expr $number + 1)
|
||||
}
|
||||
|
||||
# We have cd'd one level deeper.
|
||||
|
||||
Reference in New Issue
Block a user