diff options
| author | Jan Tuomi <jans.tuomi@gmail.com> | 2022-12-11 18:45:46 +0200 |
|---|---|---|
| committer | Jan Tuomi <jans.tuomi@gmail.com> | 2022-12-11 18:48:28 +0200 |
| commit | e0e1c1d7573fc5251fe537314b6a6cfefae09e39 (patch) | |
| tree | b68787e42aff081fa23ad733ae73772a94fbc668 /test | |
| parent | 3f7d328d356c75c0ae57c67eb64fb5337361cce7 (diff) | |
Ensure that imports do not overwrite symbols
Diffstat (limited to 'test')
| -rw-r--r-- | test/Spec.hs | 9 | ||||
| -rw-r--r-- | test/TestUtils.hs | 3 | ||||
| -rw-r--r-- | test/scripts/import1.milch | 2 |
3 files changed, 12 insertions, 2 deletions
diff --git a/test/Spec.hs b/test/Spec.hs index e522c9c..0059ea7 100644 --- a/test/Spec.hs +++ b/test/Spec.hs @@ -144,7 +144,14 @@ e2eTests = testGroup "e2e" [ (gotASTs, _) <- expectSuccessL env $ runInlineScript "<test>" script1 let expectedLastAST = astBoolean True - assertEqual "" expectedLastAST (last gotASTs) + assertEqual "" expectedLastAST (last gotASTs), + + do let env = M.empty + script1 <- readFile "test/scripts/import1.milch" + got <- expectErrorL env $ runInlineScript "<test>" script1 + + let expected = "error: import shadows symbols: id" + assertBool "" (expected `L.isInfixOf` got) ] testGroup label xs = TestLabel label $ TestList $ map TestCase xs diff --git a/test/TestUtils.hs b/test/TestUtils.hs index 89bc6e6..42352e5 100644 --- a/test/TestUtils.hs +++ b/test/TestUtils.hs @@ -4,6 +4,7 @@ module TestUtils where import qualified Data.Map as M import qualified Data.Bifunctor as B import Utils +import Builtins ( builtinModule ) testConfig :: Config testConfig = Config { @@ -39,7 +40,7 @@ expectErrorL env lc = Right (val, _) -> error $ "unexpected success: " ++ show val makeEnv :: [(String, AST)] -> Env -makeEnv = M.fromList . map (B.second Regular) +makeEnv = M.fromList . map (B.second (\v -> (builtinModule, Regular v))) ast :: ASTNode -> AST ast node = makeNonsenseAST node diff --git a/test/scripts/import1.milch b/test/scripts/import1.milch new file mode 100644 index 0000000..bd3d111 --- /dev/null +++ b/test/scripts/import1.milch @@ -0,0 +1,2 @@ +(let id 123) +(import "core/common") |
