@@ -605,18 +605,17 @@ unescapeString = do
605605
606606-- JSONTestSuite
607607
608−jsonTestSuiteTest :: FilePath -> L.ByteString -> Test
609−jsonTestSuiteTest path payload =
610− testCase fileName .
611− assertBool fileName $
612− case take 2 fileName of
608+jsonTestSuiteTest :: FilePath -> Test
609+jsonTestSuiteTest path = testCase fileName $ do
610+ payload <- L.readFile path
611+ let result = eitherDecode payload :: Either String Value
612+ assertBool fileName $ case take 2 fileName of
613613 "i_" -> isRight result
614614 "n_" -> isLeft result
615615 "y_" -> isRight result
616616 _ -> isRight result -- test_transform tests have inconsistent names
617617 where
618618 fileName = takeFileName path
619− result = eitherDecode payload :: Either String Value
620619
621620-- Build a collection of tests based on the current contents of the
622621-- JSONTestSuite test directories.
@@ -637,8 +636,7 @@ jsonTestSuite = do
637636 let ok name = takeExtension name == ".json" &&
638637 not (name `HashSet.member` blacklist)
639638 return . map (dir </>) . filter ok $ entries
640− fmap (testGroup "JSONTestSuite") . forM testPaths $ \path ->
641− jsonTestSuiteTest path <$> L.readFile path
639+ return $ testGroup "JSONTestSuite" $ map jsonTestSuiteTest testPaths
642640
643641-- The set expected-to-be-failing JSONTestSuite tests.
644642-- Not all of these failures are genuine bugs.