git-annex/Types/Test.hs

50 lines
1.1 KiB
Haskell
Raw Normal View History

{- git-annex test data types.
-
- Copyright 2011-2017 Joey Hess <id@joeyh.name>
-
- Licensed under the GNU GPL version 3 or higher.
-}
{-# LANGUAGE CPP #-}
module Types.Test where
import Test.Tasty.Options
import Data.Monoid
#if MIN_VERSION_base(4,9,0)
import qualified Data.Semigroup as Sem
#endif
import Prelude
import Types.Command
2016-01-06 17:44:12 +00:00
data TestOptions = TestOptions
{ tastyOptionSet :: OptionSet
, keepFailuresOption :: Bool
, fakeSsh :: Bool
, internalData :: CmdParams
2016-01-06 17:44:12 +00:00
}
appendTestOptions :: TestOptions -> TestOptions -> TestOptions
appendTestOptions a b = TestOptions
(tastyOptionSet a <> tastyOptionSet b)
(keepFailuresOption a || keepFailuresOption b)
(fakeSsh a || fakeSsh b)
(internalData a <> internalData b)
#if MIN_VERSION_base(4,9,0)
instance Sem.Semigroup TestOptions where
(<>) = appendTestOptions
#endif
2016-01-06 17:44:12 +00:00
instance Monoid TestOptions where
mempty = TestOptions mempty False False mempty
#if MIN_VERSION_base(4,11,0)
#elif MIN_VERSION_base(4,9,0)
mappend = (Sem.<>)
#else
mappend = appendTestOptions
#endif
type TestRunner = TestOptions -> IO ()