]> git.saurik.com Git - bison.git/blob - tests/suite.at
* src/lex.c (percent_table): Typo: s/naem/name/.
[bison.git] / tests / suite.at
1 #! /bin/sh
2 # -*- Autoconf -*-
3 # Validation suite for Bison.
4 # Copyright 2000 Free Software Foundation, Inc.
5
6 AT_INIT([bison])
7
8 ## ---------------------------- ##
9 ## Checking output file names. ##
10 ## ---------------------------- ##
11
12 # AT_CHECK_BISON_FLAGS(FLAGS, EXPECTED-FILES-SORTED)
13 # --------------------------------------------------
14 AT_DEFINE([AT_CHECK_BISON_FLAGS],
15 [AT_SETUP([Output files: $1.])
16 AT_DATA([foo.y],
17 [[%%
18 foo: {}
19 ]])
20 rm -rf $2
21 AT_CHECK([bison -dv foo.y $1], 0, ignore, ignore)
22 AT_CHECK([ls $2 | sort | tr '\n' ' ' | sed 's/.$//g'], 0, [$2])
23 rm -f $2
24 AT_CLEANUP
25 ])
26
27 AT_CHECK_BISON_FLAGS([], [foo.output foo.tab.c foo.tab.h])
28 AT_CHECK_BISON_FLAGS([-o foo.c], [foo.c foo.h foo.output])
29 AT_CHECK_BISON_FLAGS([-o foo.tab.c], [foo.output foo.tab.c foo.tab.h])
30 AT_CHECK_BISON_FLAGS([-y], [y.output y.tab.c y.tab.h])
31 AT_CHECK_BISON_FLAGS([-b bar], [bar.output bar.tab.c bar.tab.h])
32 AT_CHECK_BISON_FLAGS([-g -o foo.c], [foo.c foo.h foo.output foo.vcg])
33
34 # AT_CHECK_BISON_PERCENT(GRAMMAR-OPTIONS, EXPECTED-FILES-SORTED)
35 # --------------------------------------------------------------
36 AT_DEFINE([AT_CHECK_BISON_PERCENT],
37 [AT_SETUP([Output files: $1.])
38 AT_DATA([foo.y],
39 [[$1
40 %defines
41 %verbose
42 %%
43 foo: {}
44 ]])
45 rm -rf $2
46 AT_CHECK([bison foo.y], 0, ignore, ignore)
47 AT_CHECK([ls $2 | sort | tr '\n' ' ' | sed 's/.$//g'], 0, [$2])
48 rm -f $2
49 AT_CLEANUP
50 ])
51
52 # The sames, but using the % directives.
53 AT_CHECK_BISON_PERCENT([], [foo.output foo.tab.c foo.tab.h])
54 # AT_CHECK_BISON_PERCENT([%output foo.c], [foo.c foo.h foo.output])
55 # AT_CHECK_BISON_PERCENT([%output foo.tab.c], [foo.output foo.tab.c foo.tab.h])
56 AT_CHECK_BISON_PERCENT([%yacc], [y.output y.tab.c y.tab.h])
57 # AT_CHECK_BISON_PERCENT([%file_prefix bar], [bar.output bar.tab.c bar.tab.h])
58
59 # AT_CHECK_BISON_PERCENT_FLAGS(GRAMMAR_OPTIONS, FLAGS, EXPECTED-FILES-SORTED)
60 # ---------------------------------------------------------------------------
61 AT_DEFINE([AT_CHECK_BISON_PERCENT_FLAGS],
62 [AT_SETUP([Output files: $1.])
63 AT_DATA([foo.yy],
64 [[$1
65 %defines
66 %verbose
67 %%
68 foo: {}
69 ]])
70 rm -rf $3
71 AT_CHECK([bison foo.yy $2], 0, ignore, ignore)
72 AT_CHECK([ls $3 | sort | tr '\n' ' ' | sed 's/.$//g'], 0, [$3])
73 rm -f $3
74 AT_CLEANUP
75 ])
76
77 # Check priorities of extension control.
78 AT_CHECK_BISON_PERCENT_FLAGS(
79 [],
80 [],
81 [foo.output foo.tab.cc foo.tab.hh])
82 AT_CHECK_BISON_PERCENT_FLAGS(
83 [],
84 [-o foo.c],
85 [foo.c foo.h foo.output])
86 AT_CHECK_BISON_PERCENT_FLAGS(
87 [%source_extension ".cpp"] [%header_extension ".hhh"],
88 [],
89 [foo.output foo.tab.cpp foo.tab.hhh])
90 AT_CHECK_BISON_PERCENT_FLAGS(
91 [%source_extension ".cc"] [%header_extension ".hh"],
92 [-o foo.c],
93 [foo.c foo.h foo.output])
94
95 AT_INCLUDE([calc.at])
96 AT_INCLUDE([regression.at])