wasm-1.1.0: tests/Test.hs
{-# LANGUAGE OverloadedStrings #-}
module Main (
main
) where
import Test.Tasty
import Test.Tasty.HUnit
import qualified System.Directory as Directory
import qualified Data.ByteString.Lazy as LBS
import qualified Language.Wasm as Wasm
import qualified Language.Wasm.Script as Script
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