]> git.saurik.com Git - bison.git/blame - examples/test
tests: be robust to platforms that support UTF-8 even with LC_ALL=C
[bison.git] / examples / test
CommitLineData
c1192f8a 1#! /bin/sh
24ec0837 2
3209eb1c 3# Copyright (C) 2005-2015 Free Software Foundation, Inc.
c1192f8a
AD
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
5a9c6b89 18me=`basename $1 .test`
c1192f8a
AD
19
20# Number of the current test.
21number=1
22
23# Exit status of this script.
24exit=true
25
5a9c6b89
AD
26# top_buiddir.
27cwd=`pwd`
28
c1192f8a 29# The exercised program.
5a9c6b89 30prog=$cwd/examples/$me/$me
c3a2e0e6
AD
31
32# cleanup
33# -------
34cleanup ()
35{
36 local status=$?
37 if test -z "$DEBUG"; then
5a9c6b89 38 cd $cwd
c3a2e0e6
AD
39 rm -rf $$.dir
40 fi
41 exit $status
42}
43trap cleanup 0 1 2 13 15
44mkdir $$.dir
45cd $$.dir
c1192f8a
AD
46
47# run EXPECTED-EXIT-STATUS EXPECTED-OUTPUT [PARSER-OPTIONS]
48# ---------------------------------------------------------
49run ()
50{
c3a2e0e6 51 # Expected exit status.
c1192f8a
AD
52 local sta_exp=$1
53 shift
c3a2e0e6 54 # Expected output.
c1192f8a
AD
55 local out_exp=$1
56 shift
c3a2e0e6 57 # Effective exit status.
a89a5b14
AD
58 local sta_eff=0
59 $prog "$@" - <input >out_eff || sta_eff=$?
c3a2e0e6 60 # Effective output.
c1192f8a
AD
61 local out_eff=`cat out_eff`
62 if test $sta_eff -eq $sta_exp; then
63 if test "$out_eff" = "$out_exp"; then
c3a2e0e6 64 echo "$me: PASS: $number"
c1192f8a 65 else
c3a2e0e6 66 echo "$me: FAIL: $number (expected output: $out_exp, effective: $out_eff)"
c1192f8a
AD
67 exit=false
68 fi
69 else
c3a2e0e6 70 echo "$me: FAIL: $number (expected status: $sta_exp, effective: $sta_eff)"
c1192f8a
AD
71 exit=false
72 fi
73 number=`expr $number + 1`
74}
75
5a9c6b89 76# We have cd'd one level deeper.
b611359d
AD
77case $1 in
78 /*) . "$1";;
79 *) . "../$1";;
80esac
c1192f8a 81
c1192f8a 82$exit