From f1eae1969af6155b8d3fa7a8ea3d00e77a1d91fc Mon Sep 17 00:00:00 2001 From: Ilya Rezvov Date: Mon, 19 Feb 2018 18:38:54 -0800 Subject: [PATCH] fix section parsing --- src/Language/Wasm/Binary.hs | 2 +- tests/Test.hs | 7 ++----- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/Language/Wasm/Binary.hs b/src/Language/Wasm/Binary.hs index 50f3222..c17a863 100644 --- a/src/Language/Wasm/Binary.hs +++ b/src/Language/Wasm/Binary.hs @@ -105,7 +105,7 @@ getSection sectionType parser def = do where parseSection op | op == 0 = skipCustomSection >> getSection sectionType parser def - | op == fromEnum sectionType = (getULEB128 :: Get Natural) >> parser + | op == fromEnum sectionType = getWord8 >> (getULEB128 :: Get Natural) >> parser | op > fromEnum sectionType = return def | otherwise = fail $ "Incorrect order of sections. Expected " ++ show sectionType diff --git a/tests/Test.hs b/tests/Test.hs index 6fa25a8..2838950 100644 --- a/tests/Test.hs +++ b/tests/Test.hs @@ -29,8 +29,7 @@ compile file = do main :: IO () main = do - -- files <- Directory.listDirectory "tests/samples" - let files = ["fact.wast"] + files <- Directory.listDirectory "tests/samples" compile "fact.wast" syntaxTestCases <- (`mapM` files) $ \file -> do content <- LBS.readFile $ "tests/samples/" ++ file @@ -40,9 +39,7 @@ main = do binaryTestCases <- (`mapM` files) $ \file -> do content <- LBS.readFile $ "tests/samples/" ++ file let Right mod = Parser.parseModule <$> Lexer.scanner content - let res = Binary.decodeModuleLazy $ Binary.dumpModuleLazy mod - print res - let Right mod' = res + let Right mod' = Binary.decodeModuleLazy $ Binary.dumpModuleLazy mod return $ testCase ("Dump module to binary and parse back: " ++ file) $ assertBool "Module matched" $ mod == mod' defaultMain $ testGroup "tests" [