summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorAkim Demaille <akim.demaille@gmail.com>2020-05-04 06:25:04 +0200
committerAkim Demaille <akim.demaille@gmail.com>2020-05-04 06:48:00 +0200
commit6135fdc15236947defa87db66e92b25559ee387d (patch)
tree81f168a0bf896c7b6e71a54d576018a493410623 /examples
parentf1497356e8e24312f398f97337d85eb52d857b1a (diff)
downloadbison-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-xexamples/c/bistromathic/bistromathic.test3
-rw-r--r--examples/c/reccalc/reccalc.test2
-rwxr-xr-xexamples/test14
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.