diff options
author | Ben Gamari <ben@smart-cactus.org> | 2022-05-11 16:24:41 -0400 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2022-05-13 12:11:09 -0400 |
commit | 5678f017a69dc758d0edabbdaad755bd5efef465 (patch) | |
tree | 2119bbb4720ec3280e0b2b1f237c5cdf53e45345 /testsuite/tests/rts | |
parent | 53b3fa1c782b251076707a024f55276d4ccb0a6c (diff) | |
download | haskell-5678f017a69dc758d0edabbdaad755bd5efef465.tar.gz |
testsuite: Add tests for #21556
Diffstat (limited to 'testsuite/tests/rts')
-rw-r--r-- | testsuite/tests/rts/linker/T21556/T21556_lib.c | 5 | ||||
-rw-r--r-- | testsuite/tests/rts/linker/T21556/T21556a.hs | 7 | ||||
-rw-r--r-- | testsuite/tests/rts/linker/T21556/T21556a.stdout | 1 | ||||
-rw-r--r-- | testsuite/tests/rts/linker/T21556/T21556b.hs | 7 | ||||
-rw-r--r-- | testsuite/tests/rts/linker/T21556/T21556b.stdout | 1 | ||||
-rw-r--r-- | testsuite/tests/rts/linker/T21556/T21556b_c.c | 6 | ||||
-rw-r--r-- | testsuite/tests/rts/linker/T21556/all.T | 6 |
7 files changed, 33 insertions, 0 deletions
diff --git a/testsuite/tests/rts/linker/T21556/T21556_lib.c b/testsuite/tests/rts/linker/T21556/T21556_lib.c new file mode 100644 index 0000000000..dbeab24f85 --- /dev/null +++ b/testsuite/tests/rts/linker/T21556/T21556_lib.c @@ -0,0 +1,5 @@ +#include <stdio.h> + +__attribute__((weak)) void hello(int x) { + printf("hello %d\n", x+1); +} diff --git a/testsuite/tests/rts/linker/T21556/T21556a.hs b/testsuite/tests/rts/linker/T21556/T21556a.hs new file mode 100644 index 0000000000..5e66be0c3e --- /dev/null +++ b/testsuite/tests/rts/linker/T21556/T21556a.hs @@ -0,0 +1,7 @@ +{-# LANGUAGE ForeignFunctionInterface #-} + +import Foreign.C.Types + +foreign import ccall unsafe "hello" hello :: CInt -> IO () + +main = hello 42 diff --git a/testsuite/tests/rts/linker/T21556/T21556a.stdout b/testsuite/tests/rts/linker/T21556/T21556a.stdout new file mode 100644 index 0000000000..c91bc968f9 --- /dev/null +++ b/testsuite/tests/rts/linker/T21556/T21556a.stdout @@ -0,0 +1 @@ +hello 43 diff --git a/testsuite/tests/rts/linker/T21556/T21556b.hs b/testsuite/tests/rts/linker/T21556/T21556b.hs new file mode 100644 index 0000000000..5e66be0c3e --- /dev/null +++ b/testsuite/tests/rts/linker/T21556/T21556b.hs @@ -0,0 +1,7 @@ +{-# LANGUAGE ForeignFunctionInterface #-} + +import Foreign.C.Types + +foreign import ccall unsafe "hello" hello :: CInt -> IO () + +main = hello 42 diff --git a/testsuite/tests/rts/linker/T21556/T21556b.stdout b/testsuite/tests/rts/linker/T21556/T21556b.stdout new file mode 100644 index 0000000000..09c51b84cb --- /dev/null +++ b/testsuite/tests/rts/linker/T21556/T21556b.stdout @@ -0,0 +1 @@ +world 42 diff --git a/testsuite/tests/rts/linker/T21556/T21556b_c.c b/testsuite/tests/rts/linker/T21556/T21556b_c.c new file mode 100644 index 0000000000..87c3139f01 --- /dev/null +++ b/testsuite/tests/rts/linker/T21556/T21556b_c.c @@ -0,0 +1,6 @@ +#include <stdio.h> + +void hello(int x) { + printf("world %d\n", x); +} + diff --git a/testsuite/tests/rts/linker/T21556/all.T b/testsuite/tests/rts/linker/T21556/all.T new file mode 100644 index 0000000000..fad0e9758f --- /dev/null +++ b/testsuite/tests/rts/linker/T21556/all.T @@ -0,0 +1,6 @@ +setTestOpts([ + unless(opsys('mingw32'), skip), + extra_files(['T21556_lib.c']) +]) +test('T21556a', normal, multimod_compile_and_run, ['T21556a', 'T21556_lib.c']) +test('T21556b', normal, multimod_compile_and_run, ['T21556b', 'T21556_lib.c T21556b_c.c']) |