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

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/4a118b7b8cfb35cdb1bcf85b45fe21fb7af7ad87

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

commit 4a118b7b8cfb35cdb1bcf85b45fe21fb7af7ad87
Author: Ian Lynagh <i...@well-typed.com>
Date:   Fri Nov 2 12:20:09 2012 +0000

    Add a test for CAPI wrapper functions

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

 tests/ffi/should_run/T4012.hs     |   10 ++++++++++
 tests/ffi/should_run/T4012.stdout |    3 +++
 tests/ffi/should_run/T4012_A.hs   |   14 ++++++++++++++
 tests/ffi/should_run/T4012_B.hs   |   11 +++++++++++
 tests/ffi/should_run/all.T        |    7 +++++++
 5 files changed, 45 insertions(+), 0 deletions(-)

diff --git a/tests/ffi/should_run/T4012.hs b/tests/ffi/should_run/T4012.hs
new file mode 100644
index 0000000..d22b3c3
--- /dev/null
+++ b/tests/ffi/should_run/T4012.hs
@@ -0,0 +1,10 @@
+
+module Main (main) where
+
+import T4012_A
+import T4012_B
+
+main :: IO ()
+main = do a
+          b
+
diff --git a/tests/ffi/should_run/T4012.stdout 
b/tests/ffi/should_run/T4012.stdout
new file mode 100644
index 0000000..f54f234
--- /dev/null
+++ b/tests/ffi/should_run/T4012.stdout
@@ -0,0 +1,3 @@
+Double: 1.500000
+Int: 4
+Int: 9
diff --git a/tests/ffi/should_run/T4012_A.hs b/tests/ffi/should_run/T4012_A.hs
new file mode 100644
index 0000000..f750c6c
--- /dev/null
+++ b/tests/ffi/should_run/T4012_A.hs
@@ -0,0 +1,14 @@
+
+{-# LANGUAGE CApiFFI #-}
+
+module T4012_A where
+
+import Foreign.C
+
+a :: IO ()
+a = do withCString "Double: %f\n" $ \fstr -> printfa1 fstr 1.5
+       withCString "Int: %d\n"    $ \fstr -> printfa2 fstr 4
+
+foreign import capi "stdio.h printf" printfa1 :: CString -> CDouble -> IO ()
+foreign import capi "stdio.h printf" printfa2 :: CString -> CInt -> IO ()
+
diff --git a/tests/ffi/should_run/T4012_B.hs b/tests/ffi/should_run/T4012_B.hs
new file mode 100644
index 0000000..a68c18d
--- /dev/null
+++ b/tests/ffi/should_run/T4012_B.hs
@@ -0,0 +1,11 @@
+
+{-# LANGUAGE CApiFFI #-}
+
+module T4012_B where
+
+import Foreign.C
+
+b :: IO ()
+b = withCString "Int: %d\n" $ \fstr -> printfb fstr 9
+
+foreign import capi "stdio.h printf" printfb :: CString -> CInt -> IO ()
diff --git a/tests/ffi/should_run/all.T b/tests/ffi/should_run/all.T
index b448905..e170db0 100644
--- a/tests/ffi/should_run/all.T
+++ b/tests/ffi/should_run/all.T
@@ -212,3 +212,10 @@ test('capi_value',
      ['capi_value_c.c'])
 
 test('7170', exit_code(1), compile_and_run, [''])
+
+test('T4012',
+     [extra_clean(['T4012_A.hi', 'T4012_A.o', 'T4012_B.hi', 'T4012_B.o']),
+      expect_broken_for(7388, ['ghci'])],
+     multimod_compile_and_run,
+     ['T4012', ''])
+



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

Reply via email to