From 8631f35bf90942f0bbd7009d149ecf6f3fb1e398 Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Sun, 13 Oct 2019 09:36:45 +0200 Subject: [PATCH] tests: factor the generation of files without the final eol AFAICT Autotest 2.69 still does not support AT_DATA without the final eol. * tests/local.at (AT_DATA_NO_FINAL_EOL): New. * tests/input.at: Use it. --- tests/input.at | 19 ++++++------------- tests/local.at | 15 +++++++++++++++ 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/tests/input.at b/tests/input.at index f3d1578d..f696f0cf 100644 --- a/tests/input.at +++ b/tests/input.at @@ -2173,18 +2173,13 @@ AT_CLEANUP # Bison used to accept character literals that were empty or contained # too many characters. -# FIXME: AT_DATA or some variant of AT_DATA may eventually permit -# the final newline to be omitted. See the threads starting at -# . - AT_SETUP([[Bad character literals]]) -AT_DATA([empty.y], +AT_DATA_NO_FINAL_EOL([empty.y], [[%% start: ''; start: ' -]]) -AT_PERL_REQUIRE([[-e "print 'start: \'';" >> empty.y]]) +start: ']]) AT_BISON_CHECK([-fcaret empty.y], [1], [], [[empty.y:2.8-9: warning: empty character literal [-Wother] @@ -2204,12 +2199,11 @@ empty.y:4.8: warning: empty character literal [-Wother] | ^ ]]) -AT_DATA([two.y], +AT_DATA_NO_FINAL_EOL([two.y], [[%% start: 'ab'; start: 'ab -]]) -AT_PERL_REQUIRE([[-e "print 'start: \'ab';" >> two.y]]) +start: 'ab]]) AT_BISON_CHECK([two.y], [1], [], [[two.y:2.8-11: warning: extra characters in character literal [-Wother] @@ -2219,12 +2213,11 @@ two.y:4.8-10: error: missing "'" at end of file two.y:4.8-10: warning: extra characters in character literal [-Wother] ]]) -AT_DATA([three.y], +AT_DATA_NO_FINAL_EOL([three.y], [[%% start: 'abc'; start: 'abc -]]) -AT_PERL_REQUIRE([[-e "print 'start: \'abc';" >> three.y]]) +start: 'abc]]) AT_BISON_CHECK([three.y], [1], [], [[three.y:2.8-12: warning: extra characters in character literal [-Wother] diff --git a/tests/local.at b/tests/local.at index 12443d44..a753f13f 100644 --- a/tests/local.at +++ b/tests/local.at @@ -47,6 +47,21 @@ m4_define([AT_SETUP_STRIP], ]) +# AT_DATA_NO_FINAL_EOL(FILE, CONTENT) +# ----------------------------------- +# Same as AT_DATA, except that CONTENT has no the final end of line. +# +# FIXME: AT_DATA or some variant of AT_DATA may eventually permit +# the final newline to be omitted. See the threads starting at +# . +m4_define([AT_DATA_NO_FINAL_EOL], +[AT_DATA([$1], [$2 +]) +AT_PERL_REQUIRE([[-pi -e 'chomp if eof' $1]]) +]) + + + ## ------------- ## ## Basic tests. ## ## ------------- ##