singletons-base-3.5: tests/SingletonsBaseTestSuite.hs
module Main (
main
) where
import Test.Tasty ( DependencyType(..), TestTree
, after, defaultMain, testGroup )
import SingletonsBaseTestSuiteUtils ( compileAndDumpStdTest, compileAndDumpTest
, testCompileAndDumpGroup, ghcOpts )
main :: IO ()
main = defaultMain tests
tests :: TestTree
tests =
testGroup "Testsuite" $ [
testCompileAndDumpGroup "Singletons"
[ compileAndDumpStdTest "Nat"
, compileAndDumpStdTest "Empty"
, compileAndDumpStdTest "Maybe"
, compileAndDumpStdTest "BoxUnBox"
, afterSingletonsNat .
compileAndDumpStdTest "Operators"
, afterSingletonsNat .
compileAndDumpStdTest "HigherOrder"
, compileAndDumpStdTest "Contains"
, afterSingletonsNat .
compileAndDumpStdTest "AsPattern"
, afterSingletonsNat .
compileAndDumpStdTest "DataValues"
, after AllSucceed "$3 == \"Empty\"" .
after AllSucceed "$3 == \"Operators\"" .
compileAndDumpStdTest "EqInstances"
, compileAndDumpStdTest "CaseExpressions"
, afterSingletonsNat .
compileAndDumpStdTest "Star"
, afterSingletonsNat .
compileAndDumpStdTest "ReturnFunc"
, compileAndDumpStdTest "Lambdas"
, afterSingletonsNat .
compileAndDumpStdTest "LambdasComprehensive"
, compileAndDumpStdTest "Error"
, compileAndDumpStdTest "TopLevelPatterns"
, afterSingletonsNat .
compileAndDumpStdTest "LetStatements"
, compileAndDumpStdTest "LambdaCase"
, afterSingletonsNat .
compileAndDumpStdTest "Sections"
, afterSingletonsNat .
compileAndDumpStdTest "PatternMatching"
, compileAndDumpStdTest "Records"
, compileAndDumpStdTest "T29"
, compileAndDumpStdTest "T33"
, compileAndDumpStdTest "T54"
, afterSingletonsNat .
compileAndDumpStdTest "Classes"
, afterSingletonsNat .
after AllSucceed "$3 == \"Classes\"" .
compileAndDumpStdTest "Classes2"
, compileAndDumpStdTest "FunDeps"
, compileAndDumpStdTest "T78"
, compileAndDumpStdTest "T89"
, compileAndDumpStdTest "OrdDeriving"
, compileAndDumpStdTest "BoundedDeriving"
, compileAndDumpStdTest "BadBoundedDeriving"
, compileAndDumpStdTest "EnumDeriving"
, compileAndDumpStdTest "BadEnumDeriving"
, compileAndDumpStdTest "Fixity"
, compileAndDumpStdTest "Undef"
, compileAndDumpStdTest "T124"
, compileAndDumpStdTest "T136"
, compileAndDumpStdTest "T136b"
, compileAndDumpStdTest "T153"
, compileAndDumpStdTest "T157"
, compileAndDumpStdTest "T159"
, compileAndDumpStdTest "T167"
, compileAndDumpStdTest "T145"
, compileAndDumpStdTest "PolyKinds"
, compileAndDumpStdTest "PolyKindsApp"
, afterSingletonsNat .
compileAndDumpStdTest "T150"
, compileAndDumpStdTest "T160"
, compileAndDumpStdTest "T163"
, compileAndDumpStdTest "T166"
, compileAndDumpStdTest "T172"
, compileAndDumpStdTest "T175"
, compileAndDumpStdTest "T176"
, compileAndDumpStdTest "T178"
, compileAndDumpStdTest "T183"
, compileAndDumpStdTest "T184"
, compileAndDumpStdTest "T187"
, compileAndDumpStdTest "T190"
, compileAndDumpStdTest "ShowDeriving"
, compileAndDumpStdTest "EmptyShowDeriving"
, compileAndDumpStdTest "StandaloneDeriving"
, compileAndDumpStdTest "T197"
, compileAndDumpStdTest "T197b"
, compileAndDumpStdTest "T200"
, compileAndDumpStdTest "T204"
, compileAndDumpStdTest "T206"
, compileAndDumpStdTest "T209"
, compileAndDumpStdTest "T216"
, compileAndDumpStdTest "T226"
, compileAndDumpStdTest "T229"
, compileAndDumpStdTest "T249"
, compileAndDumpStdTest "OverloadedStrings"
, compileAndDumpStdTest "T271"
, compileAndDumpStdTest "T287"
, compileAndDumpStdTest "TypeRepTYPE"
, compileAndDumpStdTest "T296"
, compileAndDumpStdTest "T297"
, compileAndDumpStdTest "T312"
, compileAndDumpStdTest "T313"
, compileAndDumpStdTest "T316"
, compileAndDumpStdTest "T322"
, compileAndDumpStdTest "T326"
, compileAndDumpStdTest "NatSymbolReflexive"
, compileAndDumpStdTest "T323"
, compileAndDumpStdTest "T332"
, compileAndDumpStdTest "T342"
, compileAndDumpStdTest "FunctorLikeDeriving"
, compileAndDumpStdTest "T353"
, compileAndDumpStdTest "T358"
, compileAndDumpStdTest "T367"
, compileAndDumpStdTest "T371"
, compileAndDumpStdTest "T376"
, compileAndDumpStdTest "T378a"
, afterSingletonsNat .
compileAndDumpStdTest "T378b"
, compileAndDumpStdTest "T401"
, compileAndDumpStdTest "T401b"
, compileAndDumpStdTest "T402"
, compileAndDumpStdTest "T410"
, compileAndDumpStdTest "T412"
, compileAndDumpStdTest "T414"
, compileAndDumpStdTest "T433"
, compileAndDumpStdTest "T443"
, afterSingletonsNat .
compileAndDumpStdTest "T445"
, compileAndDumpStdTest "T450"
, compileAndDumpStdTest "T453"
, compileAndDumpStdTest "NegativeLiterals"
, compileAndDumpStdTest "T470"
, compileAndDumpStdTest "T480"
, compileAndDumpStdTest "T487"
, compileAndDumpStdTest "T489"
, compileAndDumpStdTest "T492"
, compileAndDumpStdTest "Natural"
, compileAndDumpStdTest "T511"
, compileAndDumpStdTest "T536"
, compileAndDumpStdTest "T555"
, compileAndDumpStdTest "T559"
, compileAndDumpStdTest "T563"
, compileAndDumpStdTest "T565"
, compileAndDumpStdTest "T567"
, compileAndDumpStdTest "T571"
, compileAndDumpStdTest "T581"
, compileAndDumpStdTest "T582"
, compileAndDumpStdTest "T585"
, compileAndDumpStdTest "TypeAbstractions"
],
testCompileAndDumpGroup "Promote"
[ compileAndDumpStdTest "Constructors"
, compileAndDumpStdTest "GenDefunSymbols"
, afterSingletonsNat .
compileAndDumpStdTest "Newtypes"
, compileAndDumpStdTest "Pragmas"
, compileAndDumpStdTest "Prelude"
, compileAndDumpStdTest "T180"
, compileAndDumpStdTest "T361"
, compileAndDumpStdTest "T601a"
, compileAndDumpStdTest "T605"
, compileAndDumpStdTest "T613"
],
testGroup "Database client"
[ compileAndDumpTest "GradingClient/Database" ghcOpts
, after AllSucceed "$3 == \"Database\"" $
compileAndDumpTest "GradingClient/Main" ghcOpts
],
testCompileAndDumpGroup "InsertionSort"
[ compileAndDumpStdTest "InsertionSortImp"
]
]
afterSingletonsNat :: TestTree -> TestTree
afterSingletonsNat = after AllSucceed "$3 == \"Nat\""