summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libraries/base/tests/IO/all.T9
m---------libraries/process0
-rw-r--r--rts/win32/veh_excn.c8
-rw-r--r--testsuite/driver/runtests.py33
-rw-r--r--testsuite/driver/testglobals.py6
-rw-r--r--testsuite/driver/testlib.py11
-rw-r--r--testsuite/tests/backpack/cabal/T14304/all.T3
-rw-r--r--testsuite/tests/concurrent/should_run/all.T2
-rw-r--r--testsuite/tests/ghci/linking/dyn/Makefile2
-rw-r--r--testsuite/tests/ghci/linking/dyn/T13606.hs128
-rw-r--r--testsuite/tests/ghci/linking/dyn/T13606.stdout2
-rw-r--r--testsuite/tests/ghci/linking/dyn/Triangle.fx10
-rw-r--r--testsuite/tests/ghci/linking/dyn/all.T4
-rw-r--r--testsuite/tests/perf/compiler/all.T11
-rw-r--r--testsuite/tests/perf/haddock/all.T7
-rw-r--r--testsuite/tests/perf/should_run/all.T7
-rw-r--r--testsuite/tests/quasiquotation/Makefile6
-rw-r--r--testsuite/tests/quasiquotation/T14028Quote.hs5
-rw-r--r--testsuite/tests/rts/T13082/all.T19
-rw-r--r--testsuite/tests/rts/all.T4
l---------testsuite/tests/simplCore/should_compile/T14152a.hs1
-rw-r--r--testsuite/tests/simplCore/should_compile/all.T4
22 files changed, 102 insertions, 180 deletions
diff --git a/libraries/base/tests/IO/all.T b/libraries/base/tests/IO/all.T
index 0de530bc2c..dba0e5e3d7 100644
--- a/libraries/base/tests/IO/all.T
+++ b/libraries/base/tests/IO/all.T
@@ -34,7 +34,8 @@ test('hReady001', normal, compile_and_run, ['-cpp'])
# data to read. It relies on piping input from 'sleep 1', which doesn't
# work for the 'ghci' way because in that case we already pipe input from
# a script, so hence omit_ways(['ghci'])
-test('hReady002', [cmd_prefix('sleep 1 |'), omit_ways(['ghci'])],
+test('hReady002', [cmd_prefix('sleep 1 |'), omit_ways(['ghci']),
+ multi_cpu_race],
compile_and_run, [''])
test('hSeek001', normal, compile_and_run, [''])
@@ -87,8 +88,10 @@ test('hDuplicateTo001', [], compile_and_run, [''])
test('countReaders001', [], compile_and_run, [''])
-test('concio001', normal, run_command, ['$MAKE -s --no-print-directory test.concio001'])
-test('concio001.thr', extra_files(['concio001.hs']), run_command, ['$MAKE -s --no-print-directory test.concio001.thr'])
+test('concio001', [normal, multi_cpu_race],
+ run_command, ['$MAKE -s --no-print-directory test.concio001'])
+test('concio001.thr', [extra_files(['concio001.hs']), multi_cpu_race],
+ run_command, ['$MAKE -s --no-print-directory test.concio001.thr'])
test('concio002', reqlib('process'), compile_and_run, [''])
diff --git a/libraries/process b/libraries/process
-Subproject 2fb7e739771f4a899a12b45f8b392e4874616b8
+Subproject 2364a36549d461adc4886ef33f259638336a87d
diff --git a/rts/win32/veh_excn.c b/rts/win32/veh_excn.c
index 4b7d29a1a1..a4e5ef68c5 100644
--- a/rts/win32/veh_excn.c
+++ b/rts/win32/veh_excn.c
@@ -21,6 +21,7 @@
#include <excpt.h>
#include <inttypes.h>
#include <dbghelp.h>
+#include <signal.h>
/////////////////////////////////
// Exception / signal handlers.
@@ -99,7 +100,8 @@ long WINAPI __hs_exception_handler(struct _EXCEPTION_POINTERS *exception_data)
if (!crash_dump && filter_called)
return EXCEPTION_CONTINUE_EXECUTION;
- long action = EXCEPTION_CONTINUE_SEARCH;
+ long action = EXCEPTION_CONTINUE_SEARCH;
+ int exit_code = EXIT_FAILURE;
ULONG_PTR what;
fprintf (stderr, "\n");
@@ -113,6 +115,7 @@ long WINAPI __hs_exception_handler(struct _EXCEPTION_POINTERS *exception_data)
case EXCEPTION_INT_DIVIDE_BY_ZERO:
fprintf(stderr, "divide by zero\n");
action = EXCEPTION_CONTINUE_EXECUTION;
+ exit_code = SIGFPE;
break;
case EXCEPTION_STACK_OVERFLOW:
fprintf(stderr, "C stack overflow in generated code\n");
@@ -131,6 +134,7 @@ long WINAPI __hs_exception_handler(struct _EXCEPTION_POINTERS *exception_data)
->ExceptionInformation[1]
);
action = EXCEPTION_CONTINUE_EXECUTION;
+ exit_code = SIGSEGV;
break;
default:;
}
@@ -143,7 +147,7 @@ long WINAPI __hs_exception_handler(struct _EXCEPTION_POINTERS *exception_data)
fflush(stderr);
generateStack (exception_data);
generateDump (exception_data);
- stg_exit(EXIT_FAILURE);
+ stg_exit(exit_code);
}
}
diff --git a/testsuite/driver/runtests.py b/testsuite/driver/runtests.py
index 74a152e67a..622e2ea550 100644
--- a/testsuite/driver/runtests.py
+++ b/testsuite/driver/runtests.py
@@ -32,6 +32,7 @@ from junit import junit
# which result in test failures. Thus set TERM to a nice, simple, safe
# value.
os.environ['TERM'] = 'vt100'
+ghc_env['TERM'] = 'vt100'
global config
config = getConfig() # get it from testglobals
@@ -161,6 +162,7 @@ else:
h.close()
if v != '':
os.environ['LC_ALL'] = v
+ ghc_env['LC_ALL'] = v
print("setting LC_ALL to", v)
else:
print('WARNING: No UTF8 locale found.')
@@ -173,14 +175,30 @@ get_compiler_info()
# enabled or not
from testlib import *
+def format_path(path):
+ if windows:
+ if os.pathsep == ':':
+ # If using msys2 python instead of mingw we have to change the drive
+ # letter representation. Otherwise it thinks we're adding two env
+ # variables E and /Foo when we add E:/Foo.
+ path = re.sub('([a-zA-Z]):', '/\\1', path)
+ if config.cygwin:
+ # On cygwin we can't put "c:\foo" in $PATH, as : is a
+ # field separator. So convert to /cygdrive/c/foo instead.
+ # Other pythons use ; as the separator, so no problem.
+ path = re.sub('([a-zA-Z]):', '/cygdrive/\\1', path)
+ path = re.sub('\\\\', '/', path)
+ return path
+
# On Windows we need to set $PATH to include the paths to all the DLLs
# in order for the dynamic library tests to work.
if windows or darwin:
pkginfo = str(getStdout([config.ghc_pkg, 'dump']))
topdir = config.libdir
if windows:
- mingw = os.path.join(topdir, '../mingw/bin')
- os.environ['PATH'] = os.pathsep.join([os.environ.get("PATH", ""), mingw])
+ mingw = os.path.abspath(os.path.join(topdir, '../mingw/bin'))
+ mingw = format_path(mingw)
+ ghc_env['PATH'] = os.pathsep.join([ghc_env.get("PATH", ""), mingw])
for line in pkginfo.split('\n'):
if line.startswith('library-dirs:'):
path = line.rstrip()
@@ -193,16 +211,11 @@ if windows or darwin:
path = re.sub('^"(.*)"$', '\\1', path)
path = re.sub('\\\\(.)', '\\1', path)
if windows:
- if config.cygwin:
- # On cygwin we can't put "c:\foo" in $PATH, as : is a
- # field separator. So convert to /cygdrive/c/foo instead.
- # Other pythons use ; as the separator, so no problem.
- path = re.sub('([a-zA-Z]):', '/cygdrive/\\1', path)
- path = re.sub('\\\\', '/', path)
- os.environ['PATH'] = os.pathsep.join([path, os.environ.get("PATH", "")])
+ path = format_path(path)
+ ghc_env['PATH'] = os.pathsep.join([path, ghc_env.get("PATH", "")])
else:
# darwin
- os.environ['DYLD_LIBRARY_PATH'] = os.pathsep.join([path, os.environ.get("DYLD_LIBRARY_PATH", "")])
+ ghc_env['DYLD_LIBRARY_PATH'] = os.pathsep.join([path, ghc_env.get("DYLD_LIBRARY_PATH", "")])
global testopts_local
testopts_local.x = TestOptions()
diff --git a/testsuite/driver/testglobals.py b/testsuite/driver/testglobals.py
index 5e7142d9c8..44fe125dc5 100644
--- a/testsuite/driver/testglobals.py
+++ b/testsuite/driver/testglobals.py
@@ -123,6 +123,12 @@ config = TestConfig()
def getConfig():
return config
+import os
+# Hold our modified GHC testrunning environment so we don't poison the current
+# python's environment.
+global ghc_env
+ghc_env = os.environ.copy()
+
# -----------------------------------------------------------------------------
# Information about the current test run
diff --git a/testsuite/driver/testlib.py b/testsuite/driver/testlib.py
index 6a7506841a..8bdbedfdcd 100644
--- a/testsuite/driver/testlib.py
+++ b/testsuite/driver/testlib.py
@@ -143,7 +143,8 @@ def _reqlib( name, opts, lib ):
cmd = strip_quotes(config.ghc_pkg)
p = subprocess.Popen([cmd, '--no-user-package-db', 'describe', lib],
stdout=subprocess.PIPE,
- stderr=subprocess.PIPE)
+ stderr=subprocess.PIPE,
+ env=ghc_env)
# read from stdout and stderr to avoid blocking due to
# buffers filling
p.communicate()
@@ -809,7 +810,7 @@ def do_test(name, way, func, args, files):
full_name = name + '(' + way + ')'
if_verbose(2, "=====> {0} {1} of {2} {3}".format(
- full_name, t.total_tests, len(allTestNames),
+ full_name, t.total_tests, len(allTestNames),
[len(t.unexpected_passes),
len(t.unexpected_failures),
len(t.framework_failures)]))
@@ -1744,6 +1745,7 @@ def normalise_prof (str):
def normalise_slashes_( str ):
str = re.sub('\\\\', '/', str)
+ str = re.sub('//', '/', str)
return str
def normalise_exe_( str ):
@@ -1823,7 +1825,8 @@ def runCmd(cmd, stdin=None, stdout=None, stderr=None, timeout_multiplier=1.0, pr
r = subprocess.Popen([timeout_prog, timeout, cmd],
stdin=stdin_file,
stdout=subprocess.PIPE,
- stderr=hStdErr)
+ stderr=hStdErr,
+ env=ghc_env)
stdout_buffer, stderr_buffer = r.communicate()
finally:
@@ -1982,7 +1985,7 @@ def findTFiles(roots):
for root in roots:
for path, dirs, files in os.walk(root, topdown=True):
# Never pick up .T files in uncleaned .run directories.
- dirs[:] = [dir for dir in sorted(dirs)
+ dirs[:] = [dir for dir in sorted(dirs)
if not dir.endswith(testdir_suffix)]
for filename in files:
if filename.endswith('.T'):
diff --git a/testsuite/tests/backpack/cabal/T14304/all.T b/testsuite/tests/backpack/cabal/T14304/all.T
index f25285d0d0..cc121c0388 100644
--- a/testsuite/tests/backpack/cabal/T14304/all.T
+++ b/testsuite/tests/backpack/cabal/T14304/all.T
@@ -4,6 +4,7 @@ else:
cleanup = 'CLEANUP=0'
test('T14304',
- extra_files(['p', 'indef', 'th', 'Setup.hs']),
+ [extra_files(['p', 'indef', 'th', 'Setup.hs']),
+ unless(have_dynamic(), skip)],
run_command,
['$MAKE -s --no-print-directory T14304 ' + cleanup])
diff --git a/testsuite/tests/concurrent/should_run/all.T b/testsuite/tests/concurrent/should_run/all.T
index e7ddf461e4..5b548b745c 100644
--- a/testsuite/tests/concurrent/should_run/all.T
+++ b/testsuite/tests/concurrent/should_run/all.T
@@ -158,7 +158,7 @@ else:
conc023_ways = normal
test('conc023', [when(fast(), skip),
- reqlib('random'),
+ reqlib('random'), multi_cpu_race,
conc023_ways], compile_and_run, [''])
test('conc024', normal, compile_and_run, [''])
diff --git a/testsuite/tests/ghci/linking/dyn/Makefile b/testsuite/tests/ghci/linking/dyn/Makefile
index 8a627919eb..d4a65a6603 100644
--- a/testsuite/tests/ghci/linking/dyn/Makefile
+++ b/testsuite/tests/ghci/linking/dyn/Makefile
@@ -101,7 +101,7 @@ T1407:
.PHONY: T13606
T13606:
- echo "main" | '$(TEST_HC)' $(TEST_HC_OPTS_INTERACTIVE) -lD3DCompiler T13606.hs
+ echo ":q" | '$(TEST_HC)' $(TEST_HC_OPTS_INTERACTIVE) -lgcc_s
.PHONY: big-obj
big-obj:
diff --git a/testsuite/tests/ghci/linking/dyn/T13606.hs b/testsuite/tests/ghci/linking/dyn/T13606.hs
deleted file mode 100644
index 3bce51a761..0000000000
--- a/testsuite/tests/ghci/linking/dyn/T13606.hs
+++ /dev/null
@@ -1,128 +0,0 @@
-{-# LANGUAGE CPP #-}
-{-# LANGUAGE ScopedTypeVariables #-}
-module Main (main) where
-
-import Data.Bits (Bits(..))
-import Data.Int (Int32)
-import Data.Word (Word32)
-import Foreign.C.String (CString, peekCString, withCString, withCStringLen)
-import Foreign.Marshal.Alloc (alloca)
-import Foreign.Ptr (Ptr, castPtr, nullPtr)
-import Foreign.Storable (Storable(..))
-import System.IO (IOMode(..), hGetContents, withFile)
-
-#if defined(i386_HOST_ARCH)
-# define WINDOWS_CCONV stdcall
-#elif defined(x86_64_HOST_ARCH)
-# define WINDOWS_CCONV ccall
-#else
-# error Unknown mingw32 arch
-#endif
-
-foreign import WINDOWS_CCONV "D3DCompile" c_d3dCompile
- :: Ptr () -> Word32 -> CString ->
- Ptr D3DShaderMacro -> Ptr ID3DInclude ->
- CString -> CString -> D3DCompileFlag -> D3DCompileEffectFlag ->
- Ptr (Ptr ID3DBlob) -> Ptr (Ptr ID3DBlob) -> IO HRESULT
-
-maybePoke :: (Storable a) => Maybe a -> (Ptr a -> IO b) -> IO b
-maybePoke Nothing proc = proc nullPtr
-maybePoke (Just m) proc = alloca $ \ptr -> do
- poke ptr m
- proc ptr
-
-maybeWithCString :: Maybe String -> (CString -> IO a) -> IO a
-maybeWithCString Nothing proc = proc nullPtr
-maybeWithCString (Just m) proc = withCString m proc
-
-type HRESULT = LONG
-data ID3DBlob = ID3DBlob
-data ID3DInclude = ID3DInclue
-type LONG = Int32
-
-data D3DShaderMacro = D3DShaderMacro
- { _name :: String
- , _definition :: String }
-
-instance Storable D3DShaderMacro where
- sizeOf _ = 8
- alignment _ = 8
- peek ptr = do
- n <- peekByteOff ptr 0
- d <- peekByteOff ptr 4
- n' <- peekCString n
- d' <- peekCString d
- return $ D3DShaderMacro n' d'
- poke ptr (D3DShaderMacro n d) = do
- withCString n $ \n' -> withCString d $ \d' -> do
- pokeByteOff ptr 0 n'
- pokeByteOff ptr 4 d'
-
-type D3DCompileFlag = Word32
-type D3DCompileEffectFlag = Word32
-
-d3dCompileEnableStrictness :: D3DCompileFlag
-d3dCompileEnableStrictness = shift 1 11
-
-d3dCompile
- :: String -> Maybe String ->
- Maybe D3DShaderMacro -> Ptr ID3DInclude ->
- Maybe String -> String ->
- [D3DCompileFlag] -> [D3DCompileEffectFlag] ->
- IO (Either (HRESULT, Ptr ID3DBlob) (Ptr ID3DBlob))
-d3dCompile source sourceName defines pInclude entryPoint target compileFlags effectFlags = do
- withCStringLen source $ \(csource, len) -> withCString target $ \pTarget ->
- maybeWithCString sourceName $ \pSourceName -> maybePoke defines $ \pDefines ->
- maybeWithCString entryPoint $ \pEntryPoint -> alloca $ \ppCode -> alloca $ \ppErrorMsgs -> do
- let sFlag = foldl (.|.) 0 compileFlags
- let eFlag = foldl (.|.) 0 effectFlags
- putStrLn "Before d3dCompile"
- hr <- c_d3dCompile
- (castPtr csource)
- (fromIntegral len)
- pSourceName
- pDefines
- pInclude
- pEntryPoint
- pTarget
- sFlag
- eFlag
- ppCode
- ppErrorMsgs
- putStrLn "After d3dCompile"
- if hr < 0
- then do
- pErrorMsgs <- peek ppErrorMsgs
- return $ Left (hr, pErrorMsgs)
- else do
- pCode <- peek ppCode
- return $ Right pCode
-
-d3dCompileFromFile
- :: String -> Maybe String ->
- Maybe D3DShaderMacro -> Ptr ID3DInclude ->
- Maybe String -> String ->
- [D3DCompileFlag] -> [D3DCompileEffectFlag] ->
- IO (Either (HRESULT, Ptr ID3DBlob) (Ptr ID3DBlob))
-d3dCompileFromFile fileName sourceName defines pInclude entryPoint target compileFlags effectFlags =
- withFile fileName ReadMode $ \handle -> do
- contents <- hGetContents handle
- d3dCompile contents sourceName defines pInclude entryPoint target compileFlags effectFlags
-
-main :: IO ()
-main = do
- _vb <- compileShaderFromFile "Triangle.fx" "VS" "vs_4_0"
- return ()
-
-compileShaderFromFile :: String -> String -> String -> IO (Ptr ID3DBlob)
-compileShaderFromFile fileName entryPoint shaderModel = do
- Right res <- d3dCompileFromFile
- fileName
- Nothing
- Nothing
- nullPtr
- (Just entryPoint)
- shaderModel
- [d3dCompileEnableStrictness]
- []
- return res
diff --git a/testsuite/tests/ghci/linking/dyn/T13606.stdout b/testsuite/tests/ghci/linking/dyn/T13606.stdout
deleted file mode 100644
index baf6b87f26..0000000000
--- a/testsuite/tests/ghci/linking/dyn/T13606.stdout
+++ /dev/null
@@ -1,2 +0,0 @@
-Before d3dCompile
-After d3dCompile
diff --git a/testsuite/tests/ghci/linking/dyn/Triangle.fx b/testsuite/tests/ghci/linking/dyn/Triangle.fx
deleted file mode 100644
index 0cef7a1e0f..0000000000
--- a/testsuite/tests/ghci/linking/dyn/Triangle.fx
+++ /dev/null
@@ -1,10 +0,0 @@
-float4 VS( float4 Pos : POSITION ) : SV_POSITION
-{
- return Pos;
-}
-
-float4 PS( float4 Pos : SV_POSITION ) : SV_Target
-{
- return float4( 1.0f, 1.0f, 0.0f, 1.0f ); // Yellow, with Alpha = 1
-}
-
diff --git a/testsuite/tests/ghci/linking/dyn/all.T b/testsuite/tests/ghci/linking/dyn/all.T
index 752dc78392..f8679bcbfe 100644
--- a/testsuite/tests/ghci/linking/dyn/all.T
+++ b/testsuite/tests/ghci/linking/dyn/all.T
@@ -39,8 +39,8 @@ test('T11072msvc', [extra_files(['A.c', 'T11072.hs', 'libAS.def', 'i686/', 'x86_
unless(doing_ghci, skip), unless(opsys('mingw32'), skip)],
run_command, ['$MAKE -s --no-print-directory compile_libAS_impl_msvc'])
-test('T13606', [extra_files(['Triangle.fx']),
- unless(doing_ghci, skip), unless(opsys('mingw32'), skip)],
+test('T13606', [unless(doing_ghci, skip), unless(opsys('mingw32'), skip),
+ exit_code(0)],
run_command, ['$MAKE -s --no-print-directory T13606'])
test('big-obj', [extra_files(['big-obj-c.c', 'big-obj.hs']),
diff --git a/testsuite/tests/perf/compiler/all.T b/testsuite/tests/perf/compiler/all.T
index 390e12644a..b161829546 100644
--- a/testsuite/tests/perf/compiler/all.T
+++ b/testsuite/tests/perf/compiler/all.T
@@ -656,9 +656,10 @@ test('T5837',
# 2016-04-06: 24199320 (x86/Linux, 64-bit machine) TypeInType
# 2017-03-24: 27028956 (x86/Linux, 64-bit machine)
- (platform('x86_64-unknown-mingw32'), 59161648, 7),
+ (platform('x86_64-unknown-mingw32'), 54793816, 7),
# 2017-02-19 59161648 (x64/Windows) - Unknown
# 2017-04-21 54985248 (x64/Windows) - Unknown
+ # 2017-12-24 54793816 (x64/Windows) - Unknown
(wordsize(64), 52089424, 7)])
# sample: 3926235424 (amd64/Linux, 15/2/2012)
@@ -1184,14 +1185,18 @@ test('Naperian',
[ reqlib('vector'),
only_ways(['optasm']),
compiler_stats_num_field('bytes allocated',
- [(wordsize(64), 2381935784, 10)])
+ [(platform('x86_64-unknown-mingw32'), 54116696, 10),
+ # 2017-12-24 54116696 (x64/Windows) - Unknown
+ (wordsize(64), 2381935784, 10)])
],
compile,
[''])
test ('T9630',
[ compiler_stats_num_field('max_bytes_used', # Note [residency]
- [(wordsize(64), 41568168, 15)
+ [(platform('x86_64-unknown-mingw32'), 39867088, 15),
+ # 2017-12-24: 34171816 (x64/Windows)
+ (wordsize(64), 41568168, 15)
# initial: 56955240
# 2017-06-07: 41568168 Stop the specialiser generating loopy code
]),
diff --git a/testsuite/tests/perf/haddock/all.T b/testsuite/tests/perf/haddock/all.T
index b7e6b215ca..4ecd52edc9 100644
--- a/testsuite/tests/perf/haddock/all.T
+++ b/testsuite/tests/perf/haddock/all.T
@@ -6,8 +6,9 @@ test('haddock.base',
[extra_files(['../../../../libraries/base/dist-install/haddock.t']),
unless(in_tree_compiler(), skip), req_haddock
,stats_num_field('bytes allocated',
- [(platform('x86_64-unknown-mingw32'), 24286343184, 5)
+ [(platform('x86_64-unknown-mingw32'), 18733710728, 5)
# 2017-02-19 24286343184 (x64/Windows) - Generalize kind of (->)
+ # 2017-12-24 18733710728 (x64/Windows) - Unknown
,(wordsize(64), 19694554424, 5)
# 2012-08-14: 5920822352 (amd64/Linux)
@@ -144,7 +145,9 @@ test('haddock.compiler',
[extra_files(['../../../../compiler/stage2/haddock.t']),
unless(in_tree_compiler(), skip), req_haddock
,stats_num_field('bytes allocated',
- [(wordsize(64), 51592019560, 10)
+ [(platform('x86_64-unknown-mingw32'), 56775301896, 10),
+ # 2017-12-24: 56775301896 (x64/Windows)
+ (wordsize(64), 51592019560, 10)
# 2012-08-14: 26070600504 (amd64/Linux)
# 2012-08-29: 26353100288 (amd64/Linux, new CG)
# 2012-09-18: 26882813032 (amd64/Linux)
diff --git a/testsuite/tests/perf/should_run/all.T b/testsuite/tests/perf/should_run/all.T
index 9c92cd6dc8..aedb40f842 100644
--- a/testsuite/tests/perf/should_run/all.T
+++ b/testsuite/tests/perf/should_run/all.T
@@ -108,9 +108,10 @@ test('lazy-bs-alloc',
test('T876',
[stats_num_field('bytes allocated',
- [(platform('x86_64-unknown-mingw32'), 66928, 5),
+ [(platform('x86_64-unknown-mingw32'), 53472, 5),
# 2015-04-03: 71904 (amd64/Windows, unknown cause)
# 2016-11-27: 66928 (amd64/Windows, unknown cause)
+ # 2017-12-24: 53472 (amd64/Windows, unknown cause)
(wordsize(64), 58128, 5),
# 2013-02-14: 1263712 (x86_64/Linux)
@@ -542,7 +543,9 @@ test('DeriveNullTermination', normal, compile_and_run, [''])
test('T13623',
[stats_num_field('bytes allocated',
- [ (wordsize(64), 50936, 5) ]),
+ [(platform('x86_64-unknown-mingw32'), 47232, 10),
+ # 2017-12-24 47232 unknown
+ (wordsize(64), 50936, 5)]),
# 2017-05-02 50936 initial
only_ways(['normal'])],
compile_and_run,
diff --git a/testsuite/tests/quasiquotation/Makefile b/testsuite/tests/quasiquotation/Makefile
index ebc91d23e5..76e8a928fb 100644
--- a/testsuite/tests/quasiquotation/Makefile
+++ b/testsuite/tests/quasiquotation/Makefile
@@ -10,6 +10,6 @@ T4150:
-'$(TEST_HC)' $(TEST_HC_OPTS) -v0 -c T4150.hs
T14028:
- '$(TEST_HC)' $(TEST_HC_OPTS) T14028Quote.hs
- '$(TEST_HC)' $(TEST_HC_OPTS) -c T14028C.c
- '$(TEST_HC)' $(TEST_HC_OPTS) -fexternal-interpreter T14028 T14028C.o
+ '$(TEST_HC)' $(TEST_HC_OPTS) -v0 T14028Quote.hs
+ '$(TEST_HC)' $(TEST_HC_OPTS) -v0 -c T14028C.c
+ '$(TEST_HC)' $(TEST_HC_OPTS) -v0 -fexternal-interpreter T14028 T14028C.o
diff --git a/testsuite/tests/quasiquotation/T14028Quote.hs b/testsuite/tests/quasiquotation/T14028Quote.hs
index 01413ec100..1080e2f0aa 100644
--- a/testsuite/tests/quasiquotation/T14028Quote.hs
+++ b/testsuite/tests/quasiquotation/T14028Quote.hs
@@ -3,4 +3,7 @@ import Language.Haskell.TH
import Language.Haskell.TH.Quote
here :: QuasiQuoter
-here = QuasiQuoter { quoteExp = litE . stringL }
+here = QuasiQuoter { quoteExp = litE . stringL,
+ quotePat = undefined ,
+ quoteType = undefined,
+ quoteDec = undefined }
diff --git a/testsuite/tests/rts/T13082/all.T b/testsuite/tests/rts/T13082/all.T
index f048ce4ddd..9580bc40b8 100644
--- a/testsuite/tests/rts/T13082/all.T
+++ b/testsuite/tests/rts/T13082/all.T
@@ -1,7 +1,24 @@
+import string
+import re
+
+#--------------------------------------
+# Python normalization functions
+#--------------------------------------
+
+def normalise_search_dirs (str):
+ str = re.sub(r"directories searched:\s+.+$",
+ r"directories searched: (none)", str, flags=re.MULTILINE)
+ str = re.sub(r"^\s+[A-Za-z]:[\\\/].+$", "", str, flags=re.MULTILINE)
+ return str
+
+#--------------------------------------
+# Test functions
+#--------------------------------------
test('T13082_good',
[extra_files(['foo.c', 'main.hs', 'foo_dll.c']),
unless(opsys('mingw32'), skip)],
run_command, ['$MAKE -s --no-print-directory T13082_good'])
-test('T13082_fail', [extra_files(['main.hs']), unless(opsys('mingw32'), skip)],
+test('T13082_fail', [extra_files(['main.hs']), unless(opsys('mingw32'), skip),
+ normalise_errmsg_fun(normalise_search_dirs)],
run_command, ['$MAKE -s --no-print-directory T13082_fail'])
diff --git a/testsuite/tests/rts/all.T b/testsuite/tests/rts/all.T
index 7c5b9c750f..6377bde04f 100644
--- a/testsuite/tests/rts/all.T
+++ b/testsuite/tests/rts/all.T
@@ -35,7 +35,7 @@ test('derefnull',
when(platform('i386-apple-darwin'), [ignore_stderr, exit_code(139)]),
when(platform('x86_64-apple-darwin'), [ignore_stderr, exit_code(139)]),
when(platform('powerpc-apple-darwin'), [ignore_stderr, exit_code(139)]),
- when(opsys('mingw32'), [ignore_stderr, exit_code(127)]),
+ when(opsys('mingw32'), [ignore_stderr, exit_code(11)]),
# since these test are supposed to crash the
# profile report will be empty always.
# so disable the check for profiling
@@ -54,7 +54,7 @@ test('divbyzero',
# C programs compiled with gcc exit normally, so do we.
when(platform('powerpc64-unknown-linux'), [ignore_stdout, exit_code(0)]),
when(platform('powerpc64le-unknown-linux'), [ignore_stdout, exit_code(0)]),
- when(opsys('mingw32'), [ignore_stderr, exit_code(127)]),
+ when(opsys('mingw32'), [ignore_stderr, exit_code(8)]),
# The output under OS X is too unstable to readily compare
when(platform('i386-apple-darwin'), [ignore_stderr, exit_code(136)]),
when(platform('x86_64-apple-darwin'), [ignore_stderr, exit_code(136)]),
diff --git a/testsuite/tests/simplCore/should_compile/T14152a.hs b/testsuite/tests/simplCore/should_compile/T14152a.hs
deleted file mode 120000
index 07fa556727..0000000000
--- a/testsuite/tests/simplCore/should_compile/T14152a.hs
+++ /dev/null
@@ -1 +0,0 @@
-T14152.hs \ No newline at end of file
diff --git a/testsuite/tests/simplCore/should_compile/all.T b/testsuite/tests/simplCore/should_compile/all.T
index 2761a06b3c..e51e8f7db4 100644
--- a/testsuite/tests/simplCore/should_compile/all.T
+++ b/testsuite/tests/simplCore/should_compile/all.T
@@ -285,5 +285,7 @@ test('T14140',
test('T14272', normal, compile, [''])
test('T14270a', normal, compile, [''])
test('T14152', [ only_ways(['optasm']), check_errmsg(r'dead code') ], compile, ['-ddump-simpl'])
-test('T14152a', [ only_ways(['optasm']), check_errmsg(r'dead code') ], compile, ['-fno-exitification -ddump-simpl'])
+test('T14152a', [extra_files(['T14152.hs']), pre_cmd('cp T14152.hs T14152a.hs'),
+ only_ways(['optasm']), check_errmsg(r'dead code') ],
+ compile, ['-fno-exitification -ddump-simpl'])
test('T13990', normal, compile, ['-dcore-lint -O'])