diff --git a/tests/Test.hs b/tests/Test.hs index 7cccffe..940c4c6 100644 --- a/tests/Test.hs +++ b/tests/Test.hs @@ -16,14 +16,20 @@ import qualified Data.List as List main :: IO () main = do - files <- filter (List.isSuffixOf ".wast") <$> Directory.listDirectory "tests/spec" - -- let files = ["const.wast"] - scriptTestCases <- (`mapM` files) $ \file -> do - test <- LBS.readFile ("tests/spec/" ++ file) - return $ testCase file $ do - case Wasm.parseScript test of - Right script -> - Script.runScript (\msg assert -> assertFailure ("Failed assert: " ++ msg ++ ". Assert " ++ show assert)) script - Left error -> - assertFailure $ "Failed to parse with error: " ++ show error - defaultMain $ testGroup "Wasm Core Test Suit" scriptTestCases + let groups = [ + ("Core Tests", "tests/spec"), + ("Reference Types Proposal", "tests/spec/proposals/reference-types") + ] + testGroups <- (`mapM` groups) $ \(groupName, dir) -> do + files <- filter (List.isSuffixOf ".wast") <$> Directory.listDirectory dir + -- let files = ["const.wast"] + scriptTestCases <- (`mapM` files) $ \file -> do + test <- LBS.readFile (dir ++ "/" ++ file) + return $ testCase file $ do + case Wasm.parseScript test of + Right script -> + Script.runScript (\msg assert -> assertFailure ("Failed assert: " ++ msg ++ ". Assert " ++ show assert)) script + Left error -> + assertFailure $ "Failed to parse with error: " ++ show error + return $ testGroup groupName scriptTestCases + defaultMain $ testGroup "Wasm Test Suit" testGroups diff --git a/tests/spec b/tests/spec index 9994915..01efde8 160000 --- a/tests/spec +++ b/tests/spec @@ -1 +1 @@ -Subproject commit 9994915e0cca8b42a16c577e4c85491822367dde +Subproject commit 01efde81028c5b0d099eb836645a2dc5e7755449