Skip to content

Commit f0e2ee8

Browse files
authored
Build with Nix (#2259)
1 parent 2dee3f5 commit f0e2ee8

File tree

25 files changed

+69
-215
lines changed

25 files changed

+69
-215
lines changed

.github/workflows/test.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
name: "Test"
2+
on:
3+
pull_request:
4+
push:
5+
jobs:
6+
tests:
7+
runs-on: ubuntu-latest
8+
steps:
9+
- uses: actions/[email protected]
10+
with:
11+
submodules: recursive
12+
- uses: cachix/install-nix-action@v11
13+
- uses: cachix/cachix-action@v7
14+
with:
15+
name: runtimeverification
16+
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}'
17+
- run: nix-build -A kore -A project.kore.checks
18+
- run: nix-shell --run "echo OK"

default.nix

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ let
1212
inherit (haskell-nix) nixpkgsArgs;
1313
args = nixpkgsArgs // { };
1414
in import haskell-nix.sources.nixpkgs-2003 args;
15+
inherit (pkgs) lib;
1516

1617
local =
1718
if builtins.pathExists ./local.nix
@@ -34,6 +35,11 @@ let
3435
enableLibraryProfiling = profiling;
3536
enableExecutableProfiling = profiling;
3637
profilingDetail = "toplevel-functions";
38+
39+
# Add Z3 to PATH for unit tests.
40+
components.tests.kore-test.preCheck = ''
41+
export PATH="$PATH''${PATH:+:}${lib.getBin pkgs.z3}/bin"
42+
'';
3743
};
3844
}
3945
];

kore/test/Paths.hs

Lines changed: 0 additions & 49 deletions
This file was deleted.

kore/test/Test/Kore/Builtin/AssocComm/CeilSimplifier.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -360,7 +360,7 @@ makeEvaluate termLike = do
360360
return actualPredicates
361361
where
362362
makeEvaluate' =
363-
runSimplifierNoSMT mockEnv
363+
runSimplifier mockEnv
364364
. Ceil.makeEvaluate SideCondition.top
365365
. Pattern.fromTermLike
366366
mockEnv = Mock.env { simplifierAxioms = mempty }

