clash-prelude-1.6.0: tests/Hedgehog/Extra.hs
{-# LANGUAGE TypeApplications #-}
module Hedgehog.Extra
( throwsException
, throwsDeepException
) where
import Control.DeepSeq (NFData, force)
import Hedgehog (failure, MonadTest, success)
import Hedgehog.Internal.Exception (tryEvaluate)
import Hedgehog.Internal.Source (HasCallStack, withFrozenCallStack)
throwsException
:: ( MonadTest m
, HasCallStack
)
=> a
-> m ()
throwsException x =
case (tryEvaluate x) of
Left _ -> success
Right _ -> withFrozenCallStack failure
throwsDeepException
:: ( MonadTest m
, NFData a
, HasCallStack
)
=> a
-> m ()
throwsDeepException =
throwsException . force