31 lines
867 B
Haskell
31 lines
867 B
Haskell
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.Lexer as Lexer
|
|
import qualified Language.Wasm.Parser as Parser
|
|
import qualified Language.Wasm.Structure as Structure
|
|
|
|
import qualified Debug.Trace as Debug
|
|
|
|
isRight :: (Show b) => Either a b -> Bool
|
|
isRight (Right x) = x `seq` True
|
|
isRight _ = False
|
|
|
|
main :: IO ()
|
|
main = do
|
|
files <- Directory.listDirectory "tests/samples"
|
|
testCases <- (`mapM` files) $ \file -> do
|
|
content <- LBS.readFile $ "tests/samples/" ++ file
|
|
let result = Parser.parseModule <$> Lexer.scanner content
|
|
return $ testCase ("Parse module from core Test Suit: " ++ file) $
|
|
assertBool "Module parsed" $ isRight result
|
|
defaultMain $ testGroup "Syntax parsing" testCases
|