kore/test/Test/Kore/Builtin/Map.hs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ import qualified Test.Kore.Builtin.List as Test.List
128128
import qualified Test.Kore.Builtin.Set as Test.Set
129129
import qualified Test.Kore.Step.MockSymbols as Mock
130130
import Test.Kore.Step.Simplification
131-
( runSimplifierNoSMT
131+
( runSimplifier
132132
)
133133
import Test.SMT
134134
import Test.Tasty.HUnit.Ext
@@ -1384,7 +1384,7 @@ test_inKeys =
13841384
output <-
13851385
Map.evalInKeys boolSort [termKey, termMap]
13861386
& runMaybeT
1387-
& runSimplifierNoSMT testEnv
1387+
& runSimplifier testEnv
13881388
case output of
13891389
Nothing -> return Nothing
13901390
Just result -> do

kore/test/Test/Kore/Builtin/Set.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -489,7 +489,7 @@ test_difference_symbolic =
489489
actual <-
490490
Set.evalDifference (Application differenceSetSymbol args)
491491
& runMaybeT
492-
& runSimplifierNoSMT testEnv
492+
& runSimplifier testEnv
493493
assertEqual "" expect actual
494494

495495
test_toList :: TestTree

kore/test/Test/Kore/Equation/Application.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ attemptEquation
7979
-> IO AttemptEquationResult'
8080
attemptEquation sideCondition termLike equation =
8181
Equation.attemptEquation sideCondition termLike' equation
82-
& runSimplifier Mock.env
82+
& runSimplifierSMT Mock.env
8383
where
8484
termLike' = TermLike.mapVariables Target.mkUnifiedNonTarget termLike
8585

kore/test/Test/Kore/Parser/Regression.hs

Lines changed: 0 additions & 123 deletions
This file was deleted.

kore/test/Test/Kore/Reachability/Claim.hs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ import qualified Logic
5757

5858
import qualified Test.Kore.Step.MockSymbols as Mock
5959
import Test.Kore.Step.Simplification
60-
( runSimplifier
60+
( runSimplifierSMT
6161
)
6262

6363
test_checkImplication :: [TestTree]
@@ -252,7 +252,7 @@ test_simplifyRightHandSide =
252252
id
253253
SideCondition.top
254254
claim
255-
& runSimplifier Mock.env
255+
& runSimplifierSMT Mock.env
256256
assertEqual "" expected actual
257257
]
258258

@@ -281,4 +281,4 @@ checkImplication :: ClaimPattern -> IO [CheckImplicationResult ClaimPattern]
281281
checkImplication claim =
282282
checkImplicationWorker claim
283283
& Logic.observeAllT
284-
& runSimplifier Mock.env
284+
& runSimplifierSMT Mock.env

kore/test/Test/Kore/Reachability/OnePathStrategy.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -863,7 +863,7 @@ runSteps
863863
strategy'
864864
=
865865
(<$>) picker
866-
$ runSimplifier mockEnv
866+
$ runSimplifierSMT mockEnv
867867
$ fromMaybe (error "Unexpected missing tree") . graphFilter
868868
<$> runStrategy
869869
breadthLimit

kore/test/Test/Kore/Reachability/Prove.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -744,7 +744,7 @@ proveClaims breadthLimit depthLimit axioms claims alreadyProven =
744744
(Axioms axioms)
745745
(AlreadyProven (map unparseToText2 alreadyProven))
746746
(ToProve (map applyDepthLimit . selectUntrusted $ claims))
747-
& runSimplifier mockEnv
747+
& runSimplifierSMT mockEnv
748748
where
749749
mockEnv = Mock.env
750750
applyDepthLimit claim = (claim, depthLimit)

kore/test/Test/Kore/Step.hs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -374,7 +374,7 @@ test_SMT =
374374
-- Normal axiom: constr10(b) => a | f(b) < 0
375375
-- Start pattern: constr10(b) | f(b) < 0
376376
-- Expected: a | f(b) < 0
377-
[ _actual1 ] <- runStepMockEnv
377+
[ _actual1 ] <- runStepSMT
378378
(smtPattern Mock.b PredicatePositive)
379379
[ mkRewritingRule $ RewriteRule RulePattern
380380
{ left = smtTerm (TermLike.mkElemVar Mock.x)
@@ -405,7 +405,7 @@ test_SMT =
405405
-- Normal axiom: constr10(b) => a | f(b) < 0
406406
-- Start pattern: constr10(b) | f(b) < 0
407407
-- Expected: a | f(b) < 0
408-
[ _actual1 ] <- runStepMockEnv
408+
[ _actual1 ] <- runStepSMT
409409
Conditional
410410
{ term = Mock.functionalConstr10 Mock.b
411411
, predicate = makeEqualsPredicate_
@@ -476,7 +476,7 @@ mockMetadataTools = MetadataTools
476476
, sortConstructors = undefined
477477
}
478478

479-
mockEnv :: Env Simplifier
479+
mockEnv :: MonadSimplify simplifier => Env simplifier
480480
mockEnv = Mock.env { metadataTools = mockMetadataTools }
481481

482482
sigmaSymbol :: Symbol
@@ -497,8 +497,8 @@ axiomMetaSigmaId :: RewriteRule VariableName
497497
axiomMetaSigmaId =
498498
RewriteRule $ rulePattern
499499
(metaSigma
500-
(mkElemVar $ x1 Mock.testSort)
501-
(mkElemVar $ x1 Mock.testSort)
500+
(mkElemVar $ x1 Mock.testSort)
501+
(mkElemVar $ x1 Mock.testSort)
502502
)
503503
(mkElemVar $ x1 Mock.testSort)
504504

@@ -537,15 +537,15 @@ runStep
537537
-> IO [Pattern RewritingVariableName]
538538
runStep configuration axioms =
539539
(<$>) pickFinal
540-
$ runSimplifier mockEnv
540+
$ runSimplifierSMT mockEnv
541541
$ runStrategy Unlimited transitionRule [priorityAllStrategy axioms] (mkRewritingPattern configuration)
542542

543-
runStepMockEnv
543+
runStepSMT
544544
:: Pattern VariableName
545545
-- ^left-hand-side of unification
546546
-> [RewriteRule RewritingVariableName]
547547
-> IO [Pattern RewritingVariableName]
548-
runStepMockEnv configuration axioms =
548+
runStepSMT configuration axioms =
549549
(<$>) pickFinal
550-
$ runSimplifier Mock.env
550+
$ runSimplifierSMT Mock.env
551551
$ runStrategy Unlimited transitionRule [priorityAllStrategy axioms] (mkRewritingPattern configuration)

kore/test/Test/Kore/Step/Axiom/EvaluationStrategy.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -637,5 +637,5 @@ evaluateWithPredicate
637637
-> Predicate VariableName
638638
-> IO CommonAttemptedAxiom
639639
evaluateWithPredicate (BuiltinAndAxiomSimplifier simplifier) term predicate =
640-
runSimplifier Mock.env
640+
runSimplifierSMT Mock.env
641641
$ simplifier term (SideCondition.assumeTruePredicate predicate)

kore/test/Test/Kore/Step/Axiom/Matcher.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1049,7 +1049,7 @@ match
10491049
match first second =
10501050
runSimplifier Mock.env matchResult
10511051
where
1052-
matchResult :: Simplifier MatchResult
1052+
matchResult :: SimplifierT NoSMT MatchResult
10531053
matchResult = matchIncremental first second
10541054

10551055
withMatch

kore/test/Test/Kore/Step/Axiom/Registry.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -400,7 +400,7 @@ testProcessedAxiomPatterns =
400400
testMetadataTools :: SmtMetadataTools Attribute.Symbol
401401
testMetadataTools = MetadataTools.build testIndexedModule
402402

403-
testEnv :: Env Simplifier
403+
testEnv :: Env (SimplifierT NoSMT)
404404
testEnv =
405405
Mock.env
406406
{ metadataTools = testMetadataTools

kore/test/Test/Kore/Step/Function/Evaluator.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,5 +119,5 @@ simplifierAxioms = Map.fromList [ (fId, fEvaluator) ]
119119
where
120120
fId = Axiom.Identifier.Application (TermLike.symbolConstructor fSymbol)
121121

122-
env :: Test.Env Test.Simplifier
122+
env :: Test.Env (Test.SimplifierT Test.NoSMT)
123123
env = Mock.env { Test.simplifierAxioms = simplifierAxioms }

0 commit comments

Comments
 (0)