tests: factor iterating over skeletons

* tests/local.at (AT_FOR_EACH_SKEL): New.
Use where appropriate.
* data/skeletons/lalr1.d: Reject -d.
* tests/input.at, tests/scanner.at: Also check D.
This commit is contained in:
Akim Demaille
2021-08-07 12:14:35 +02:00
parent 80db1029e6
commit 6d86d26b33
4 changed files with 15 additions and 5 deletions

View File

@@ -17,6 +17,8 @@
m4_include(b4_skeletonsdir/[d.m4]) m4_include(b4_skeletonsdir/[d.m4])
b4_header_if([b4_complain([%header/%defines does not make sense in D])])
# parse.lac # parse.lac
b4_percent_define_default([[parse.lac]], [[none]]) b4_percent_define_default([[parse.lac]], [[none]])
b4_percent_define_check_values([[[[parse.lac]], [[full]], [[none]]]]) b4_percent_define_check_values([[[[parse.lac]], [[full]], [[none]]]])

View File

@@ -2682,7 +2682,7 @@ start: %empty;
# Only "full" and "none" are accepted for parse.lac # Only "full" and "none" are accepted for parse.lac
# Unknown values (such as "unsupported") are rejected # Unknown values (such as "unsupported") are rejected
m4_foreach([b4_skel], [[yacc.c], [lalr1.cc], [lalr1.java]], m4_foreach([b4_skel], [[yacc.c], [lalr1.cc], [lalr1.d], [lalr1.java]],
[AT_BISON_CHECK([[-S]b4_skel[ -Dparse.lac=none input.y]]) [AT_BISON_CHECK([[-S]b4_skel[ -Dparse.lac=none input.y]])
AT_BISON_CHECK([[-S]b4_skel[ -Dparse.lac=full input.y]]) AT_BISON_CHECK([[-S]b4_skel[ -Dparse.lac=full input.y]])
AT_BISON_CHECK([[-S]b4_skel[ -Dparse.lac=unsupported input.y]], AT_BISON_CHECK([[-S]b4_skel[ -Dparse.lac=unsupported input.y]],
@@ -2926,9 +2926,8 @@ exp:
# Disable -Wother to avoid the warnings about the suspicious presence # Disable -Wother to avoid the warnings about the suspicious presence
# of `b4_canary` in the output. # of `b4_canary` in the output.
m4_foreach([b4_skel], AT_FOR_EACH_SKEL(
[[yacc.c], [glr.c], [lalr1.cc], [glr.cc], [glr2.cc], [lalr1.d], [lalr1.java]], [AT_BISON_CHECK([[-Wno-other -S ]b4_skel[ ]m4_bmatch(b4_skel, [.*\.\(d\|java\)$], [], [-d])[ input.y]])
[AT_BISON_CHECK([[-Wno-other -S ]b4_skel[ ]m4_bmatch(b4_skel, [.*\.java$], [], [-d])[ input.y]])
]) ])
]) ])

View File

@@ -157,6 +157,15 @@ m4_define([AT_SAVE_SPECIAL_FILES], [at_save_special_files])
m4_define([AT_RESTORE_SPECIAL_FILES], [at_restore_special_files]) m4_define([AT_RESTORE_SPECIAL_FILES], [at_restore_special_files])
# AT_FOR_EACH_SKEL(BODY)
# ----------------------
m4_define([AT_FOR_EACH_SKEL],
[m4_foreach([b4_skel],
[[yacc.c], [glr.c], [lalr1.cc], [glr.cc], [glr2.cc], [lalr1.d], [lalr1.java]],
[$1])
])
## ------------------------------- ## ## ------------------------------- ##
## Macros decoding Bison options. ## ## Macros decoding Bison options. ##

View File

@@ -323,7 +323,7 @@ AT_BISON_OPTION_POPDEFS
AT_CLEANUP AT_CLEANUP
]) ])
m4_foreach([b4_skel], [[yacc.c], [glr.c], [lalr1.cc], [glr.cc], [glr2.cc], [lalr1.java], [lalr1.d]], AT_FOR_EACH_SKEL(
[AT_TEST([%skeleton "]b4_skel["]) [AT_TEST([%skeleton "]b4_skel["])
AT_TEST([%skeleton "]b4_skel[" %define api.token.raw])]) AT_TEST([%skeleton "]b4_skel[" %define api.token.raw])])