diff options
author | Akim Demaille <akim.demaille@gmail.com> | 2020-05-04 06:25:04 +0200 |
---|---|---|
committer | Akim Demaille <akim.demaille@gmail.com> | 2020-05-04 06:48:00 +0200 |
commit | 6135fdc15236947defa87db66e92b25559ee387d (patch) | |
tree | 81f168a0bf896c7b6e71a54d576018a493410623 /examples | |
parent | f1497356e8e24312f398f97337d85eb52d857b1a (diff) | |
download | bison-6135fdc15236947defa87db66e92b25559ee387d.tar.gz |
examples: beware of portability issues with sh's trap
On AIX 7.2, when invoking "exit 77", we actually exit with 127. The
"cleanup" function, called via trap, received an incorrect exit
status, something described in Autoconf's doc.
Reported by Bruno Haible.
https://lists.gnu.org/archive/html/bug-bison/2020-05/msg00029.html
https://lists.gnu.org/archive/html/bug-bison/2020-05/msg00047.html
* examples/test (skip): New.
* examples/c/bistromathic/bistromathic.test,
* examples/c/reccalc/reccalc.test: Use it, to ensure $? is set to 77
when the trap is called.
Diffstat (limited to 'examples')
-rwxr-xr-x | examples/c/bistromathic/bistromathic.test | 3 | ||||
-rw-r--r-- | examples/c/reccalc/reccalc.test | 2 | ||||
-rwxr-xr-x | examples/test | 14 |
3 files changed, 16 insertions, 3 deletions
diff --git a/examples/c/bistromathic/bistromathic.test b/examples/c/bistromathic/bistromathic.test index d33b4e8f..0f0b7898 100755 --- a/examples/c/bistromathic/bistromathic.test +++ b/examples/c/bistromathic/bistromathic.test @@ -46,8 +46,7 @@ if diff perfect effective >/dev/null 2>&1; then elif diff ok effective >/dev/null 2>&1; then strip_prompt=true else - echo "SKIP: this is not the GNU Readline we expect" - exit 77 + skip "this is not the GNU Readline we expect" fi diff --git a/examples/c/reccalc/reccalc.test b/examples/c/reccalc/reccalc.test index 27716a24..124de6bc 100644 --- a/examples/c/reccalc/reccalc.test +++ b/examples/c/reccalc/reccalc.test @@ -15,7 +15,7 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. -(seq 0) >/dev/null 2>&1 || exit 77 +(seq 0) >/dev/null 2>&1 || skip "gimme one seq" cat >input <<EOF 1+2*3 diff --git a/examples/test b/examples/test index 02e59b3f..3bf6edd4 100755 --- a/examples/test +++ b/examples/test @@ -68,6 +68,20 @@ trap cleanup 0 1 2 13 15 mkdir $$.dir cd $$.dir + +# skip [MSG] +# ---------- +# Skip this test. +skip () +{ + if test x"$1" != x; then + echo "SKIP: $1" + fi + # See Autoconf's doc on 'trap'. + (exit 77); exit 77 +} + + # run [-noerr, -n] EXPECTED-EXIT-STATUS EXPECTED-OUTPUT [PARSER-OPTIONS] # ---------------------------------------------------------------------- # -noerr: ignore stderr, otherwise merge it into effective output. |