Add a simple test which uses scanelf or readelf to detect whether the
supermin executable is really not executable.
Kind of followup of commit c9f7a7998021e1cbe22a8ec325d43e2bdc3eff5a.
---
tests/Makefile.am | 1 +
tests/test-execstack.sh | 32 ++++++++++++++++++++++++++++++++
2 files changed, 33 insertions(+)
create mode 100755 tests/test-execstack.sh
diff --git a/tests/Makefile.am b/tests/Makefile.am
index dc73737..4dc5958 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -23,6 +23,7 @@ EXTRA_DIST = \
TESTS = \
test-basic.sh \
+ test-execstack.sh \
test-build-bash.sh \
test-binaries-exist.sh \
test-harder.sh
diff --git a/tests/test-execstack.sh b/tests/test-execstack.sh
new file mode 100755
index 0000000..a9cb5e0
--- /dev/null
+++ b/tests/test-execstack.sh
@@ -0,0 +1,32 @@
+#!/bin/bash -
+# supermin
+# (C) Copyright 2014 Red Hat Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+set -e
+
+if scanelf --help >/dev/null 2>&1; then
+ echo "using scanelf"
+ scanelf -e ../src/supermin
+ test `scanelf -qe ../src/supermin | wc -l` -eq 0
+elif readelf --help >/dev/null 2>&1; then
+ echo "using readelf"
+ readelf -lW ../src/supermin | grep GNU_STACK
+ ! readelf -lW ../src/supermin | grep GNU_STACK | grep 'E ' >/dev/null
2>&1
+else
+ echo "$0: test skipped because none of the following tools is installed:
scanelf, readelf"
+ exit 77
+fi
--
1.9.0