]> git.saurik.com Git - bison.git/blame_incremental - examples/test
bison: avoid warnings from static code analysis
[bison.git] / examples / test
... / ...
CommitLineData
1#! /bin/sh
2
3# Copyright (C) 2005-2015 Free Software Foundation, Inc.
4#
5# This program is free software: you can redistribute it and/or modify
6# it under the terms of the GNU General Public License as published by
7# the Free Software Foundation, either version 3 of the License, or
8# (at your option) any later version.
9#
10# This program is distributed in the hope that it will be useful,
11# but WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13# GNU General Public License for more details.
14#
15# You should have received a copy of the GNU General Public License
16# along with this program. If not, see <http://www.gnu.org/licenses/>.
17
18me=`basename $1 .test`
19
20# Number of the current test.
21number=1
22
23# Exit status of this script.
24exit=true
25
26# top_buiddir.
27cwd=`pwd`
28
29# The exercised program.
30prog=$cwd/examples/$me/$me
31
32# cleanup
33# -------
34cleanup ()
35{
36 local status=$?
37 if test -z "$DEBUG"; then
38 cd $cwd
39 rm -rf $$.dir
40 fi
41 exit $status
42}
43trap cleanup 0 1 2 13 15
44mkdir $$.dir
45cd $$.dir
46
47# run EXPECTED-EXIT-STATUS EXPECTED-OUTPUT [PARSER-OPTIONS]
48# ---------------------------------------------------------
49run ()
50{
51 # Expected exit status.
52 local sta_exp=$1
53 shift
54 # Expected output.
55 local out_exp=$1
56 shift
57 # Effective exit status.
58 local sta_eff=0
59 $prog "$@" - <input >out_eff || sta_eff=$?
60 # Effective output.
61 local out_eff=`cat out_eff`
62 if test $sta_eff -eq $sta_exp; then
63 if test "$out_eff" = "$out_exp"; then
64 echo "$me: PASS: $number"
65 else
66 echo "$me: FAIL: $number (expected output: $out_exp, effective: $out_eff)"
67 exit=false
68 fi
69 else
70 echo "$me: FAIL: $number (expected status: $sta_exp, effective: $sta_eff)"
71 exit=false
72 fi
73 number=`expr $number + 1`
74}
75
76# We have cd'd one level deeper.
77case $1 in
78 /*) . "$1";;
79 *) . "../$1";;
80esac
81
82$exit