Repository : ssh://darcs.haskell.org//srv/darcs/testsuite

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/9f1f5ffe3f0db0b095312a734ed0763bf9d362a8

>---------------------------------------------------------------

commit 9f1f5ffe3f0db0b095312a734ed0763bf9d362a8
Author: Ian Lynagh <i...@well-typed.com>
Date:   Fri Dec 14 21:26:44 2012 +0000

    Add a test for -dynamic-too

>---------------------------------------------------------------

 tests/driver/dynamicToo/A001.hs              |    6 ++++++
 tests/driver/dynamicToo/B001.hs              |    6 ++++++
 tests/driver/dynamicToo/B001_1.hs            |    6 ++++++
 tests/driver/dynamicToo/B001_2.hs            |    6 ++++++
 tests/driver/dynamicToo/C001.hs              |    9 +++++++++
 tests/driver/dynamicToo/Makefile             |   23 +++++++++++++++++++++++
 tests/driver/dynamicToo/all.T                |   11 +++++++++++
 tests/driver/dynamicToo/dynamicToo001.stdout |    4 ++++
 8 files changed, 71 insertions(+), 0 deletions(-)

diff --git a/tests/driver/dynamicToo/A001.hs b/tests/driver/dynamicToo/A001.hs
new file mode 100644
index 0000000..073c5fd
--- /dev/null
+++ b/tests/driver/dynamicToo/A001.hs
@@ -0,0 +1,6 @@
+
+module A001 where
+
+a :: Char
+a = 'a'
+
diff --git a/tests/driver/dynamicToo/B001.hs b/tests/driver/dynamicToo/B001.hs
new file mode 100644
index 0000000..bd06202
--- /dev/null
+++ b/tests/driver/dynamicToo/B001.hs
@@ -0,0 +1,6 @@
+
+module B001 where
+
+b :: Char
+b = 'c'
+
diff --git a/tests/driver/dynamicToo/B001_1.hs 
b/tests/driver/dynamicToo/B001_1.hs
new file mode 100644
index 0000000..9640f7b
--- /dev/null
+++ b/tests/driver/dynamicToo/B001_1.hs
@@ -0,0 +1,6 @@
+
+module B001 where
+
+b :: Char
+b = 'b'
+
diff --git a/tests/driver/dynamicToo/B001_2.hs 
b/tests/driver/dynamicToo/B001_2.hs
new file mode 100644
index 0000000..bd06202
--- /dev/null
+++ b/tests/driver/dynamicToo/B001_2.hs
@@ -0,0 +1,6 @@
+
+module B001 where
+
+b :: Char
+b = 'c'
+
diff --git a/tests/driver/dynamicToo/C001.hs b/tests/driver/dynamicToo/C001.hs
new file mode 100644
index 0000000..1adff5f
--- /dev/null
+++ b/tests/driver/dynamicToo/C001.hs
@@ -0,0 +1,9 @@
+
+module Main where
+
+import A001
+import B001
+
+main = do print a
+          print b
+
diff --git a/tests/driver/dynamicToo/Makefile b/tests/driver/dynamicToo/Makefile
new file mode 100644
index 0000000..5083fe4
--- /dev/null
+++ b/tests/driver/dynamicToo/Makefile
@@ -0,0 +1,23 @@
+TOP=../../..
+include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/test.mk
+
+TEST_HC_OPTS_DYN = -dynamic -hisuf dyn_hi -osuf dyn_o
+
+.PHONY: dynamicToo001
+# -dynamic-too should notice that the interface files for B don't match,
+# and so compile the dyn way separately. This means that the right value
+# of B.b should get inlined.
+dynamicToo001:
+       "$(TEST_HC)" $(TEST_HC_OPTS)                     -O -c A001.hs
+       "$(TEST_HC)" $(TEST_HC_OPTS) $(TEST_HC_OPTS_DYN) -O -c A001.hs
+       cp B001_1.hs B001.hs
+       "$(TEST_HC)" $(TEST_HC_OPTS)                     -O -c B001.hs
+       cp B001_2.hs B001.hs
+       "$(TEST_HC)" $(TEST_HC_OPTS) $(TEST_HC_OPTS_DYN) -O -c B001.hs
+       "$(TEST_HC)" $(TEST_HC_OPTS)                     -O -c C001.hs 
-dynamic-too
+       "$(TEST_HC)" $(TEST_HC_OPTS) A001.o     B001.o     C001.o     -o s001
+       "$(TEST_HC)" $(TEST_HC_OPTS) A001.dyn_o B001.dyn_o C001.dyn_o -o d001
+       ./s001
+       ./d001
+
diff --git a/tests/driver/dynamicToo/all.T b/tests/driver/dynamicToo/all.T
new file mode 100644
index 0000000..c10aa2e
--- /dev/null
+++ b/tests/driver/dynamicToo/all.T
@@ -0,0 +1,11 @@
+setTestOpts(only_compiler_types(['ghc']))
+
+test('dynamicToo001',
+     extra_clean(['A001.o',      'B001.o',      'C001.o',
+                  'A001.hi',     'B001.hi',     'C001.hi',
+                  'A001.dyn_o',  'B001.dyn_o',  'C001.dyn_o',
+                  'A001.dyn_hi', 'B001.dyn_hi', 'C001.dyn_hi',
+                  's001', 'd001']),
+     run_command,
+     ['$MAKE -s --no-print-directory dynamicToo001'])
+
diff --git a/tests/driver/dynamicToo/dynamicToo001.stdout 
b/tests/driver/dynamicToo/dynamicToo001.stdout
new file mode 100644
index 0000000..e7aea07
--- /dev/null
+++ b/tests/driver/dynamicToo/dynamicToo001.stdout
@@ -0,0 +1,4 @@
+'a'
+'b'
+'a'
+'c'



_______________________________________________
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to