
More feedback... basically, it works! I get one batch of warnings when compiling: [[ Compiling Distribution.Package ( ../Distribution/Package.hs, ../Distribution/Pac kage.o ) ../Distribution/Package.hs:317: Warning: Pattern match(es) are non-exhaustive In a record-update construct: Patterns not matched: NoVersion NumberedVersion _ _ _ ../Distribution/Package.hs:319: Warning: Pattern match(es) are non-exhaustive In a record-update construct: Patterns not matched: NoVersion NumberedVersion _ _ _ ../Distribution/Package.hs:321: Warning: Pattern match(es) are non-exhaustive In a record-update construct: Patterns not matched: NoVersion NumberedVersion _ _ _ ../Distribution/Package.hs:324: Warning: Pattern match(es) are non-exhaustive In a record-update construct: Patterns not matched: NoVersion DateVersion _ _ _ ../Distribution/Package.hs:326: Warning: Pattern match(es) are non-exhaustive In a record-update construct: Patterns not matched: NoVersion DateVersion _ _ _ ../Distribution/Package.hs:328: Warning: Pattern match(es) are non-exhaustive In a record-update construct: Patterns not matched: NoVersion DateVersion _ _ _ Compiling Main ( Test.hs, Test.o ) Linking ... ]] ... I get one failure from the unit test: [[ C:\DEV\Haskell\lib\LibInfrastructure\Distribution>testDist Cases: 9 Tried: 9 Errors: 0 Failures: 0 Cases: 28 Tried: 28 Errors: 0 Failures: 0 'diff' is not recognized as an internal or external command, operable program or batch file. ### Failure in: 1:package diff:'diff /tmp/xmlTest /tmp/xmlTestOut' failed expected: ExitFailure 1 but got: ExitSuccess Cases: 2 Tried: 2 Errors: 0 Failures: 1 ]] ... This looks like a unix-specific command. I was able to get the test suite to run successfully by changing test.hs thus: [[ hUnitTests :: [Test] hUnitTests = Distribution.Package.hunitTests ++ Distribution.Version.hunitTests testFilename1 :: String testFilename1 = "testDist\\xmlTest.tmp" testFilename2 :: String testFilename2 = "testDist\\xmlTestOut.tmp" diffCmd :: String diffCmd = "fc " ++ testFilename1 ++ " " ++ testFilename2 ]] Giving: [[ C:\DEV\Haskell\lib\LIBINF~1\DISTRI~1>testDist Cases: 9 Tried: 9 Errors: 0 Failures: 0 Cases: 28 Tried: 28 Errors: 0 Failures: 0 Comparing files TESTDIST\xmlTest.tmp and TESTDIST\XMLTESTOUT.TMP FC: no differences encountered Cases: 2 Tried: 2 Errors: 0 Failures: 0 ]] Rather than depending on an external file compare utility, would it not be easier to use a test something like: readFile(testFilename1) == readFile(testFilename2) ? For example: [[ testFilename1 :: String testFilename1 = "testDist/xmlTest.tmp" testFilename2 :: String testFilename2 = "testDist/xmlTestOut.tmp" main :: IO () main = do runTestTT $ test Distribution.Package.hunitTests runTestTT $ test Distribution.Version.hunitTests writeXml testFilename1 testPackage2 e <- (readXml testFilename1::IO PackageConfig) writeXml testFilename2 e f1 <- readFile(testFilename1) f2 <- readFile(testFilename2) runTestTT $ test ["write and read" ~: "failed" ~: show e ~=? show testPackage2, "file compare" ~: f1 ~=? f2 ] return () ]] gives: [[ C:\DEV\Haskell\lib\LIBINF~1\DISTRI~1>testDist Cases: 9 Tried: 9 Errors: 0 Failures: 0 Cases: 28 Tried: 28 Errors: 0 Failures: 0 Cases: 2 Tried: 2 Errors: 0 Failures: 0 ]] ... The Windows batch file I used to build this is this: [[ set WARNINGS=-Wall set PACKAGES=-package HaXml -package data set HUNIT=C:\DEV\Haskell\lib\HUnit\ set GHC=C:\DEV\ghc\ghc-6.2\bin\ghc if "%1"=="clean" goto clean :all mkdir testDist %GHC% -fglasgow-exts %WARNINGS% -i%HUNIT%;.;.. -package HaXml --make Test.hs -o testDist goto exit :clean DEL *.hi DEL *.o DEL /Q testDist\*.* :exit ]] ... See my separate message about building HaXml on windows. #g -- ------------ Graham Klyne For email: http://www.ninebynine.org/#Contact

Graham Klyne
More feedback... basically, it works!
Cool.
This looks like a unix-specific command. I was able to get the test suite to run successfully by changing test.hs thus:
I fixed that basically with the changes you provided. Let me know if windows likes this.
The Windows batch file I used to build this is this:
Thanks. I added a similar one to the utils/haskell-config directory. I called them both build.bat. Let me know if they still work. Can you provide a top level batch file that executes both of the inner batch files?
[[ set WARNINGS=-Wall set PACKAGES=-package HaXml -package data set HUNIT=C:\DEV\Haskell\lib\HUnit\ set GHC=C:\DEV\ghc\ghc-6.2\bin\ghc
if "%1"=="clean" goto clean
:all mkdir testDist
I deleted this line, since testDist is the name of the executable. I now use {{{createDirectory "tmp"}}} directly in Test.hs and delete the files after. There's a new tarball available and I updated the mirror. Thanks a lot! peace, isaac
participants (2)
-
Graham Klyne
-
Isaac Jones