wip: reader
build / build (push) Successful in 1m19s

This commit is contained in:
2026-08-21 01:07:26 -06:00
parent f9ed1274d9
commit 5200932944
59 changed files with 284 additions and 16 deletions
+33 -5
View File
@@ -16,6 +16,10 @@ import Data.Text qualified as T
import System.Exit (ExitCode(..))
import Test.Tasty.ExpectedFailure (expectFail, ignoreTestBecause)
import Control.DeepSeq (($!!))
import Text.Pretty.Simple (pShow, pShowNoColor)
import Control.Lens (strict, view)
import Gyehoek.Sexp.Read qualified as Read
import Effectful
brokenWasmTests :: List String
@@ -31,12 +35,17 @@ brokenStackifyTests =
-- , "callcc-nested1" -- requires closure-conversion
-- ]
brokenReaderTests =
[ "delimited-identifier"
, "string-line-continuation"
]
test_root :: IO TestTree
test_root = do
all_cases <- listDirectory "golden"
all_cases <- listDirectory "golden/exec"
let tests = all_cases
& fmap ("golden"</>)
testGroup "golden" <$> sequenceA
& fmap ("golden/exec"</>)
testGroup "execution" <$> sequenceA
[ ignoreTestBecause "wasm codegen is on the backburner"
<$> wasmTests tests
, stackifyTests tests
@@ -48,7 +57,7 @@ wasmTests :: List FilePath -> IO TestTree
wasmTests files = do
cmd <- getEnvDefault "GYEHOEK_RUNTIME"
"runtime/target/debug/gyehoek-runtime"
pure $ testGroup "wasm execution" $ files <&> \test ->
pure $ testGroup "wasm" $ files <&> \test ->
let testname = takeFileName test
scmfile = test </> "source.scm"
resultfile = test </> "exec"
@@ -64,7 +73,7 @@ wasmTests files = do
stackifyTests :: List FilePath -> IO TestTree
stackifyTests files = do
pure $ testGroup "stackified execution" $ files <&> \test ->
pure $ testGroup "stackified" $ files <&> \test ->
let testname = takeFileName test
scmfile = test </> "source.scm"
resultfile = test </> "exec"
@@ -81,3 +90,22 @@ stackifyTests files = do
resultfile
action
printProcResult
test_reader :: IO TestTree
test_reader = do
all_cases <- listDirectory "golden/reader"
let tests = all_cases
& fmap ("golden/reader"</>)
pure . testGroup "reader" $ tests <&> \test ->
let testname = takeFileName test
scmfile = test </> "source.scm"
resultfile = test </> "read"
action = runEff $ Read.readFile scmfile
in maybeBroken testname brokenReaderTests $ goldenVsAction
testname
resultfile
action
(view strict . pShowNoColor)
-- readTests files = pure . testGroup "reader" $ files <&> \test ->
-- let