make check on Windows (MSYS), with patch

Brian Smith brianlsmith at gmail.com
Thu Jul 28 21:25:05 EDT 2005


I have attached a patch that allows "make check" run more or less
successfully on Windows. The patch converts Windows-style newlines to
Unix-style newlines from the output of the test, so that when the
actual output is compared to the expected output, the newline
differences don't set off false positives. It also fixes a couple
obvious problems with the tests to make them work on MSYS.

I have also attached the results of "make check." I went through all
the failures and gave some notes below.

./../src/hugs +q -w -pHugs: static/mod154.hs < nul

    This seems to be a known bug in Hugs since
    mod154.hs says "Hugs gets this wrong."

./../src/hugs +q -w -pHugs: rts/read.hs < rts/read.input

    The exponents on floating point numbers include an extra leading
    "0": "-3.10862446895044e-015" instead of "-3.10862446895044e-15"
    and  "2.384186e-007" instead of "2.384186e-07". GHCi strips 
    all the leading zeros from the exponents in both cases. So, there
    is a bug in the tests (doesn't properly take leading zeros into
    account in exponents) and/or Hugs (if the Haskell spec. requires
    leading zeros to be stripped like GHCi does).
    
./../src/hugs +q -w -pHugs: rts/arith.hs < rts/arith.input

    There is a difference "-0" vs. "0" that seems not totally
    unreasonable.
    The other difference "inf" vs. "1.#INF" seems like a bug in Hugs.
    
./../src/hugs +q -w -pHugs: ffi/Sin.hs < ffi/Sin.input

    The unexpected signal is troubling, but I don't know what the problem is.
    
./../src/hugs +q -w -pHugs: ffi/FileIO.hs < ffi/FileIO.input

    The unexpected error seems to be caused by the fact that
    "/tmp/test_write" is being opened, when this file doesn't exist
    normally on Windows. This is a bug in the test.

./../src/hugs +q -w -pHugs: ffi/Sparc.hs < ffi/Sparc.input

    I have no idea what is wrong.

./../src/ffihugs +q -w -pHugs: ffi/Callback.hs ffi/callback.c < nul

    This test assumes a case-sensitive file system that can
    distinguish between "Callback.c" and "callback.c." This test can be
    fixed by renaming "Callback.hs" to "CallbackTest.hs" and renaming
    callback.c to callback_c.c. Patch included, but you have to do
    the renaming of the file yourself.

    However, after getting it to build successfully, it still fails with
    output "unexpected signal" and exit code 1, and I have no idea why.
    
./../src/hugs +q -w -pHugs: System libs/system1.hs < libs/system1.input

    If I run this test directly it gives the expected output.
    But, inside of "make check" it fails because MSYS's SHELL is "sh.exe"
    instead of "sh." Patch included.

./../src/hugs +q -w -pHugs: Directory libs/dirTest.hs < libs/dirTest.input

    This test fails, but I think it is simply because NTFS doesn't support
    the same permission combinations as Unix/Linux. Either a Windows-specifc
    version should be written, or the test should be skipped on Windows.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: tests.patch
Type: application/octet-stream
Size: 2158 bytes
Desc: not available
Url : http://www.haskell.org//pipermail/cvs-hugs/attachments/20050728/44762f75/tests.obj
-------------- next part --------------
A non-text attachment was scrubbed...
Name: check.output1
Type: application/octet-stream
Size: 6978 bytes
Desc: not available
Url : http://www.haskell.org//pipermail/cvs-hugs/attachments/20050728/44762f75/check.obj


More information about the Cvs-hugs mailing list