]> git.saurik.com Git - bison.git/commitdiff
tests: check the "%define variant" is deprecated.
authorAkim Demaille <akim@lrde.epita.fr>
Sun, 23 Dec 2012 09:52:23 +0000 (10:52 +0100)
committerAkim Demaille <akim@lrde.epita.fr>
Wed, 26 Dec 2012 09:31:42 +0000 (10:31 +0100)
* 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.

tests/input.at

index 50af0a863f9e4da149bce73f13b4cd22a52d5b63..f60eaec7237daa4fcfa2010073c9595ffe54a829 100644 (file)
@@ -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],
 [[%language "Java"
 
 AT_DATA([Input.y],
 [[%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.
 AT_DATA([[input.y]],
 
 # Front-end.
 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: 'consistent'
 input.y:1.9-28:     accepted value: 'accepting'
 ]])
 
 # Back-end.
 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_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'
 [[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'
 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.  ##
 ## -------------------------------- ##
 
 ## %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]],
 AT_DATA([[input.y]],
-[[%define api.push_pull "neither"
+[[%define api.push_pull both
+%define lr.keep_unreachable_states maybe
+%define namespace "foo"
+%define api.namespace "foo"
+%define variant
 %%
 start: ;
 ]])
 %%
 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], [],
 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: warning: deprecated directive, use '%define api.push-pull both' [-Wdeprecated]
+ %define api.push_pull both
          ^^^^^^^^^^^^^
          ^^^^^^^^^^^^^
-input.y:1.9-21: error: invalid value for %define variable 'api.push-pull': 'neither'
- %define api.push_pull "neither"
+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: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"
-%%
-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
+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)
 # --------------------------------------------