-- Refer to /work/Projects/MiniProjects/SybShape/tests for -- more code in first HUnit example (which itself is still -- just fudging it)! {-# LANGUAGE CPP #-} ------------------------------------------------------------------------------- module Tests ( tests, main_tests ) where ------------------------------------------------------------------------------- import Test.HUnit import System.IO.Unsafe ( unsafePerformIO ) #if HASKELL98_FRAGMENT import qualified Blah98 as Blah ( run_tests ) #else import qualified Blah ( run_tests ) #endif ------------------------------------------------------------------------------- main_tests :: IO Int main_tests = do Blah.run_tests return 0 ------------------------------------------------------------------------------- -- XXX A better way to "fail on purpose" is to have the test -- return ExitFailure, no?... --tests = (unsafePerformIO main_tests == output) ~? "FAILING ON PURPOSE TO DISPLAY THE LOGGED OUTPUT!" -- yeah but it wasn't printed tests = unsafePerformIO ( do n <- main_tests putStrLn "FAILING ON PURPOSE TO DISPLAY THE LOGGED OUTPUT!\n" return n ) ~=? output output = 1::Int -- force test to fail! (so we see the output!) --output = 0::Int --output = () -------------------------------------------------------------------------------