Skip to content

Commit

Permalink
Switch to Halo2 for VampIR backend tests (#2216)
Browse files Browse the repository at this point in the history
* Closes #2214
  • Loading branch information
lukaszcz authored Jun 21, 2023
1 parent c47320b commit 5f35178
Show file tree
Hide file tree
Showing 7 changed files with 136 additions and 153 deletions.
39 changes: 4 additions & 35 deletions test/Core/Normalize/Positive.hs
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@ import Base
import Core.Normalize.Base

data PosTest = PosTest
{ _paramsNum :: Int,
_name :: String,
{ _name :: String,
_relDir :: Path Rel Dir,
_file :: Path Rel File,
_dataFile :: Path Rel File
Expand All @@ -23,8 +22,7 @@ root :: Path Abs Dir
root = relToProject $(mkRelDir "tests/VampIR/positive")

toTestDescr' ::
( Int ->
Path Abs File ->
( Path Abs File ->
Path Abs File ->
(String -> IO ()) ->
Assertion
Expand All @@ -38,11 +36,11 @@ toTestDescr' assertion PosTest {..} =
in TestDescr
{ _testName = _name,
_testRoot = tRoot,
_testAssertion = Steps $ assertion _paramsNum file' expected'
_testAssertion = Steps $ assertion file' expected'
}

toTestDescr :: PosTest -> TestDescr
toTestDescr = toTestDescr' (const coreNormalizeAssertion)
toTestDescr = toTestDescr' coreNormalizeAssertion

allTests :: TestTree
allTests =
Expand All @@ -53,175 +51,146 @@ allTests =
tests :: [PosTest]
tests =
[ PosTest
5
"Test001: not function"
$(mkRelDir "Core")
$(mkRelFile "test001.jvc")
$(mkRelFile "data/test001.json"),
PosTest
5
"Test002: pattern matching"
$(mkRelDir "Core")
$(mkRelFile "test002.jvc")
$(mkRelFile "data/test002.json"),
PosTest
6
"Test003: inductive types"
$(mkRelDir "Core")
$(mkRelFile "test003.jvc")
$(mkRelFile "data/test003.json"),
PosTest
5
"Test004: definitions"
$(mkRelDir "Core")
$(mkRelFile "test004.jvc")
$(mkRelFile "data/test004.json"),
PosTest
5
"Test005: basic arithmetic"
$(mkRelDir "Core")
$(mkRelFile "test005.jvc")
$(mkRelFile "data/test005.json"),
PosTest
9
"Test006: arithmetic"
$(mkRelDir "Core")
$(mkRelFile "test006.jvc")
$(mkRelFile "data/test006.json"),
PosTest
5
"Test007: single-constructor inductive types"
$(mkRelDir "Core")
$(mkRelFile "test007.jvc")
$(mkRelFile "data/test007.json"),
PosTest
5
"Test008: higher-order inductive types"
$(mkRelDir "Core")
$(mkRelFile "test008.jvc")
$(mkRelFile "data/test008.json"),
PosTest
9
"Test009: comparisons"
$(mkRelDir "Core")
$(mkRelFile "test009.jvc")
$(mkRelFile "data/test009.json"),
PosTest
5
"Test010: let"
$(mkRelDir "Core")
$(mkRelFile "test010.jvc")
$(mkRelFile "data/test010.json"),
PosTest
7
"Test011: functions returning functions with variable capture"
$(mkRelDir "Core")
$(mkRelFile "test011.jvc")
$(mkRelFile "data/test011.json"),
PosTest
5
"Test012: partial application"
$(mkRelDir "Core")
$(mkRelFile "test012.jvc")
$(mkRelFile "data/test012.json"),
PosTest
14
"Test013: mid-square hashing (unrolled)"
$(mkRelDir "Core")
$(mkRelFile "test013.jvc")
$(mkRelFile "data/test013.json"),
PosTest
11
"Test014: recursion"
$(mkRelDir "Core")
$(mkRelFile "test014.jvc")
$(mkRelFile "data/test014.json"),
PosTest
11
"Test015: tail recursion"
$(mkRelDir "Core")
$(mkRelFile "test015.jvc")
$(mkRelFile "data/test015.json"),
PosTest
11
"Test016: tail recursion: Fibonacci numbers in linear time"
$(mkRelDir "Core")
$(mkRelFile "test016.jvc")
$(mkRelFile "data/test016.json"),
PosTest
11
"Test017: recursion through higher-order functions"
$(mkRelDir "Core")
$(mkRelFile "test017.jvc")
$(mkRelFile "data/test017.json"),
PosTest
11
"Test018: tail recursion through higher-order functions"
$(mkRelDir "Core")
$(mkRelFile "test018.jvc")
$(mkRelFile "data/test018.json"),
PosTest
5
"Test019: higher-order functions"
$(mkRelDir "Core")
$(mkRelFile "test019.jvc")
$(mkRelFile "data/test019.json"),
PosTest
5
"Test020: functional queues"
$(mkRelDir "Core")
$(mkRelFile "test020.jvc")
$(mkRelFile "data/test020.json"),
PosTest
5
"Test021: polymorphism"
$(mkRelDir "Core")
$(mkRelFile "test021.jvc")
$(mkRelFile "data/test021.json"),
PosTest
12
"Test022: mutual recursion"
$(mkRelDir "Core")
$(mkRelFile "test022.jvc")
$(mkRelFile "data/test022.json"),
PosTest
5
"Test023: eta-expansion"
$(mkRelDir "Core")
$(mkRelFile "test023.jvc")
$(mkRelFile "data/test023.json"),
PosTest
5
"Test024: eta-expansion of polymorphic constructors"
$(mkRelDir "Core")
$(mkRelFile "test024.jvc")
$(mkRelFile "data/test024.json"),
PosTest
14
"Test025: mid-square hashing"
$(mkRelDir "Core")
$(mkRelFile "test025.jvc")
$(mkRelFile "data/test025.json"),
PosTest
5
"Test026: letrec"
$(mkRelDir "Core")
$(mkRelFile "test026.jvc")
$(mkRelFile "data/test026.json"),
PosTest
5
"Test027: type synonyms"
$(mkRelDir "Core")
$(mkRelFile "test027.jvc")
$(mkRelFile "data/test027.json"),
PosTest
5
"Test028: let hoisting"
$(mkRelDir "Core")
$(mkRelFile "test028.jvc")
$(mkRelFile "data/test028.json"),
PosTest
10
"Test029: let hoisting"
$(mkRelDir "Core")
$(mkRelFile "test029.jvc")
Expand Down
5 changes: 1 addition & 4 deletions test/Core/VampIR/LetHoist.hs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ fromTest :: PosTest -> TestTree
fromTest = mkTest . toTestDescr

toTestDescr :: PosTest -> TestDescr
toTestDescr = Normalize.toTestDescr' (const (coreVampIRAssertion [LetHoisting]))
toTestDescr = Normalize.toTestDescr' (coreVampIRAssertion [LetHoisting])

allTests :: TestTree
allTests =
Expand All @@ -21,19 +21,16 @@ allTests =
tests :: [PosTest]
tests =
[ PosTest
5
"Test010: Lets"
$(mkRelDir "Core")
$(mkRelFile "test010.jvc")
$(mkRelFile "data/test010.json"),
PosTest
5
"Test028: Let hoisting"
$(mkRelDir "Core")
$(mkRelFile "test028.jvc")
$(mkRelFile "data/test028.json"),
PosTest
5
"Test029: Let hoisting"
$(mkRelDir "Core")
$(mkRelFile "test029.jvc")
Expand Down
2 changes: 1 addition & 1 deletion test/Core/VampIR/Positive.hs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ fromTest :: PosTest -> TestTree
fromTest = mkTest . toTestDescr

toTestDescr :: PosTest -> TestDescr
toTestDescr = Normalize.toTestDescr' (const (coreVampIRAssertion toVampIRTransformations))
toTestDescr = Normalize.toTestDescr' (coreVampIRAssertion toVampIRTransformations)

allTests :: TestTree
allTests =
Expand Down
8 changes: 4 additions & 4 deletions test/VampIR/Compilation/Base.hs
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@ import Base
import Core.VampIR.Base (coreVampIRAssertion')
import Juvix.Compiler.Core
import Juvix.Compiler.Core.Data.TransformationId
import VampIR.Core.Base (vampirAssertion')
import VampIR.Core.Base (VampirBackend (..), vampirAssertion')

vampirCompileAssertion :: Int -> Path Abs File -> Path Abs File -> (String -> IO ()) -> Assertion
vampirCompileAssertion paramsNum mainFile dataFile step = do
vampirCompileAssertion :: Path Abs File -> Path Abs File -> (String -> IO ()) -> Assertion
vampirCompileAssertion mainFile dataFile step = do
step "Translate to JuvixCore"
entryPoint <- defaultEntryPointCwdIO mainFile
tab <- (^. coreResultTable) . snd <$> runIO' entryPoint upToCore
coreVampIRAssertion' tab toVampIRTransformations mainFile dataFile step
vampirAssertion' paramsNum tab dataFile step
vampirAssertion' VampirHalo2 tab dataFile step

vampirCompileErrorAssertion ::
Path Abs File ->
Expand Down
Loading

0 comments on commit 5f35178

Please sign in to comment.