sydtest-0.15.1.1: A modern testing framework for Haskell with good defaults and advanced testing features.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Test.Syd.OptParse

Synopsis

Documentation

data Settings Source #

Test suite definition and run settings

Constructors

Settings 

Fields

Instances

Instances details
Generic Settings Source # 
Instance details

Defined in Test.Syd.OptParse

Associated Types

type Rep Settings :: Type -> Type #

Methods

from :: Settings -> Rep Settings x #

to :: Rep Settings x -> Settings #

Show Settings Source # 
Instance details

Defined in Test.Syd.OptParse

Eq Settings Source # 
Instance details

Defined in Test.Syd.OptParse

type Rep Settings Source # 
Instance details

Defined in Test.Syd.OptParse

type Rep Settings = D1 ('MetaData "Settings" "Test.Syd.OptParse" "sydtest-0.15.1.1-CZvd3rDS4m47TQqIsce9VY" 'False) (C1 ('MetaCons "Settings" 'PrefixI 'True) ((((S1 ('MetaSel ('Just "settingSeed") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SeedSetting) :*: S1 ('MetaSel ('Just "settingRandomiseExecutionOrder") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Bool)) :*: (S1 ('MetaSel ('Just "settingThreads") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Threads) :*: S1 ('MetaSel ('Just "settingMaxSuccess") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int))) :*: ((S1 ('MetaSel ('Just "settingMaxSize") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int) :*: S1 ('MetaSel ('Just "settingMaxDiscard") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int)) :*: (S1 ('MetaSel ('Just "settingMaxShrinks") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int) :*: (S1 ('MetaSel ('Just "settingGoldenStart") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Bool) :*: S1 ('MetaSel ('Just "settingGoldenReset") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Bool))))) :*: (((S1 ('MetaSel ('Just "settingColour") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Bool)) :*: S1 ('MetaSel ('Just "settingFilters") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [Text])) :*: (S1 ('MetaSel ('Just "settingFailFast") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Bool) :*: S1 ('MetaSel ('Just "settingIterations") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Iterations))) :*: ((S1 ('MetaSel ('Just "settingRetries") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word) :*: S1 ('MetaSel ('Just "settingFailOnFlaky") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Bool)) :*: (S1 ('MetaSel ('Just "settingReportProgress") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ReportProgress) :*: (S1 ('MetaSel ('Just "settingDebug") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Bool) :*: S1 ('MetaSel ('Just "settingProfile") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Bool)))))))

data Threads Source #

Constructors

Synchronous

One thread

ByCapabilities

As many threads as getNumCapabilities tells you you have

Asynchronous !Word

A given number of threads

Instances

Instances details
HasCodec Threads Source # 
Instance details

Defined in Test.Syd.OptParse

Generic Threads Source # 
Instance details

Defined in Test.Syd.OptParse

Associated Types

type Rep Threads :: Type -> Type #

Methods

from :: Threads -> Rep Threads x #

to :: Rep Threads x -> Threads #

Read Threads Source # 
Instance details

Defined in Test.Syd.OptParse

Show Threads Source # 
Instance details

Defined in Test.Syd.OptParse

Eq Threads Source # 
Instance details

Defined in Test.Syd.OptParse

Methods

(==) :: Threads -> Threads -> Bool #

(/=) :: Threads -> Threads -> Bool #

type Rep Threads Source # 
Instance details

Defined in Test.Syd.OptParse

type Rep Threads = D1 ('MetaData "Threads" "Test.Syd.OptParse" "sydtest-0.15.1.1-CZvd3rDS4m47TQqIsce9VY" 'False) (C1 ('MetaCons "Synchronous" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ByCapabilities" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Asynchronous" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word))))

data Iterations Source #

Constructors

OneIteration

Run the test suite once, the default

Iterations !Word

Run the test suite for the given number of iterations, or until we can find flakiness

Continuous

Run the test suite over and over, until we can find some flakiness

Instances

Instances details
HasCodec Iterations Source # 
Instance details

Defined in Test.Syd.OptParse

Generic Iterations Source # 
Instance details

Defined in Test.Syd.OptParse

Associated Types

type Rep Iterations :: Type -> Type #

Read Iterations Source # 
Instance details

Defined in Test.Syd.OptParse

Show Iterations Source # 
Instance details

Defined in Test.Syd.OptParse

Eq Iterations Source # 
Instance details

Defined in Test.Syd.OptParse

type Rep Iterations Source # 
Instance details

Defined in Test.Syd.OptParse

type Rep Iterations = D1 ('MetaData "Iterations" "Test.Syd.OptParse" "sydtest-0.15.1.1-CZvd3rDS4m47TQqIsce9VY" 'False) (C1 ('MetaCons "OneIteration" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Iterations" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word)) :+: C1 ('MetaCons "Continuous" 'PrefixI 'False) (U1 :: Type -> Type)))

data ReportProgress Source #

Constructors

ReportNoProgress

Don't report any progress, the default

ReportProgress

Report progress

Instances

Instances details
Generic ReportProgress Source # 
Instance details

Defined in Test.Syd.OptParse

Associated Types

type Rep ReportProgress :: Type -> Type #

Read ReportProgress Source # 
Instance details

Defined in Test.Syd.OptParse

Show ReportProgress Source # 
Instance details

Defined in Test.Syd.OptParse

Eq ReportProgress Source # 
Instance details

Defined in Test.Syd.OptParse

type Rep ReportProgress Source # 
Instance details

Defined in Test.Syd.OptParse

type Rep ReportProgress = D1 ('MetaData "ReportProgress" "Test.Syd.OptParse" "sydtest-0.15.1.1-CZvd3rDS4m47TQqIsce9VY" 'False) (C1 ('MetaCons "ReportNoProgress" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ReportProgress" 'PrefixI 'False) (U1 :: Type -> Type))

data Configuration Source #

What we find in the configuration variable.

Do nothing clever here, just represent the configuration file. For example, use 'Maybe FilePath', not 'Path Abs File'.

Use readYamlConfigFile or readFirstYamlConfigFile to read a configuration.

Instances

Instances details
HasCodec Configuration Source #

We use autodocodec for parsing a YAML config.

Instance details

Defined in Test.Syd.OptParse

Generic Configuration Source # 
Instance details

Defined in Test.Syd.OptParse

Associated Types

type Rep Configuration :: Type -> Type #

Show Configuration Source # 
Instance details

Defined in Test.Syd.OptParse

Eq Configuration Source # 
Instance details

Defined in Test.Syd.OptParse

type Rep Configuration Source # 
Instance details

Defined in Test.Syd.OptParse

type Rep Configuration = D1 ('MetaData "Configuration" "Test.Syd.OptParse" "sydtest-0.15.1.1-CZvd3rDS4m47TQqIsce9VY" 'False) (C1 ('MetaCons "Configuration" 'PrefixI 'True) ((((S1 ('MetaSel ('Just "configSeed") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe SeedSetting)) :*: S1 ('MetaSel ('Just "configRandomiseExecutionOrder") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Bool))) :*: (S1 ('MetaSel ('Just "configThreads") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Threads)) :*: S1 ('MetaSel ('Just "configMaxSize") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Int)))) :*: ((S1 ('MetaSel ('Just "configMaxSuccess") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Int)) :*: S1 ('MetaSel ('Just "configMaxDiscard") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Int))) :*: (S1 ('MetaSel ('Just "configMaxShrinks") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Int)) :*: (S1 ('MetaSel ('Just "configGoldenStart") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Bool)) :*: S1 ('MetaSel ('Just "configGoldenReset") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Bool)))))) :*: (((S1 ('MetaSel ('Just "configColour") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Bool)) :*: S1 ('MetaSel ('Just "configFilter") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Text))) :*: (S1 ('MetaSel ('Just "configFailFast") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Bool)) :*: S1 ('MetaSel ('Just "configIterations") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Iterations)))) :*: ((S1 ('MetaSel ('Just "configRetries") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Word)) :*: S1 ('MetaSel ('Just "configFailOnFlaky") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Bool))) :*: (S1 ('MetaSel ('Just "configReportProgress") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Bool)) :*: (S1 ('MetaSel ('Just "configDebug") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Bool)) :*: S1 ('MetaSel ('Just "configProfile") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Bool))))))))

getConfiguration :: Flags -> Environment -> IO (Maybe Configuration) Source #

Get the configuration

We use the flags and environment because they can contain information to override where to look for the configuration files. We return a Maybe because there may not be a configuration file.

defaultConfigFile :: IO (Path Abs File) Source #

Where to get the configuration file by default.

data Environment Source #

What we find in the configuration variable.

Do nothing clever here, just represent the relevant parts of the environment. For example, use Text, not SqliteConfig.

Instances

Instances details
Generic Environment Source # 
Instance details

Defined in Test.Syd.OptParse

Associated Types

type Rep Environment :: Type -> Type #

Show Environment Source # 
Instance details

Defined in Test.Syd.OptParse

Eq Environment Source # 
Instance details

Defined in Test.Syd.OptParse

type Rep Environment Source # 
Instance details

Defined in Test.Syd.OptParse

type Rep Environment = D1 ('MetaData "Environment" "Test.Syd.OptParse" "sydtest-0.15.1.1-CZvd3rDS4m47TQqIsce9VY" 'False) (C1 ('MetaCons "Environment" 'PrefixI 'True) ((((S1 ('MetaSel ('Just "envConfigFile") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe FilePath)) :*: S1 ('MetaSel ('Just "envSeed") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe SeedSetting))) :*: (S1 ('MetaSel ('Just "envRandomiseExecutionOrder") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Bool)) :*: S1 ('MetaSel ('Just "envThreads") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Threads)))) :*: ((S1 ('MetaSel ('Just "envMaxSize") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Int)) :*: S1 ('MetaSel ('Just "envMaxSuccess") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Int))) :*: (S1 ('MetaSel ('Just "envMaxDiscard") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Int)) :*: (S1 ('MetaSel ('Just "envMaxShrinks") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Int)) :*: S1 ('MetaSel ('Just "envGoldenStart") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Bool)))))) :*: (((S1 ('MetaSel ('Just "envGoldenReset") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Bool)) :*: S1 ('MetaSel ('Just "envColour") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Bool))) :*: (S1 ('MetaSel ('Just "envFilter") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Text)) :*: (S1 ('MetaSel ('Just "envFailFast") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Bool)) :*: S1 ('MetaSel ('Just "envIterations") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Iterations))))) :*: ((S1 ('MetaSel ('Just "envRetries") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Word)) :*: S1 ('MetaSel ('Just "envFailOnFlaky") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Bool))) :*: (S1 ('MetaSel ('Just "envReportProgress") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Bool)) :*: (S1 ('MetaSel ('Just "envDebug") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Bool)) :*: S1 ('MetaSel ('Just "envProfile") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Bool))))))))

getFlags :: IO Flags Source #

Get the command-line flags

prefs_ :: ParserPrefs Source #

The 'optparse-applicative' parsing preferences

flagsParser :: ParserInfo Flags Source #

The optparse-applicative parser for Flags

data Flags Source #

The flags that are common across commands.

Instances

Instances details
Generic Flags Source # 
Instance details

Defined in Test.Syd.OptParse

Associated Types

type Rep Flags :: Type -> Type #

Methods

from :: Flags -> Rep Flags x #

to :: Rep Flags x -> Flags #

Show Flags Source # 
Instance details

Defined in Test.Syd.OptParse

Methods

showsPrec :: Int -> Flags -> ShowS #

show :: Flags -> String #

showList :: [Flags] -> ShowS #

Eq Flags Source # 
Instance details

Defined in Test.Syd.OptParse

Methods

(==) :: Flags -> Flags -> Bool #

(/=) :: Flags -> Flags -> Bool #

type Rep Flags Source # 
Instance details

Defined in Test.Syd.OptParse

type Rep Flags = D1 ('MetaData "Flags" "Test.Syd.OptParse" "sydtest-0.15.1.1-CZvd3rDS4m47TQqIsce9VY" 'False) (C1 ('MetaCons "Flags" 'PrefixI 'True) ((((S1 ('MetaSel ('Just "flagConfigFile") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe FilePath)) :*: S1 ('MetaSel ('Just "flagSeed") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe SeedSetting))) :*: (S1 ('MetaSel ('Just "flagRandomiseExecutionOrder") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Bool)) :*: S1 ('MetaSel ('Just "flagThreads") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Threads)))) :*: ((S1 ('MetaSel ('Just "flagMaxSize") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Int)) :*: S1 ('MetaSel ('Just "flagMaxSuccess") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Int))) :*: (S1 ('MetaSel ('Just "flagMaxDiscard") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Int)) :*: (S1 ('MetaSel ('Just "flagMaxShrinks") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Int)) :*: S1 ('MetaSel ('Just "flagGoldenStart") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Bool)))))) :*: (((S1 ('MetaSel ('Just "flagGoldenReset") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Bool)) :*: S1 ('MetaSel ('Just "flagColour") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Bool))) :*: (S1 ('MetaSel ('Just "flagFilters") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [Text]) :*: (S1 ('MetaSel ('Just "flagFailFast") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Bool)) :*: S1 ('MetaSel ('Just "flagIterations") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Iterations))))) :*: ((S1 ('MetaSel ('Just "flagRetries") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Word)) :*: S1 ('MetaSel ('Just "flagFailOnFlaky") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Bool))) :*: (S1 ('MetaSel ('Just "flagReportProgress") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Bool)) :*: (S1 ('MetaSel ('Just "flagDebug") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Bool)) :*: S1 ('MetaSel ('Just "flagProfile") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Bool))))))))

parseFlags :: Parser Flags Source #

The 'optparse-applicative' parser for the Flags.