mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-21 10:13:03 +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. ##
|
## %define Boolean variables. ##
|
||||||
## --------------------------- ##
|
## --------------------------- ##
|
||||||
|
|
||||||
AT_SETUP([[%define Boolean variables]])
|
AT_SETUP([["%define" Boolean variables]])
|
||||||
|
|
||||||
AT_DATA([Input.y],
|
AT_DATA([Input.y],
|
||||||
[[%language "Java"
|
[[%language "Java"
|
||||||
@@ -1290,7 +1290,11 @@ AT_CLEANUP
|
|||||||
## %define enum variables. ##
|
## %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.
|
# Front-end.
|
||||||
AT_DATA([[input.y]],
|
AT_DATA([[input.y]],
|
||||||
@@ -1298,22 +1302,25 @@ AT_DATA([[input.y]],
|
|||||||
%%
|
%%
|
||||||
start: ;
|
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'
|
[[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: 'most'
|
||||||
input.y:1.9-28: accepted value: 'consistent'
|
input.y:1.9-28: accepted value: 'consistent'
|
||||||
input.y:1.9-28: accepted value: 'accepting'
|
input.y:1.9-28: accepted value: 'accepting'
|
||||||
]])
|
]])
|
||||||
|
|
||||||
# Back-end.
|
# Back-end.
|
||||||
# FIXME: these should be indented, but we shouldn't mess with the m4 yet
|
|
||||||
AT_DATA([[input.y]],
|
AT_DATA([[input.y]],
|
||||||
[[%define api.push-pull neither
|
[[%define api.push-pull neither
|
||||||
%%
|
%%
|
||||||
start: ;
|
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'
|
[[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: 'pull'
|
||||||
input.y:1.9-21: accepted value: 'push'
|
input.y:1.9-21: accepted value: 'push'
|
||||||
input.y:1.9-21: accepted value: 'both'
|
input.y:1.9-21: accepted value: 'both'
|
||||||
@@ -1325,65 +1332,37 @@ AT_CLEANUP
|
|||||||
## %define backward compatibility. ##
|
## %define backward compatibility. ##
|
||||||
## -------------------------------- ##
|
## -------------------------------- ##
|
||||||
|
|
||||||
AT_SETUP([[%define backward compatibility]])
|
AT_SETUP([["%define" backward compatibility]])
|
||||||
|
|
||||||
# The error messages tell us whether underscores in these variables are
|
|
||||||
# being converted to dashes.
|
|
||||||
|
|
||||||
|
# The error messages tell us whether the variables are properly updated.
|
||||||
AT_DATA([[input.y]],
|
AT_DATA([[input.y]],
|
||||||
[[%define api.push_pull "neither"
|
[[%define api.push_pull both
|
||||||
%%
|
%define lr.keep_unreachable_states maybe
|
||||||
start: ;
|
%define namespace "foo"
|
||||||
]])
|
|
||||||
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.namespace "foo"
|
%define api.namespace "foo"
|
||||||
|
%define variant
|
||||||
%%
|
%%
|
||||||
start: ;
|
start: ;
|
||||||
]])
|
]])
|
||||||
AT_BISON_CHECK([[input.y]], [1], [],
|
AT_BISON_CHECK([[-fcaret input.y]], [1], [],
|
||||||
[[input.y:1.9-17: warning: deprecated directive: '%define namespace foo', use '%define api.namespace foo' [-Wdeprecated]
|
[[input.y:1.9-21: warning: deprecated directive, use '%define api.push-pull both' [-Wdeprecated]
|
||||||
input.y:2.9-21: error: %define variable 'api.namespace' redefined
|
%define api.push_pull both
|
||||||
input.y:1.9-17: previous definition
|
^^^^^^^^^^^^^
|
||||||
]])
|
input.y:2.9-34: warning: deprecated directive, use '%define lr.keep-unreachable-state maybe' [-Wdeprecated]
|
||||||
|
%define lr.keep_unreachable_states maybe
|
||||||
AT_DATA([[input.y]],
|
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
[[%define foo_bar "baz"
|
input.y:3.9-17: warning: deprecated directive, use '%define api.namespace foo' [-Wdeprecated]
|
||||||
%%
|
%define namespace "foo"
|
||||||
start: ;
|
^^^^^^^^^
|
||||||
]])
|
input.y:4.9-21: error: %define variable 'api.namespace' redefined
|
||||||
AT_BISON_CHECK([[input.y]], [[1]], [],
|
%define api.namespace "foo"
|
||||||
[[input.y:1.9-15: error: %define variable 'foo_bar' is not used
|
^^^^^^^^^^^^^
|
||||||
|
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
|
AT_CLEANUP
|
||||||
@@ -1639,7 +1618,7 @@ AT_CLEANUP
|
|||||||
## %name-prefix and %define api.prefix are incompatible. ##
|
## %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)
|
# AT_TEST(DIRECTIVES, OPTIONS, ERROR-LOCATION)
|
||||||
# --------------------------------------------
|
# --------------------------------------------
|
||||||
|
|||||||
Reference in New Issue
Block a user