on master help sign in
Clean up the output from the test suite
1c72d10Neil Mitchell
src/Main.hs+4−7
@@ -23,18 +23,15 @@ examples =
23main :: IO ()
23main :: IO ()
24main = do
24main = do
25 forM_ examples $ \(parses, src) -> do
25 forM_ examples $ \(parses, src) -> do
26− print src
27 case parse src of
26 case parse src of
28 Left err -> when parses $ fail $ "Unexpected parse failure, " ++ show err
27 Left err -> when parses $ fail $ "Unexpected parse failure, " ++ show err
29 Right doc -> do
28 Right doc -> do
30 unless parses $ fail "Unexpected parse success"
29 unless parses $ fail "Unexpected parse success"
31 checkFind doc
30 checkFind doc
32 let r = render doc
31 let r = render doc
33− print r
34− print $ rerender doc
35− when (r /= rerender doc) $ fail "Different rerender"
32+ r === rerender doc
36 let Right d = parse r
33 let Right d = parse r
37− when (r /= render d) $ fail "Different after rerendering"
34+ r === render d
38
35
39 let Right doc = parse "<test id=\"1\" extra=\"2\" /><test id=\"2\" /><b><test id=\"3\" /></b><test id=\"4\" /><test />"
36 let Right doc = parse "<test id=\"1\" extra=\"2\" /><test id=\"2\" /><b><test id=\"3\" /></b><test id=\"4\" /><test />"
40 map name (children doc) === ["test","test","b","test","test"]
37 map name (children doc) === ["test","test","b","test","test"]
@@ -52,7 +49,7 @@ main = do
52 [c] <- return $ childrenBy doc "test"
49 [c] <- return $ childrenBy doc "test"
53 forM_ attrs $ \a -> attributeBy c a === Just (Attribute a a)
50 forM_ attrs $ \a -> attributeBy c a === Just (Attribute a a)
54 forM_ ["missing","gone","nothing"] $ \a -> attributeBy c a === Nothing
51 forM_ ["missing","gone","nothing"] $ \a -> attributeBy c a === Nothing
55− putStrLn "Done"
52+ putStrLn "\nSuccess"
56
53
57
54
58checkFind :: Node -> IO ()
55checkFind :: Node -> IO ()
@@ -65,7 +62,7 @@ checkFind n = do
65 mapM_ checkFind $ children n
62 mapM_ checkFind $ children n
66
63
67
64
68−a === b = if a == b then putStrLn "success" else fail "mismatch"
65+a === b = if a == b then putChar '.' else fail "mismatch"
69
66
70rerender :: Node -> BS.ByteString
67rerender :: Node -> BS.ByteString
71rerender = inside
68rerender = inside