{-# LANGUAGE NoImplicitPrelude #-}
module Stack.Options.TestParser where
import Options.Applicative
import Options.Applicative.Args
import Options.Applicative.Builder.Extra
import Stack.Options.Utils
import Stack.Prelude
import Stack.Types.Config
testOptsParser :: Bool -> Parser TestOptsMonoid
testOptsParser hide0 =
TestOptsMonoid
<$> firstBoolFlagsTrue
"rerun-tests"
"running already successful tests"
hide
<*> fmap
concat
(many
(argsOption
(long "test-arguments" <>
long "ta" <>
metavar "TEST_ARGS" <>
help "Arguments passed in to the test suite program" <>
hide)))
<*> optionalFirstFalse
(flag' True
(long "coverage" <>
help "Generate a code coverage report" <>
hide))
<*> optionalFirstFalse
(flag' True
(long "no-run-tests" <>
help "Disable running of tests. (Tests will still be built.)" <>
hide))
<*> optionalFirst
(option (fmap Just auto)
(long "test-suite-timeout" <>
help "Maximum test suite run time in seconds." <>
hide))
where hide = hideMods hide0