diff --git a/src/getargs.c b/src/getargs.c index 95c681b5..ac9f11c8 100644 --- a/src/getargs.c +++ b/src/getargs.c @@ -724,7 +724,7 @@ getargs (int argc, char *argv[]) if (argc - optind != 1) { if (argc - optind < 1) - error (0, 0, _("%s: missing operand"), quotearg_colon (argv[argc - 1])); + error (0, 0, _("missing operand")); else error (0, 0, _("extra operand %s"), quote (argv[optind + 1])); usage (EXIT_FAILURE); diff --git a/tests/bison.in b/tests/bison.in index d3b8ba61..99f7ef40 100644 --- a/tests/bison.in +++ b/tests/bison.in @@ -25,9 +25,15 @@ abs_top_builddir='@abs_top_builddir@' BISON_PKGDATADIR=$abs_top_srcdir/data export BISON_PKGDATADIR -$PREBISON "$abs_top_builddir/src/bison" ${1+"$@"} +stderr=tmp-bison.$$ +$PREBISON "$abs_top_builddir/src/bison" ${1+"$@"} 2>"$stderr" status=$? +# Neutralize path differences in error messages so that check and +# installcheck behave the same way. +sed -e "s,$abs_top_builddir/src/,,g" <"$stderr" >&2 +rm -f "$stderr" + # As a special dark magic, if we are actually using this wrapper to # compile Bison's src/parse-gram.y, post-process the synclines to # avoid dependencies on the user's set up (srcdir vs. builddir). diff --git a/tests/input.at b/tests/input.at index 527c0398..9b8c453b 100644 --- a/tests/input.at +++ b/tests/input.at @@ -20,6 +20,31 @@ AT_BANNER([[Input Processing.]]) # Mostly test that we are robust to mistakes. +## ----------------------------- ## +## Invalid number of arguments. ## +## ----------------------------- ## + +AT_SETUP([Invalid number of arguments]) + +AT_BISON_CHECK([], [1], [], +[[bison: missing operand +Try 'bison --help' for more information. +]]) + +AT_BISON_CHECK([1.y 2.y], [1], [], +[[bison: extra operand '2.y' +Try 'bison --help' for more information. +]]) + +AT_BISON_CHECK([--skeleton], [1], [], +[[bison: option '--skeleton' requires an argument +Try 'bison --help' for more information. +]]) + +AT_CLEANUP + + + ## ----------------- ## ## Invalid options. ## ## ----------------- ##