From 8224f948f403886d76b98b1c91924485c9318388 Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Fri, 10 Dec 2010 16:12:18 +0000 Subject: [PATCH] Add a test that all programs in the bindist were built with the right GHC They should use the GHC from the build tree, not the bootstrapping compiler. --- bindisttest/checkBinaries.sh | 20 ++++++++++++++++++++ bindisttest/ghc.mk | 1 + 2 files changed, 21 insertions(+) create mode 100644 bindisttest/checkBinaries.sh diff --git a/bindisttest/checkBinaries.sh b/bindisttest/checkBinaries.sh new file mode 100644 index 0000000..3c62198 --- /dev/null +++ b/bindisttest/checkBinaries.sh @@ -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 diff --git a/bindisttest/ghc.mk b/bindisttest/ghc.mk index 4be2166..a3e97b0 100644 --- a/bindisttest/ghc.mk +++ b/bindisttest/ghc.mk @@ -31,6 +31,7 @@ test_bindist: # c:/foo is a remote file), so it's safer to bzip and then pipe into # tar rather than using tar -xjf: cd bindisttest/a/b/c/ && $(BZIP2_CMD) -cd ../../../../$(BIN_DIST_TEST_TAR_BZ2) | $(TAR_CMD) -xf - + $(SHELL) bindisttest/checkBinaries.sh $(ProjectVersion) ifeq "$(Windows)" "YES" mv bindisttest/a/b/c/$(BIN_DIST_NAME) $(BIN_DIST_INST_DIR) else -- 1.7.10.4