cabal-cache-1.0.6.0: test/Test/Base.hs
module Test.Base
( execCabalCache
, execCabalCache_
, execCabalCache'
, integration
) where
import Control.Monad (void)
import Control.Monad.Catch (MonadCatch)
import Control.Monad.IO.Class (MonadIO)
import GHC.Stack (HasCallStack)
import Hedgehog (MonadTest)
import Hedgehog.Extras.Test.Process (ExecConfig)
import qualified GHC.Stack as GHC
import qualified Hedgehog as H
import qualified Hedgehog.Extras.Test.Base as H
import qualified Hedgehog.Extras.Test.Process as H
integration :: HasCallStack => H.Integration () -> H.Property
integration = H.withTests 1 . H.propertyOnce
-- | Run cabal-cache, returning the stdout
execCabalCache
:: (MonadTest m, MonadCatch m, MonadIO m, HasCallStack)
=> [String]
-> m String
execCabalCache = GHC.withFrozenCallStack $ H.execFlex "cabal-cache" "CABAL_CACHE"
-- | Run cabal-cache, discarding return value
execCabalCache_
:: (MonadTest m, MonadCatch m, MonadIO m, HasCallStack)
=> [String]
-> m ()
execCabalCache_ = void . execCabalCache
-- | Run cabal-cache, returning the stdout
execCabalCache'
:: (MonadTest m, MonadCatch m, MonadIO m, HasCallStack)
=> ExecConfig
-> [String]
-> m String
execCabalCache' execConfig = GHC.withFrozenCallStack $ H.execFlex' execConfig "cabal-cache" "CABAL_CACHE"