diff options
author | Ben Gamari <ben@well-typed.com> | 2019-01-30 01:06:12 -0500 |
---|---|---|
committer | Ben Gamari <ben@well-typed.com> | 2019-01-30 01:06:12 -0500 |
commit | 76c8fd674435a652c75a96c85abbf26f1f221876 (patch) | |
tree | b02a6f5307a20efc25ddb27c58977069b48972b6 /testsuite/tests/ghci/linking | |
parent | 7cdcd3e12a5c3a337e36fa80c64bd72e5ef79b24 (diff) | |
download | haskell-76c8fd674435a652c75a96c85abbf26f1f221876.tar.gz |
Batch merge
Diffstat (limited to 'testsuite/tests/ghci/linking')
-rw-r--r-- | testsuite/tests/ghci/linking/Makefile | 5 | ||||
-rw-r--r-- | testsuite/tests/ghci/linking/T15729.c | 4 | ||||
-rw-r--r-- | testsuite/tests/ghci/linking/T15729.hs | 14 | ||||
-rw-r--r-- | testsuite/tests/ghci/linking/T15729.stdout | 2 | ||||
-rw-r--r-- | testsuite/tests/ghci/linking/all.T | 28 | ||||
-rw-r--r-- | testsuite/tests/ghci/linking/dyn/all.T | 20 |
6 files changed, 48 insertions, 25 deletions
diff --git a/testsuite/tests/ghci/linking/Makefile b/testsuite/tests/ghci/linking/Makefile index 793998eb92..bfbcf24350 100644 --- a/testsuite/tests/ghci/linking/Makefile +++ b/testsuite/tests/ghci/linking/Makefile @@ -134,3 +134,8 @@ T14708: "$(TEST_HC)" -c add.c -o T14708scratch/add.o "$(AR)" cqs T14708scratch/libadd.a T14708scratch/add.o -"$(TEST_HC)" $(TEST_HC_OPTS_INTERACTIVE) -LT14708scratch -ladd T14708.hs + +.PHONY: T15729 +T15729: + "$(TEST_HC)" -fPIC -c T15729.c -o bss.o + echo "main" | "$(TEST_HC)" $(TEST_HC_OPTS_INTERACTIVE) bss.o T15729.hs diff --git a/testsuite/tests/ghci/linking/T15729.c b/testsuite/tests/ghci/linking/T15729.c new file mode 100644 index 0000000000..67cc6cd173 --- /dev/null +++ b/testsuite/tests/ghci/linking/T15729.c @@ -0,0 +1,4 @@ +int readBss(int i) { + static int bss[1 << 20]; + return bss[i]; +} diff --git a/testsuite/tests/ghci/linking/T15729.hs b/testsuite/tests/ghci/linking/T15729.hs new file mode 100644 index 0000000000..f35f96eac1 --- /dev/null +++ b/testsuite/tests/ghci/linking/T15729.hs @@ -0,0 +1,14 @@ +module T15729 (main) where + +import Foreign +import Foreign.C + +foreign import ccall unsafe "readBss" + readBss :: Int -> IO Int + +main :: IO () +main = do + prefix <- mapM readBss [0 .. 10] + print prefix + samples <- mapM readBss [0, 19 .. bit 20 - 1] + print $ foldr1 (.|.) samples diff --git a/testsuite/tests/ghci/linking/T15729.stdout b/testsuite/tests/ghci/linking/T15729.stdout new file mode 100644 index 0000000000..2a408d0e6d --- /dev/null +++ b/testsuite/tests/ghci/linking/T15729.stdout @@ -0,0 +1,2 @@ +[0,0,0,0,0,0,0,0,0,0,0] +0 diff --git a/testsuite/tests/ghci/linking/all.T b/testsuite/tests/ghci/linking/all.T index d5ee2ff4fc..792e91bc9a 100644 --- a/testsuite/tests/ghci/linking/all.T +++ b/testsuite/tests/ghci/linking/all.T @@ -3,45 +3,45 @@ test('ghcilink001', when(ghc_dynamic(), expect_fail), # dynamic ghci can't load '.a's unless(doing_ghci, skip), extra_clean(['dir001/*','dir001'])], - run_command, - ['$MAKE -s --no-print-directory ghcilink001']) + makefile_test, ['ghcilink001']) test('ghcilink002', [extra_files(['TestLink.hs', 'f.c']), # Fragile when unregisterised; see #16085 when(unregisterised(), skip), - unless(doing_ghci, skip)], run_command, - ['$MAKE -s --no-print-directory ghcilink002']) + unless(doing_ghci, skip)], + makefile_test, ['ghcilink002']) -test('ghcilink003', [unless(doing_ghci, skip)], run_command, - ['$MAKE -s --no-print-directory ghcilink003']) +test('ghcilink003', [unless(doing_ghci, skip)], makefile_test, ['ghcilink003']) test('ghcilink004', [extra_files(['TestLink.hs', 'f.c']), unless(doing_ghci, skip), when(arch('powerpc64') or arch('powerpc64le'), expect_broken(11259))], - run_command, ['$MAKE -s --no-print-directory ghcilink004']) + makefile_test, ['ghcilink004']) test('ghcilink005', [extra_files(['TestLink.hs', 'f.c']), # Fragile when unregisterised; see #16085 when(unregisterised(), skip), unless(doing_ghci, skip)], - run_command, - ['$MAKE -s --no-print-directory ghcilink005']) + makefile_test, ['ghcilink005']) -test('ghcilink006', [unless(doing_ghci, skip)], run_command, - ['$MAKE -s --no-print-directory ghcilink006']) +test('ghcilink006', [unless(doing_ghci, skip)], makefile_test, ['ghcilink006']) test('T3333', [unless(doing_ghci, skip), unless(opsys('linux') or opsys('darwin') or ghc_dynamic(), expect_broken(3333))], - run_command, ['$MAKE -s --no-print-directory T3333']) + makefile_test, ['T3333']) test('T14708', [extra_files(['T14708.hs', 'add.c']), unless(doing_ghci, skip), unless(ghc_dynamic(), skip), extra_clean(['T14708scratch/*', 'T14708'])], - run_command, - ['$MAKE -s --no-print-directory T14708']) + makefile_test, ['T14708']) + +test('T15729', + [extra_files(['T15729.hs', 'T15729.c']), + unless(doing_ghci, skip)], + makefile_test, ['T15729']) diff --git a/testsuite/tests/ghci/linking/dyn/all.T b/testsuite/tests/ghci/linking/dyn/all.T index f8679bcbfe..2efcbbb4fa 100644 --- a/testsuite/tests/ghci/linking/dyn/all.T +++ b/testsuite/tests/ghci/linking/dyn/all.T @@ -1,18 +1,17 @@ test('load_short_name', [extra_files(['A.c']), - unless(doing_ghci, skip)], run_command, - ['$MAKE -s --no-print-directory load_short_name']) + unless(doing_ghci, skip)], + makefile_test, ['load_short_name']) test('T1407', [extra_files(['A.c']), unless(doing_ghci, skip), pre_cmd('$MAKE -s --no-print-directory compile_libT1407'), extra_hc_opts('-L"$PWD/T1407dir"')], - run_command, ['$MAKE --no-print-directory -s T1407']) + makefile_test, []) test('T3242', [unless(doing_ghci, skip), unless(opsys('mingw32'), skip)], - run_command, - ['$MAKE -s --no-print-directory T3242']) + makefile_test, ['T3242']) test('T10955', [extra_files(['A.c', 'B.c']), @@ -21,8 +20,7 @@ test('T10955', extra_hc_opts('-L. -L./bin_dep')], ghci_script, ['T10955.script']) -test('T10955dyn', [extra_files(['A.c', 'B.c'])], run_command, - ['$MAKE -s --no-print-directory compile_libAB_dyn']) +test('T10955dyn', [extra_files(['A.c', 'B.c'])], makefile_test, ['compile_libAB_dyn']) test('T10458', [extra_files(['A.c']), @@ -33,16 +31,16 @@ test('T10458', test('T11072gcc', [extra_files(['A.c', 'T11072.hs']), unless(doing_ghci, skip), unless(opsys('mingw32'), skip)], - run_command, ['$MAKE -s --no-print-directory compile_libAS_impl_gcc']) + makefile_test, ['compile_libAS_impl_gcc']) test('T11072msvc', [extra_files(['A.c', 'T11072.hs', 'libAS.def', 'i686/', 'x86_64/']), unless(doing_ghci, skip), unless(opsys('mingw32'), skip)], - run_command, ['$MAKE -s --no-print-directory compile_libAS_impl_msvc']) + makefile_test, ['compile_libAS_impl_msvc']) test('T13606', [unless(doing_ghci, skip), unless(opsys('mingw32'), skip), exit_code(0)], - run_command, ['$MAKE -s --no-print-directory T13606']) + makefile_test, ['T13606']) test('big-obj', [extra_files(['big-obj-c.c', 'big-obj.hs']), unless(doing_ghci, skip), unless(opsys('mingw32'), skip)], - run_command, ['$MAKE -s --no-print-directory big-obj']) + makefile_test, ['big-obj']) |