Test NSelect reduction
This commit is contained in:
parent
32fa31353c
commit
721ddd4f53
|
@ -623,6 +623,7 @@ test-suite hnix-tests
|
|||
ParserTests
|
||||
PrettyParseTests
|
||||
PrettyTests
|
||||
ReduceExprTests
|
||||
TestCommon
|
||||
Paths_hnix
|
||||
hs-source-dirs:
|
||||
|
|
|
@ -26,6 +26,7 @@ import Nix.Value
|
|||
import qualified NixLanguageTests
|
||||
import qualified ParserTests
|
||||
import qualified PrettyTests
|
||||
import qualified ReduceExprTests
|
||||
-- import qualified PrettyParseTests
|
||||
import System.Directory
|
||||
import System.Environment
|
||||
|
@ -98,7 +99,8 @@ main = do
|
|||
| isJust hpackTestsEnv ] ++
|
||||
[ ParserTests.tests
|
||||
, EvalTests.tests
|
||||
, PrettyTests.tests ] ++
|
||||
, PrettyTests.tests
|
||||
, ReduceExprTests.tests] ++
|
||||
-- [ PrettyParseTests.tests
|
||||
-- (fromIntegral (read (fromMaybe "0" prettyTestsEnv) :: Int)) ] ++
|
||||
[ evalComparisonTests ] ++
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
{-# LANGUAGE OverloadedStrings #-}
|
||||
{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
|
||||
module ReduceExprTests (tests) where
|
||||
import Data.Fix
|
||||
import Test.Tasty
|
||||
import Test.Tasty.HUnit
|
||||
|
||||
import Nix.Atoms
|
||||
import Nix.Expr.Types
|
||||
import Nix.Expr.Types.Annotated
|
||||
import Nix.Reduce (reduceExpr)
|
||||
import Nix.Parser
|
||||
|
||||
|
||||
tests :: TestTree
|
||||
tests = testGroup "Expr Reductions"
|
||||
[ testCase "Non nested NSelect on set should be reduced" $
|
||||
cmpReduceResult nonNestedSelect nonNestedSelectExpect
|
||||
]
|
||||
|
||||
cmpReduceResult :: Result NExprLoc -> NExpr -> Assertion
|
||||
cmpReduceResult r e = do
|
||||
r <- assertSucc r
|
||||
r <- stripAnnotation <$> reduceExpr Nothing r
|
||||
r @?= e
|
||||
where
|
||||
assertSucc (Success a) = pure a
|
||||
assertSucc (Failure d) = assertFailure $ show d
|
||||
|
||||
nonNestedSelect :: Result NExprLoc
|
||||
nonNestedSelect = parseNixTextLoc "{a=42;}.a"
|
||||
|
||||
nonNestedSelectExpect :: NExpr
|
||||
nonNestedSelectExpect = Fix . NConstant $ NInt 42
|
Loading…
Reference in New Issue