diff options
author | Simon Marlow <marlowsd@gmail.com> | 2011-08-14 09:51:41 +0100 |
---|---|---|
committer | Simon Marlow <marlowsd@gmail.com> | 2011-08-14 09:51:41 +0100 |
commit | 2d7de12702a712c087fb65f2f16a8b3ec4a19e43 (patch) | |
tree | 9ecb1d36686243ffb7eadbbbbd1213388ecb604b /testsuite/tests/ffi | |
parent | 3d6d96742c4626ab525c1c8a1784acbce619d152 (diff) | |
download | haskell-2d7de12702a712c087fb65f2f16a8b3ec4a19e43.tar.gz |
Add test for #5402
Diffstat (limited to 'testsuite/tests/ffi')
-rw-r--r-- | testsuite/tests/ffi/should_run/5402.hs | 4 | ||||
-rw-r--r-- | testsuite/tests/ffi/should_run/5402_main.c | 13 | ||||
-rw-r--r-- | testsuite/tests/ffi/should_run/Makefile | 3 | ||||
-rw-r--r-- | testsuite/tests/ffi/should_run/all.T | 9 |
4 files changed, 29 insertions, 0 deletions
diff --git a/testsuite/tests/ffi/should_run/5402.hs b/testsuite/tests/ffi/should_run/5402.hs new file mode 100644 index 0000000000..6b20b9fb28 --- /dev/null +++ b/testsuite/tests/ffi/should_run/5402.hs @@ -0,0 +1,4 @@ +module Test where +import System.Exit +foreign export ccall hsmain :: IO () +hsmain = exitWith (ExitFailure 42) diff --git a/testsuite/tests/ffi/should_run/5402_main.c b/testsuite/tests/ffi/should_run/5402_main.c new file mode 100644 index 0000000000..6ef2c651a9 --- /dev/null +++ b/testsuite/tests/ffi/should_run/5402_main.c @@ -0,0 +1,13 @@ +#include "HsFFI.h" +#include <stdio.h> +#include <stdlib.h> +#include "5402_stub.h" + +int main (int argc, char *argv[]) +{ + hs_init(&argc,&argv); + hs_init(&argc,&argv); + hsmain(); + printf("I shouldn't be here\n"); + exit(1); +} diff --git a/testsuite/tests/ffi/should_run/Makefile b/testsuite/tests/ffi/should_run/Makefile index c30f5565f4..64bc63a2d3 100644 --- a/testsuite/tests/ffi/should_run/Makefile +++ b/testsuite/tests/ffi/should_run/Makefile @@ -13,3 +13,6 @@ ffi018_ghci_setup : ffi002_setup : '$(TEST_HC)' $(TEST_HC_OPTS) -c ffi002.hs + +5402_setup : + '$(TEST_HC)' $(TEST_HC_OPTS) -c 5402.hs diff --git a/testsuite/tests/ffi/should_run/all.T b/testsuite/tests/ffi/should_run/all.T index cf1e169c25..d6fdc8cde4 100644 --- a/testsuite/tests/ffi/should_run/all.T +++ b/testsuite/tests/ffi/should_run/all.T @@ -166,3 +166,12 @@ test('4038', normal, compile_and_run, flagsFor4038) test('4221', [ omit_ways(['ghci']), extra_clean(['4221_c.o']) ], compile_and_run, ['4221_c.c']) +test('5402', [ omit_ways(['ghci']), + exit_code(42), + extra_clean(['5402_main.o']), + # The 5402_setup hack is to ensure that we generate + # 5402_stub.h before compiling 5402_main.c, which + # needs it. + compile_cmd_prefix('$MAKE --no-print-directory 5402_setup && ') ], + compile_and_run, ["-no-hs-main 5402_main.c"]) + |