From ce68b757b3620e75e330f77cc1ed1d491292ff3e Mon Sep 17 00:00:00 2001
From: Ian Lynagh <igloo@earth.li>
Date: Fri, 13 Jul 2012 19:44:47 +0100
Subject: [PATCH] Add a couple of tests for gcdInteger

---
 testsuite/tests/lib/integer/Makefile          |  6 ++++++
 testsuite/tests/lib/integer/T7041.hs          |  6 ++++++
 testsuite/tests/lib/integer/all.T             |  5 +++++
 testsuite/tests/lib/integer/gcdInteger.hs     | 17 +++++++++++++++++
 testsuite/tests/lib/integer/gcdInteger.stdout |  1 +
 5 files changed, 35 insertions(+)
 create mode 100644 testsuite/tests/lib/integer/T7041.hs
 create mode 100644 testsuite/tests/lib/integer/gcdInteger.hs
 create mode 100644 testsuite/tests/lib/integer/gcdInteger.stdout

diff --git a/testsuite/tests/lib/integer/Makefile b/testsuite/tests/lib/integer/Makefile
index 34d5a177baf..77b733de322 100644
--- a/testsuite/tests/lib/integer/Makefile
+++ b/testsuite/tests/lib/integer/Makefile
@@ -56,3 +56,9 @@ IntegerConversionRules:
 	-grep -q integerToWord     $@.simpl && echo "integerToWord present"
 	-grep -q int2Word          $@.simpl || echo "int2Word absent"
 
+.PHONY: T7041
+T7041:
+	'$(TEST_HC)' -Wall -v0 -O -c $@.hs -fforce-recomp -ddump-simpl > $@.simpl
+	-grep -q gcdInteger        $@.simpl && echo "gcdInteger present"
+	-grep -q "gcdInt\>"        $@.simpl || echo "gcdInt absent"
+
diff --git a/testsuite/tests/lib/integer/T7041.hs b/testsuite/tests/lib/integer/T7041.hs
new file mode 100644
index 00000000000..02ef996b426
--- /dev/null
+++ b/testsuite/tests/lib/integer/T7041.hs
@@ -0,0 +1,6 @@
+
+module T7041 where
+
+gcdInt :: Int -> Int -> Int
+gcdInt a b = fromInteger (gcd (toInteger a) (toInteger b))
+
diff --git a/testsuite/tests/lib/integer/all.T b/testsuite/tests/lib/integer/all.T
index 99056d6b142..cb5767580cf 100644
--- a/testsuite/tests/lib/integer/all.T
+++ b/testsuite/tests/lib/integer/all.T
@@ -12,4 +12,9 @@ test('IntegerConversionRules',
      extra_clean(['IntegerConversionRules.simpl']),
      run_command,
      ['$MAKE -s --no-print-directory IntegerConversionRules'])
+test('gcdInteger', normal, compile_and_run, [''])
+test('T7041',
+     extra_clean(['T7041.simpl']),
+     run_command,
+     ['$MAKE -s --no-print-directory T7041'])
 
diff --git a/testsuite/tests/lib/integer/gcdInteger.hs b/testsuite/tests/lib/integer/gcdInteger.hs
new file mode 100644
index 00000000000..2e945a876af
--- /dev/null
+++ b/testsuite/tests/lib/integer/gcdInteger.hs
@@ -0,0 +1,17 @@
+
+{-# LANGUAGE MagicHash #-}
+
+module Main (main) where
+
+import GHC.Base
+import GHC.Integer
+
+main :: IO ()
+main = case i of
+       I# i# ->
+           print (gcd (smallInteger i#) (smallInteger i#))
+
+{-# NOINLINE i #-}
+i :: Int
+i = minBound
+
diff --git a/testsuite/tests/lib/integer/gcdInteger.stdout b/testsuite/tests/lib/integer/gcdInteger.stdout
new file mode 100644
index 00000000000..b0898f38f81
--- /dev/null
+++ b/testsuite/tests/lib/integer/gcdInteger.stdout
@@ -0,0 +1 @@
+9223372036854775808
-- 
GitLab