teardown-0.4.1.0: benchmark/Main.hs
{-# LANGUAGE CPP #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-}
module Main where
import RIO
#if MIN_VERSION_gauge(0,2,0)
import Gauge
#else
import Gauge
import Gauge.Main (defaultMain)
#endif
import Control.Teardown (newTeardown, runTeardown_)
main :: IO ()
main = defaultMain
[ bgroup
"simple IO unit return"
[ bench "without teardown" (whnfIO $ return ())
, env
(newTeardown "benchmark" (return () :: IO ()))
(\unitTeardown ->
bench "with teardown" (whnfIO $ runTeardown_ unitTeardown)
)
]
, env
(sequence (replicate 1000 (newTeardown "benchmark" (return () :: IO ())))
>>= newTeardown "parent")
(\composedTeardown ->
bench "teardown list" (whnfIO $ runTeardown_ composedTeardown))
]