mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 12:23:04 +00:00
tests: check the "%define variant" is deprecated.
* tests/input.at: Rename some AT_SETUP to avoid that
AT_SETUP_STRIP thinks they contain %define directives.
("%define" backward compatibility): Merge tests together
to speed up the test suite, and to make maintenance easier
(multiple AT_CHECK means multiple runs of the test suite to
be sure to have updated all the error messages).
Check the "%define variant" is properly obsoleted.
This commit is contained in:
@@ -1270,7 +1270,7 @@ AT_CLEANUP
|
||||
## %define Boolean variables. ##
|
||||
## --------------------------- ##
|
||||
|
||||
AT_SETUP([[%define Boolean variables]])
|
||||
AT_SETUP([["%define" Boolean variables]])
|
||||
|
||||
AT_DATA([Input.y],
|
||||
[[%language "Java"
|
||||
@@ -1290,7 +1290,11 @@ AT_CLEANUP
|
||||
## %define enum variables. ##
|
||||
## ------------------------ ##
|
||||
|
||||
AT_SETUP([[%define enum variables]])
|
||||
AT_SETUP([["%define" enum variables]])
|
||||
|
||||
# Check errors from the front-end, and the back-end. Since the
|
||||
# front-end quits before calling the back-end, these tests cannot be
|
||||
# fused.
|
||||
|
||||
# Front-end.
|
||||
AT_DATA([[input.y]],
|
||||
@@ -1298,22 +1302,25 @@ AT_DATA([[input.y]],
|
||||
%%
|
||||
start: ;
|
||||
]])
|
||||
AT_BISON_CHECK([[input.y]], [[1]], [[]],
|
||||
AT_BISON_CHECK([[-fcaret input.y]], [[1]], [[]],
|
||||
[[input.y:1.9-28: error: invalid value for %define variable 'lr.default-reduction': 'bogus'
|
||||
%define lr.default-reduction bogus
|
||||
^^^^^^^^^^^^^^^^^^^^
|
||||
input.y:1.9-28: accepted value: 'most'
|
||||
input.y:1.9-28: accepted value: 'consistent'
|
||||
input.y:1.9-28: accepted value: 'accepting'
|
||||
]])
|
||||
|
||||
# Back-end.
|
||||
# FIXME: these should be indented, but we shouldn't mess with the m4 yet
|
||||
AT_DATA([[input.y]],
|
||||
[[%define api.push-pull neither
|
||||
%%
|
||||
start: ;
|
||||
]])
|
||||
AT_BISON_CHECK([[input.y]], [1], [],
|
||||
AT_BISON_CHECK([[-fcaret input.y]], [[1]], [[]],
|
||||
[[input.y:1.9-21: error: invalid value for %define variable 'api.push-pull': 'neither'
|
||||
%define api.push-pull neither
|
||||
^^^^^^^^^^^^^
|
||||
input.y:1.9-21: accepted value: 'pull'
|
||||
input.y:1.9-21: accepted value: 'push'
|
||||
input.y:1.9-21: accepted value: 'both'
|
||||
@@ -1325,65 +1332,37 @@ AT_CLEANUP
|
||||
## %define backward compatibility. ##
|
||||
## -------------------------------- ##
|
||||
|
||||
AT_SETUP([[%define backward compatibility]])
|
||||
|
||||
# The error messages tell us whether underscores in these variables are
|
||||
# being converted to dashes.
|
||||
AT_SETUP([["%define" backward compatibility]])
|
||||
|
||||
# The error messages tell us whether the variables are properly updated.
|
||||
AT_DATA([[input.y]],
|
||||
[[%define api.push_pull "neither"
|
||||
%%
|
||||
start: ;
|
||||
]])
|
||||
AT_BISON_CHECK([[input.y]], [1], [],
|
||||
[[input.y:1.9-21: warning: deprecated directive: '%define api.push_pull neither', use '%define api.push-pull neither' [-Wdeprecated]
|
||||
input.y:1.9-21: error: invalid value for %define variable 'api.push-pull': 'neither'
|
||||
input.y:1.9-21: accepted value: 'pull'
|
||||
input.y:1.9-21: accepted value: 'push'
|
||||
input.y:1.9-21: accepted value: 'both'
|
||||
]])
|
||||
|
||||
AT_BISON_CHECK([[-fcaret input.y]], [1], [],
|
||||
[[input.y:1.9-21: warning: deprecated directive, use '%define api.push-pull neither' [-Wdeprecated]
|
||||
%define api.push_pull "neither"
|
||||
^^^^^^^^^^^^^
|
||||
input.y:1.9-21: error: invalid value for %define variable 'api.push-pull': 'neither'
|
||||
%define api.push_pull "neither"
|
||||
^^^^^^^^^^^^^
|
||||
input.y:1.9-21: accepted value: 'pull'
|
||||
input.y:1.9-21: accepted value: 'push'
|
||||
input.y:1.9-21: accepted value: 'both'
|
||||
]])
|
||||
|
||||
AT_DATA([[input.y]],
|
||||
[[%define lr.keep_unreachable_states maybe
|
||||
%%
|
||||
start: ;
|
||||
]])
|
||||
AT_BISON_CHECK([[input.y]], [1], [],
|
||||
[[input.y:1.9-34: warning: deprecated directive: '%define lr.keep_unreachable_states maybe', use '%define lr.keep-unreachable-state maybe' [-Wdeprecated]
|
||||
input.y:1.9-34: error: invalid value for %define Boolean variable 'lr.keep-unreachable-state'
|
||||
]])
|
||||
|
||||
AT_DATA([[input.y]],
|
||||
[[%define namespace "foo"
|
||||
[[%define api.push_pull both
|
||||
%define lr.keep_unreachable_states maybe
|
||||
%define namespace "foo"
|
||||
%define api.namespace "foo"
|
||||
%define variant
|
||||
%%
|
||||
start: ;
|
||||
]])
|
||||
AT_BISON_CHECK([[input.y]], [1], [],
|
||||
[[input.y:1.9-17: warning: deprecated directive: '%define namespace foo', use '%define api.namespace foo' [-Wdeprecated]
|
||||
input.y:2.9-21: error: %define variable 'api.namespace' redefined
|
||||
input.y:1.9-17: previous definition
|
||||
]])
|
||||
|
||||
AT_DATA([[input.y]],
|
||||
[[%define foo_bar "baz"
|
||||
%%
|
||||
start: ;
|
||||
]])
|
||||
AT_BISON_CHECK([[input.y]], [[1]], [],
|
||||
[[input.y:1.9-15: error: %define variable 'foo_bar' is not used
|
||||
AT_BISON_CHECK([[-fcaret input.y]], [1], [],
|
||||
[[input.y:1.9-21: warning: deprecated directive, use '%define api.push-pull both' [-Wdeprecated]
|
||||
%define api.push_pull both
|
||||
^^^^^^^^^^^^^
|
||||
input.y:2.9-34: warning: deprecated directive, use '%define lr.keep-unreachable-state maybe' [-Wdeprecated]
|
||||
%define lr.keep_unreachable_states maybe
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
input.y:3.9-17: warning: deprecated directive, use '%define api.namespace foo' [-Wdeprecated]
|
||||
%define namespace "foo"
|
||||
^^^^^^^^^
|
||||
input.y:4.9-21: error: %define variable 'api.namespace' redefined
|
||||
%define api.namespace "foo"
|
||||
^^^^^^^^^^^^^
|
||||
input.y:3.9-17: previous definition
|
||||
%define namespace "foo"
|
||||
^^^^^^^^^
|
||||
input.y:5.9-15: warning: deprecated directive, use '%define api.value.type variant' [-Wdeprecated]
|
||||
%define variant
|
||||
^^^^^^^
|
||||
]])
|
||||
|
||||
AT_CLEANUP
|
||||
@@ -1639,7 +1618,7 @@ AT_CLEANUP
|
||||
## %name-prefix and %define api.prefix are incompatible. ##
|
||||
## ------------------------------------------------------ ##
|
||||
|
||||
AT_SETUP([[%name-prefix and %define api.prefix are incompatible]])
|
||||
AT_SETUP([[%name-prefix and api.prefix are incompatible]])
|
||||
|
||||
# AT_TEST(DIRECTIVES, OPTIONS, ERROR-LOCATION)
|
||||
# --------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user