Add a test that all programs in the bindist were built with the right GHC
[ghc-hetmet.git] / bindisttest / checkBinaries.sh
diff --git a/bindisttest/checkBinaries.sh b/bindisttest/checkBinaries.sh
new file mode 100644 (file)
index 0000000..3c62198
--- /dev/null
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+echo "1 is $1 done"
+EXPECTED_VERSION="$1"
+
+# Our shared libraries are currently executable (is that a bug?), so
+# we exclude anything that looks like a shared library
+for f in `find bindisttest/a/b/c -type f -executable ! -name '*.so' ! -name '*.dynlib' ! -name '*.dll'`
+do
+    if grep -q '("GHC RTS", "YES")' "$f"
+    then
+        # Looks like a GHC executable. Is it for the right version?
+        THIS_VERSION=`./$f +RTS --info | grep '"GHC version"' | sed -e 's/^ ,("GHC version", "//' -e 's/")$//'`
+        if [ "$THIS_VERSION" != "$EXPECTED_VERSION" ]
+        then
+            echo "Bad GHC version '$THIS_VERSION' for '$f'" >&2
+            exit 1
+        fi
+    fi
+done