Here's the patch I submitted Ryan earlier in September for the random package failure. I suppose it should be updated to use the new platform stuff instead of the CPP ickiness.
Fyi, Bill ---------- Forwarded message ---------- From: Bill Tutt <[email protected]> Date: Thu, Sep 29, 2011 at 11:02 AM Subject: [PATCH]: random package rangeTest fix for CWChar on Windows To: [email protected] wchar_t is unsigned and 16bits on Windows so this diff is necessary for rangeTest to pass on Windows. Also added a tiny bit more information to the bound violation error message. Fyi, Bill diff --git a/tests/rangeTest.hs b/tests/rangeTest.hs index 704a36c..68b3d83 100644 --- a/tests/rangeTest.hs +++ b/tests/rangeTest.hs @@ -35,8 +35,8 @@ checkBounds msg (exclusive,lo,hi) fun = -- ++ ", expected range " ++ show (lo,hi) ++ ": " (mn,mx,sum) <- getStdRandom (fun (lo,hi)) - when (mn < lo)$ error$ "broke lower bound: " ++ show mn - when (mx > hi) $ error$ "broke upper bound: " ++ show mx + when (mn < lo) $ error$ "broke lower bound: " ++ show lo ++ " with " ++ show mn + when (mx > hi) $ error$ "broke upper bound: " ++ show hi ++ " with " ++ show mx when (exclusive && mx > hi)$ error$ "hit upper bound: " ++ show mx let epsilon = 0.1 * (toRational hi - toRational lo) @@ -83,8 +83,12 @@ main = checkBounds "CULong" (wordRange nb) (approxBounds random trials (undefined:: CULong)) checkBounds "CPtrdiff" (intRange nb) (approxBounds random trials (undefined:: CPtrdiff)) checkBounds "CSize" (wordRange nb) (approxBounds random trials (undefined:: CSize)) +#ifndef mingw32_HOST_OS checkBounds "CWchar" (intRange 32) (approxBounds random trials (undefined:: CWchar)) - checkBounds "CSigAtomic" (intRange 32) (approxBounds random trials (undefined:: CWchar)) +#else + checkBounds "CWchar" (wordRange 16) (approxBounds random trials (undefined:: CWchar)) +#endif + checkBounds "CSigAtomic" (intRange 32) (approxBounds random trials (undefined:: CSigAtomic)) checkBounds "CLLong" (intRange 64) (approxBounds random trials (undefined:: CLLong)) checkBounds "CULLong" (wordRange 64) (approxBounds random trials (undefined:: CULLong)) checkBounds "CIntPtr" (intRange nb) (approxBounds random trials (undefined:: CIntPtr)) @@ -122,8 +126,12 @@ main = checkBounds "CULong R" (False,0,200) (approxBounds (randomR (0,200)) trials (undefined:: CULong)) checkBounds "CPtrdiff R" (False,-100,100) (approxBounds (randomR (-100,100)) trials (undefined:: CPtrdiff)) checkBounds "CSize R" (False,0,200) (approxBounds (randomR (0,200)) trials (undefined:: CSize)) +#ifndef mingw32_HOST_OS checkBounds "CWchar R" (False,-100,100) (approxBounds (randomR (-100,100)) trials (undefined:: CWchar)) - checkBounds "CSigAtomic R" (False,-100,100) (approxBounds (randomR (-100,100)) trials (undefined:: CWchar)) +#else + checkBounds "CWchar R" (False,0,100) (approxBounds (randomR (0,100)) trials (undefined:: CWchar)) +#endif + checkBounds "CSigAtomic R" (False,-100,100) (approxBounds (randomR (-100,100)) trials (undefined:: CSigAtomic)) checkBounds "CLLong R" (False,-100,100) (approxBounds (randomR (-100,100)) trials (undefined:: CLLong)) checkBounds "CULLong R" (False,0,200) (approxBounds (randomR (0,200)) trials (undefined:: CULLong)) checkBounds "CIntPtr R" (False,-100,100) (approxBounds (randomR (-100,100)) trials (undefined:: CIntPtr)) _______________________________________________ Cvs-ghc mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-ghc
