on master help sign in
Fix config test
7918134Eric Mertens
src/Graphics/Vty/Config.hs+2−2
@@ -232,8 +232,8 @@ ignoreLine = void $ manyTill anyChar newline
232parseConfig :: Parser Config
232parseConfig :: Parser Config
233parseConfig = liftM mconcat $ many $ do
233parseConfig = liftM mconcat $ many $ do
234 P.whiteSpace configLexer
234 P.whiteSpace configLexer
235− let directives = [mapDecl, debugLogDecl]
235+ let directives = [try mapDecl, try debugLogDecl]
236− try (choice directives) <|> (ignoreLine >> return def)
236+ choice directives <|> (ignoreLine >> return def)
237
237
238class Parse a where parseValue :: Parser a
238class Parse a where parseValue :: Parser a
239instance Parse Char where parseValue = P.charLiteral configLexer
239instance Parse Char where parseValue = P.charLiteral configLexer
test/VerifyConfig.hs+7−5
@@ -6,13 +6,14 @@ import Graphics.Vty.Input.Events
6
6
7import Data.Default
7import Data.Default
8import Data.String.QQ
8import Data.String.QQ
9+import qualified Data.ByteString.Char8 as B
9
10
10import Test.Framework
11import Test.Framework
11import Test.Framework.Providers.HUnit
12import Test.Framework.Providers.HUnit
12import Test.HUnit hiding (Test)
13import Test.HUnit hiding (Test)
13
14
14−exampleConfig :: String
15+exampleConfig :: B.ByteString
15−exampleConfig = [s|
16+exampleConfig = B.pack [s|
16-- comments should be ignored.
17-- comments should be ignored.
17map _ "\ESC[B" KUp []
18map _ "\ESC[B" KUp []
18askfjla dfasjdflk jasdlkfj asdfj -- lines failing parse should be ignored
19askfjla dfasjdflk jasdlkfj asdfj -- lines failing parse should be ignored
@@ -33,9 +34,10 @@ exampleConfigConfig = def
33 }
34 }
34
35
35exampleConfigParses :: IO ()
36exampleConfigParses :: IO ()
37+exampleConfigParses =
36−exampleConfigParses = assertEqual "example config parses as expected"
38+ assertEqual "example config parses as expected"
37− exampleConfigConfig
39+ exampleConfigConfig
38− (runParseConfig "exampleConfig" exampleConfig)
40+ (runParseConfig "exampleConfig" exampleConfig)
39
41
40main :: IO ()
42main :: IO ()
41main = defaultMain
43main = defaultMain