summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stone <daniels@collabora.com>2018-03-19 15:13:14 +0000
committerDerek Foreman <derekf@osg.samsung.com>2018-03-19 11:44:28 -0500
commit3de11b8d798d657fb59e84792a44dbb027ab523f (patch)
tree1dad877e6f696b8a1d81635f353879c5c79ebe18
parent2031bcf5daef57d1693b5e808fac2bb90affe5cb (diff)
wayland-egl: Make symbol test fail on failure
The previous rewrite of the wayland-egl ABI checker introduced checks for removed symbols as well as added symbols, but broke some failure conditions. Add an explict return-code variable set in failure paths, rather than chaining or conditions. If we cannot find the binary or nm, we regard this as an error condition, rather than test failure. v2: Don't test if we can execute $NM. Signed-off-by: Daniel Stone <daniels@collabora.com> Reported-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Fixes: 21b1f22eb056 ("wayland-egl: enhance the symbol test") Cc: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
-rwxr-xr-xegl/wayland-egl-symbols-check27
1 files changed, 21 insertions, 6 deletions
diff --git a/egl/wayland-egl-symbols-check b/egl/wayland-egl-symbols-check
index c47026b..70fe1f4 100755
--- a/egl/wayland-egl-symbols-check
+++ b/egl/wayland-egl-symbols-check
@@ -1,11 +1,17 @@
#!/bin/sh
set -eu
+RET=0
LIB=${WAYLAND_EGL_LIB}
-if [ ! -f "$LIB" ]; then
- echo "The test binary \"$LIB\" does no exist"
- exit 1
+if ! test -f "$LIB"; then
+ echo "Test binary \"$LIB\" does not exist"
+ exit 99
+fi
+
+if ! test -n "$NM"; then
+ echo "nm environment variable not set"
+ exit 99
fi
AVAIL_FUNCS="$($NM -D --format=bsd --defined-only $LIB | awk '{print $3}')"
@@ -32,7 +38,11 @@ NEW_ABI=$(echo "$AVAIL_FUNCS" | while read func; do
echo $func
done)
-test ! -n "$NEW_ABI" || echo "New ABI detected - If intentional, update the test."; echo "$NEW_ABI"
+if test -n "$NEW_ABI"; then
+ echo "New ABI detected - If intentional, update the test."
+ echo "$NEW_ABI"
+ RET=1
+fi
REMOVED_ABI=$(echo "$REQ_FUNCS" | while read func; do
echo "$AVAIL_FUNCS" | grep -q "^$func$" && continue
@@ -40,5 +50,10 @@ REMOVED_ABI=$(echo "$REQ_FUNCS" | while read func; do
echo $func
done)
-test ! -n "$REMOVED_ABI" || echo "ABI break detected - Required symbol(s) no longer exported!"; echo "$REMOVED_ABI"
-test ! -n "$NEW_ABI" || test ! -n "$REMOVED_ABI"
+if test -n "$REMOVED_ABI"; then
+ echo "ABI break detected - Required symbol(s) no longer exported!"
+ echo "$REMOVED_ABI"
+ RET=1
+fi
+
+exit $RET