stgi-1.1: test/Testsuite/Main.hs
module Main (main) where
import Control.Concurrent
import Data.Monoid
import Test.Tasty
import Test.Tasty.Ingredients.Rerun
import Test.Tasty.Options
import Test.Tasty.QuickCheck
import Test.Tasty.Runners
import Test.Tasty.Runners.Html
import qualified Test.ExamplePrograms as ExamplePrograms
import qualified Test.Language as Language
import qualified Test.Machine as Machine
import qualified Test.Marshal as Marshal
import qualified Test.Parser as Parser
import qualified Test.Prelude as Prelude
import qualified Test.Stack as Stack
import qualified Test.StaticAnalysis as StaticAnalysis
main :: IO ()
main = do
options <- testOptions
defaultMainWithIngredients ingredients (options tests)
ingredients :: [Ingredient]
ingredients = [rerunningTests (htmlRunner : defaultIngredients)]
testOptions :: IO (TestTree -> TestTree)
testOptions = do
numCapabilities <- getNumCapabilities
(pure . appEndo . mconcat)
[ runnerOptions numCapabilities
, quickcheckOptions]
where
option :: IsOption v => v -> Endo TestTree
option = Endo . localOption
runnerOptions numThreads = option (NumThreads numThreads)
quickcheckOptions =
mconcat [ option (QuickCheckShowReplay False)
, option (QuickCheckMaxSize 5) ]
tests :: TestTree
tests = testGroup "STG"
[ ExamplePrograms.tests
, Language.tests
, Machine.tests
, Marshal.tests
, Parser.tests
, Prelude.tests
, Stack.tests
, StaticAnalysis.tests ]