Hoogle Search
Within LTS Haskell 24.51 (ghc-9.10.3)
Note that Stackage only displays results for the latest LTS and Nightly snapshot. Learn more.
-
sydtest Test.Syd Run a custom action before and/or after all spec items in a group to provide access to a resource a while using a resource b See the FOOTGUN note in the docs for around_.
-
sydtest Test.Syd Run a custom action before and/or after all spec items in a group without accessing any resources.
FOOTGUN
This combinator gives the programmer a lot of power. In fact, it gives the programmer enough power to break the test framework. Indeed, you can provide a wrapper function that just _doesn't_ run the function like this:spec :: Spec spec = do let don'tDo :: IO () -> IO () don'tDo _ = pure () aroundAll_ don'tDo $ do it "should pass" True
During execution, you'll then get an error like this:thread blocked indefinitely in an MVar operation
The same problem exists when using around_. Something even more pernicious goes wrong when you run the given action more than once like this:spec :: Spec spec = do let doTwice :: IO () -> IO () doTwice f = f >> f aroundAll_ doTwice $ do it "should pass" True
In this case, the test will "just work", but it will be executed twice even if the output reports that it only passed once. Note: If you're interested in fixing this, talk to me, but only after GHC has gotten impredicative types because that will likely be a requirement. -
sydtest Test.Syd Run a custom action before all spec items in a group, to set up an outer resource a.
-
sydtest Test.Syd Run a custom action before all spec items in a group, to set up an outer resource b by using the outer resource a.
-
sydtest Test.Syd Run a custom action before all spec items in a group without setting up any outer resources.
errorCall :: String -> Selector ErrorCallsydtest Test.Syd No documentation available.
-
sydtest Test.Syd Declare a test that uses all outer resources You will most likely never need this function, but in case you do: Note that this will always require a type annotation, along with the GADTs and ScopedTypeVariables extensions.
Example usage
beforeAll (pure 'a') $ beforeAll (pure 5) $ itWithAll "example" $ \(HCons c (HCons i HNil) :: HList '[Char, Int]) () -> (c, i) `shouldeBe` ('a', 5) parallel :: forall (a :: [Type]) b c . TestDefM a b c -> TestDefM a b csydtest Test.Syd Declare that all tests below may be run in parallel. (This is the default.)
potentiallyFlaky :: forall (a :: [Type]) b c . TestDefM a b c -> TestDefM a b csydtest Test.Syd Mark a test suite as 'potentially flaky', such that it will not fail if it is flaky but passes at least once.
potentiallyFlakyWith :: forall (a :: [Type]) b c . String -> TestDefM a b c -> TestDefM a b csydtest Test.Syd Like potentiallyFlaky, but with a message.