mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-19 09:13:04 +00:00
tests: refactor checks on sets
It will be convenient to check sets elsewhere. * tests/sets.at (AT_EXTRACT_SETS): Transform into... * tests/local.at (AT_SETS_CHECK): this. * tests/sets.at: Adjust.
This commit is contained in:
@@ -1353,6 +1353,29 @@ m4_popdef([AT_COND_CASE])])
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# AT_SETS_CHECK(INPUT, SETS, EXPECTED)
|
||||||
|
# ------------------------------------
|
||||||
|
# Extract the information about the grammar sets from a bison
|
||||||
|
# trace output (INPUT), and compare to EXPECTED.
|
||||||
|
#
|
||||||
|
# And remember, there is no alternation in portable sed.
|
||||||
|
m4_define([AT_SETS_CHECK],
|
||||||
|
[AT_DATA([extract.sed],
|
||||||
|
[[#n
|
||||||
|
]m4_foreach([m4_Set], [$2], [[
|
||||||
|
/^]m4_Set[/ {
|
||||||
|
:]m4_Set[
|
||||||
|
p
|
||||||
|
n
|
||||||
|
/^ *$/ !b ]m4_Set[
|
||||||
|
}
|
||||||
|
]])])
|
||||||
|
|
||||||
|
AT_CHECK([sed -f extract.sed $1], 0, [$3])
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## ----------------------- ##
|
## ----------------------- ##
|
||||||
## Launch the test suite. ##
|
## Launch the test suite. ##
|
||||||
|
|||||||
@@ -17,45 +17,6 @@
|
|||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
|
||||||
# AT_EXTRACT_SETS(INPUT, OUTPUT)
|
|
||||||
# ------------------------------
|
|
||||||
# Extract the information about the grammar sets from a bison
|
|
||||||
# trace output (INPUT), and save it in OUTPUT.
|
|
||||||
# And remember, there is no alternation in portable sed.
|
|
||||||
m4_define([AT_EXTRACT_SETS],
|
|
||||||
[AT_DATA([extract.sed],
|
|
||||||
[[#n
|
|
||||||
/^NULLABLE$/ {
|
|
||||||
:null
|
|
||||||
p
|
|
||||||
n
|
|
||||||
/^ *$/ !b null
|
|
||||||
}
|
|
||||||
/^FIRSTS$/ {
|
|
||||||
:firsts
|
|
||||||
p
|
|
||||||
n
|
|
||||||
/^ *$/ !b firsts
|
|
||||||
}
|
|
||||||
/^FDERIVES$/ {
|
|
||||||
:fderiv
|
|
||||||
p
|
|
||||||
n
|
|
||||||
/^ *$/ !b fderiv
|
|
||||||
}
|
|
||||||
/^DERIVES$/ {
|
|
||||||
:deriv
|
|
||||||
p
|
|
||||||
n
|
|
||||||
/^ *$/ !b deriv
|
|
||||||
}
|
|
||||||
]])
|
|
||||||
AT_CHECK([sed -f extract.sed $1], 0, [stdout])
|
|
||||||
AT_CHECK([mv stdout $2])
|
|
||||||
])
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
AT_BANNER([[Grammar Sets (Firsts etc.).]])
|
AT_BANNER([[Grammar Sets (Firsts etc.).]])
|
||||||
|
|
||||||
|
|
||||||
@@ -79,8 +40,7 @@ e: 'e' | /* Nothing */;
|
|||||||
]])
|
]])
|
||||||
|
|
||||||
AT_BISON_CHECK([[--trace=sets input.y]], [], [], [stderr])
|
AT_BISON_CHECK([[--trace=sets input.y]], [], [], [stderr])
|
||||||
AT_EXTRACT_SETS([stderr], [sets])
|
AT_SETS_CHECK([stderr], [[DERIVES], [NULLABLE], [FIRSTS], [FDERIVES]],
|
||||||
AT_CHECK([[cat sets]], [],
|
|
||||||
[[DERIVES
|
[[DERIVES
|
||||||
$accept derives
|
$accept derives
|
||||||
0 e $end
|
0 e $end
|
||||||
@@ -209,8 +169,7 @@ exp:
|
|||||||
]])
|
]])
|
||||||
|
|
||||||
AT_BISON_CHECK([[--trace=sets input.y]], [], [], [stderr])
|
AT_BISON_CHECK([[--trace=sets input.y]], [], [], [stderr])
|
||||||
AT_EXTRACT_SETS([stderr], [sets])
|
AT_SETS_CHECK([stderr], [[DERIVES], [NULLABLE], [FIRSTS], [FDERIVES]],
|
||||||
AT_CHECK([[cat sets]], [],
|
|
||||||
[[DERIVES
|
[[DERIVES
|
||||||
$accept derives
|
$accept derives
|
||||||
0 exp $end
|
0 exp $end
|
||||||
|
|||||||
Reference in New Issue
Block a user