From 8893145a0c033d69338ed005533c95b84b20cb51 Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Wed, 10 Jun 2009 20:14:52 +0200 Subject: [PATCH] deterministic test suite. Some consistency checks on symbols are performed after all the symbols were read, by an iteration over the symbol table. This traversal is nondeterministic, which can be a problem for test cases. Avoid this. Addresses another form of nondeterminism reported by Joel E. Denny. http://lists.gnu.org/archive/html/bison-patches/2009-05/msg00023.html * tests/input.at (Numbered tokens): Split the hexadecimal/decimal test in two. Use different file names for the three tests to make the maintenance easier. --- ChangeLog | 16 ++++++++++++++++ gnulib | 2 +- tests/input.at | 39 ++++++++++++++++++++++++--------------- 3 files changed, 41 insertions(+), 16 deletions(-) diff --git a/ChangeLog b/ChangeLog index 30e9426..4fe1bec 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,21 @@ 2009-06-10 Akim Demaille + deterministic test suite. + Some consistency checks on symbols are performed after all the + symbols were read, by an iteration over the symbol table. This + traversal is nondeterministic, which can be a problem for test + cases. + Avoid this. + Addresses another form of nondeterminism reported by Joel E. Denny. + http://lists.gnu.org/archive/html/bison-patches/2009-05/msg00023.html + + * tests/input.at (Numbered tokens): Split the hexadecimal/decimal + test in two. + Use different file names for the three tests to make the + maintenance easier. + +2009-06-10 Akim Demaille + gnulib: update. * gnulib: Update to latest. * lib/.cvsignore, lib/.gitignore, m4/.cvsignore, diff --git a/gnulib b/gnulib index 31d3154..5a1286a 160000 --- a/gnulib +++ b/gnulib @@ -1 +1 @@ -Subproject commit 31d3154399f8c679ba23afb0f6bef03b73d4c741 +Subproject commit 5a1286a9f8597c0063a82645b55f3e97433fc521 diff --git a/tests/input.at b/tests/input.at index 6de0e1a..bf40ab4 100644 --- a/tests/input.at +++ b/tests/input.at @@ -675,24 +675,33 @@ AT_CLEANUP AT_SETUP([Numbered tokens]) -AT_DATA_GRAMMAR([input.y], -[[%token HEXADECIMAL_1 0xabcdef - DECIMAL_1 11259375 -%token HEXADECIMAL_2 0XFEDCBA - DECIMAL_2 16702650 +AT_DATA_GRAMMAR([1.y], +[[%token DECIMAL 11259375 + HEXADECIMAL 0xabcdef %% -start: HEXADECIMAL_1 HEXADECIMAL_2 +start: DECIMAL; +]]) + +AT_BISON_CHECK([1.y], [1], [], +[[1.y:10.10-20: user token number 11259375 redeclaration for HEXADECIMAL +1.y:9.8-14: previous declaration for DECIMAL +]]) + + +AT_DATA_GRAMMAR([2.y], +[[%token HEXADECIMAL 0xabcdef + DECIMAL 11259375 %% +start: HEXADECIMAL; ]]) -AT_BISON_CHECK([input.y], [1], [], -[[input.y:10.12-20: user token number 11259375 redeclaration for DECIMAL_1 -input.y:9.8-20: previous declaration for HEXADECIMAL_1 -input.y:12.12-20: user token number 16702650 redeclaration for DECIMAL_2 -input.y:11.8-20: previous declaration for HEXADECIMAL_2 +AT_BISON_CHECK([2.y], [1], [], +[[2.y:10.10-16: user token number 11259375 redeclaration for DECIMAL +2.y:9.8-18: previous declaration for HEXADECIMAL ]]) -AT_DATA_GRAMMAR([input.y], + +AT_DATA_GRAMMAR([3.y], [[%token TOO_LARGE_DEC 999999999999999999999 TOO_LARGE_HEX 0xFFFFFFFFFFFFFFFFFFF %% @@ -700,9 +709,9 @@ start: TOO_LARGE_DEC TOO_LARGE_HEX %% ]]) -AT_BISON_CHECK([input.y], [1], [], -[[input.y:9.22-42: integer out of range: `999999999999999999999' -input.y:10.24-44: integer out of range: `0xFFFFFFFFFFFFFFFFFFF' +AT_BISON_CHECK([3.y], [1], [], +[[3.y:9.22-42: integer out of range: `999999999999999999999' +3.y:10.24-44: integer out of range: `0xFFFFFFFFFFFFFFFFFFF' ]]) AT_CLEANUP -- 1.6.3.2