-
Notifications
You must be signed in to change notification settings - Fork 54
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
559e0f2
commit ba0faa8
Showing
8 changed files
with
95 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
module Package | ||
( allTests, | ||
) | ||
where | ||
|
||
import Base | ||
import Package.Negative qualified as N | ||
|
||
allTests :: TestTree | ||
allTests = testGroup "Package loading tests" [N.allTests] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
module Package.Negative where | ||
|
||
import Base | ||
import Juvix.Compiler.Pipeline.Package | ||
import Juvix.Compiler.Pipeline.Package.Loader.Error | ||
|
||
type FailMsg = String | ||
|
||
data NegTest a = NegTest | ||
{ _name :: String, | ||
_relDir :: Path Rel Dir, | ||
_checkErr :: a -> Maybe FailMsg | ||
} | ||
|
||
root :: Path Abs Dir | ||
root = relToProject $(mkRelDir "tests/negative/Package") | ||
|
||
testDescr :: (Typeable a) => NegTest a -> TestDescr | ||
testDescr NegTest {..} = | ||
let tRoot = root <//> _relDir | ||
in TestDescr | ||
{ _testName = _name, | ||
_testRoot = tRoot, | ||
_testAssertion = Single $ do | ||
res <- withTempDir' (runM . runError . runFilesIO . readPackage tRoot . CustomBuildDir . Abs) | ||
case mapLeft fromJuvixError res of | ||
Left (Just err) -> whenJust (_checkErr err) assertFailure | ||
Left Nothing -> assertFailure "An error ocurred but it was not when reading the package." | ||
Right {} -> assertFailure "There was no error when reading the package" | ||
} | ||
|
||
allTests :: TestTree | ||
allTests = | ||
testGroup | ||
"Package loading negative tests" | ||
( map (mkTest . testDescr) packageErrorTests | ||
) | ||
|
||
wrongError :: Maybe FailMsg | ||
wrongError = Just "Incorrect error" | ||
|
||
packageErrorTests :: [NegTest PackageLoaderError] | ||
packageErrorTests = | ||
[ NegTest | ||
"package YAML parse error" | ||
$(mkRelDir "YamlParseError") | ||
$ \case | ||
PackageLoaderError _ ErrPackageYamlParseError {} -> Nothing | ||
_ -> wrongError, | ||
NegTest | ||
"lockfile YAML parse error" | ||
$(mkRelDir "InvalidLockfile") | ||
$ \case | ||
PackageLoaderError _ ErrLockfileYamlParseError {} -> Nothing | ||
_ -> wrongError, | ||
NegTest | ||
"package YAML invalid version" | ||
$(mkRelDir "YamlInvalidVersion") | ||
$ \case | ||
PackageLoaderError _ ErrVersionParseError {} -> Nothing | ||
_ -> wrongError, | ||
NegTest | ||
"package YAML duplicate dependencies" | ||
$(mkRelDir "YamlDuplicateDependencies") | ||
$ \case | ||
PackageLoaderError _ ErrDuplicateDependencyError {} -> Nothing | ||
_ -> wrongError | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
dependencies: 123 |
Empty file.
10 changes: 10 additions & 0 deletions
10
tests/negative/Package/YamlDuplicateDependencies/juvix.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
name: abc | ||
dependencies: | ||
- git: | ||
url: repo | ||
name: dep | ||
ref: abc | ||
- git: | ||
url: repo | ||
name: dep | ||
ref: abc |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
name: abc | ||
version: def |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
name: 123 |