stack-3.3.1: src/Stack/Options/TestParser.hs
{-# LANGUAGE NoImplicitPrelude #-}
module Stack.Options.TestParser
( testOptsParser
) where
import Options.Applicative
( Parser, auto, flag', help, long, metavar, option )
import Options.Applicative.Args ( argsOption )
import Options.Applicative.Builder.Extra
( firstBoolFlagsTrue, optionalFirst, optionalFirstFalse )
import Stack.Options.Utils ( hideMods )
import Stack.Prelude
import Stack.Types.BuildOptsMonoid ( TestOptsMonoid (..) )
-- | Parser for test arguments.
-- FIXME hide args
testOptsParser :: Bool -> Parser TestOptsMonoid
testOptsParser hide0 = TestOptsMonoid
<$> firstBoolFlagsTrue
"rerun-tests"
"running already successful test suites."
hide
<*> fmap concat (many (argsOption
( long "test-arguments"
<> long "ta"
<> metavar "TEST_ARGS"
<> help "Arguments passed to the test suites."
<> hide
)))
<*> optionalFirstFalse (flag' True
( long "coverage"
<> help "Generate a code coverage report."
<> hide
))
<*> firstBoolFlagsTrue
"run-tests"
"running of targeted test suites."
hide
<*> optionalFirst (option (fmap Just auto)
( long "test-suite-timeout"
<> help "Maximum test suite run time in seconds."
<> hide
))
<*> firstBoolFlagsTrue
"tests-allow-stdin"
"allow standard input in test suites."
hide
where
hide = hideMods hide0