From 2c00d9048873f3d6d7e188dd1ef7f670a83a5c94 Mon Sep 17 00:00:00 2001
From: Matthew Pickering <matthewtpickering@gmail.com>
Date: Wed, 13 Apr 2022 17:36:30 +0100
Subject: [PATCH] ci: Add test to check that release jobs have profiled libs

---
 .gitlab/ci.sh        | 9 ++++++++-
 bindisttest/Makefile | 6 ++++++
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/.gitlab/ci.sh b/.gitlab/ci.sh
index 269d76e63394..824699e9c7bb 100755
--- a/.gitlab/ci.sh
+++ b/.gitlab/ci.sh
@@ -492,7 +492,7 @@ function test_make() {
 
   check_release_build
 
-  run "$MAKE" test_bindist TEST_PREP=YES
+  run "$MAKE" test_bindist TEST_PREP=YES TEST_PROF=${RELEASE_JOB:-}
   (unset $(compgen -v | grep CI_*);
     run "$MAKE" V=0 VERBOSE=1 test \
       THREADS="$cores" \
@@ -588,6 +588,13 @@ function test_hadrian() {
       fail "Test compiler has a different BIGNUM_BACKEND ($test_compiler_backend) thean requested ($BIGNUM_BACKEND)"
     fi
 
+    # If we are doing a release job, check the compiler can build a profiled executable
+    if [ "${RELEASE_JOB:-}" == "yes" ]; then
+      echo "main = print ()" > proftest.hs
+      run ${test_compiler} -prof proftest.hs || fail "hadrian profiled libs test"
+      rm proftest.hs
+    fi
+
     run_hadrian \
       test \
       --summary-junit=./junit.xml \
diff --git a/bindisttest/Makefile b/bindisttest/Makefile
index e49172c77d4a..3df55a916715 100644
--- a/bindisttest/Makefile
+++ b/bindisttest/Makefile
@@ -50,6 +50,12 @@ endif
 	$(CONTEXT_DIFF) output expected_output
 # Without --no-user-package-db we might pick up random packages from ~/.ghc
 	$(BIN_DIST_INST_DIR)/bin/ghc-pkg check --no-user-package-db
+ifeq "$(TEST_PROF)" "yes"
+	$(BIN_DIST_INST_DIR)/bin/ghc --make -prof HelloWorld
+	./HelloWorld > output
+	$(CONTEXT_DIFF) output expected_output
+endif
+
 
 clean distclean:
 	"$(RM)" $(RM_OPTS_REC) $(BIN_DIST_INST_SUBDIR)
-- 
GitLab