bistromathic: beware of portability issues with readline

In some cases readline emits a trailing spaces after the last
suggestion, which results in errors such as:

```
-(       -       atan    cos     exp     ln      number  sin     sqrt$
+(       -       atan    cos     exp     ln      number  sin     sqrt    $
```

Reported by Christopher Nielsen <mascguy@github.com>.
<https://trac.macports.org/ticket/59927#comment:48>
<https://trac.macports.org/attachment/ticket/59927/bison-3.7.6-test-10.13.test-suite.log>

* examples/test (run): Add support for -t.
* examples/c/bistromathic/bistromathic.test: Use it.
This commit is contained in:
Akim Demaille
2021-08-03 07:33:33 +02:00
parent 7f1e9249d0
commit 4b802d6417
2 changed files with 22 additions and 8 deletions

View File

@@ -91,18 +91,21 @@ skip ()
}
# run [-noerr, -n] EXPECTED-EXIT-STATUS EXPECTED-OUTPUT [PARSER-OPTIONS]
# ----------------------------------------------------------------------
# run [-n, -noerr, -t] EXPECTED-EXIT-STATUS EXPECTED-OUTPUT [PARSER-OPTIONS]
# --------------------------------------------------------------------------
# -n: no final end-of-line in expected-output
# -noerr: ignore stderr, otherwise merge it into effective output.
# -n: not final end-of-line in expected-output
# -t: nuke the possible trailing white spaces in the effective output.
run ()
{
noerr=false
echo=echo
noerr=false
rstrip=false
while true; do
case $1 in
(-noerr) noerr=true; shift;;
(-n) echo=printf; shift;;
(-noerr) noerr=true; shift;;
(-t) rstrip=true; shift;;
(*) break;;
esac
done
@@ -129,7 +132,11 @@ run ()
# Combine effective output and error streams.
{
cat out_eff
if $rstrip; then
sed -e 's/ *$//g' out_eff
else
cat out_eff
fi
if ! $noerr; then
sed -e 's/^/err: /g' \
-e 's/Reducing stack by rule .* (line .*):/Reducing stack by rule XX (line XXX):/g' \