mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-21 02:03:03 +00:00
tests: don't postprocess stderr with sed
On Solaris, sed throws away the NUL bytes from the stream, even in C locale. So instead of postprocessing bison's stderr to neutralize changes in value of `argv[0]`, use an envvar to actually neutralize variations of `argv[0]` during tests. Reported by Dagobert Michelsen. <https://lists.gnu.org/r/bug-bison/2021-08/msg00025.html> * src/main.c (main): Change `argv[0]` if BISON_PROGRAM_NAME is defined. * tests/bison.in: No longer mess with stderr, just pass the expected BISON_PROGRAM_NAME value.
This commit is contained in:
@@ -63,6 +63,12 @@
|
|||||||
int
|
int
|
||||||
main (int argc, char *argv[])
|
main (int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
{
|
||||||
|
char *cp = getenv ("BISON_PROGRAM_NAME");
|
||||||
|
if (cp)
|
||||||
|
argv[0] = cp;
|
||||||
|
}
|
||||||
|
|
||||||
#define DEPENDS_ON_LIBINTL 1
|
#define DEPENDS_ON_LIBINTL 1
|
||||||
set_program_name (argv[0]);
|
set_program_name (argv[0]);
|
||||||
setlocale (LC_ALL, "");
|
setlocale (LC_ALL, "");
|
||||||
|
|||||||
@@ -25,27 +25,13 @@ abs_top_builddir='@abs_top_builddir@'
|
|||||||
BISON_PKGDATADIR=$abs_top_srcdir/data
|
BISON_PKGDATADIR=$abs_top_srcdir/data
|
||||||
export BISON_PKGDATADIR
|
export BISON_PKGDATADIR
|
||||||
|
|
||||||
stderr=tmp-bison.$$
|
|
||||||
|
|
||||||
# If stderr is a tty, force --color=yes to simulate --color=auto
|
|
||||||
# although we save and modify stderr.
|
|
||||||
if test -t 2; then
|
|
||||||
set x --color=yes ${1+"$@"}
|
|
||||||
shift
|
|
||||||
fi
|
|
||||||
|
|
||||||
# We redirect stderr, which breaks the computation of the terminal
|
|
||||||
# screen width. So export COLUMNS to Bison, hoping for the shell to
|
|
||||||
# have defined it.
|
|
||||||
: ${COLUMNS=`(tput cols) 2>/dev/null || echo 132`}
|
|
||||||
export COLUMNS
|
|
||||||
$PREBISON "$abs_top_builddir/src/bison" ${1+"$@"} 2>"$stderr"
|
|
||||||
status=$?
|
|
||||||
|
|
||||||
# Neutralize path differences in error messages so that check and
|
# Neutralize path differences in error messages so that check and
|
||||||
# installcheck behave the same way.
|
# installcheck behave the same way.
|
||||||
sed -e "s,$abs_top_builddir/src/,,g" <"$stderr" >&2
|
BISON_PROGRAM_NAME=bison
|
||||||
rm -f "$stderr"
|
export BISON_PROGRAM_NAME
|
||||||
|
|
||||||
|
$PREBISON "$abs_top_builddir/src/bison" ${1+"$@"}
|
||||||
|
status=$?
|
||||||
|
|
||||||
# As a special dark magic, if we are actually using this wrapper to
|
# 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
|
# compile Bison's src/parse-gram.y, post-process the synclines to
|
||||||
|
|||||||
Reference in New Issue
Block a user