packages feed

logging-1.0.0: test/main.hs

module Main where

import Control.Exception
import Control.Concurrent
import Control.Logging
import Prelude hiding (log)
import Test.Hspec

tryAny :: IO a -> IO (Either SomeException a)
tryAny = try

main :: IO ()
main = hspec $ do
    describe "simple logging" $
        it "logs output" $ (withStdoutLogging :: IO () -> IO ())  $ do
            log "Hello, world!"
            timedLog "Did a good thing" $ threadDelay 100000
            _ <- tryAny $ timedLog "Did a bad thing" $
                threadDelay 100000 >> error "foo"
            _ <- tryAny $ errorL "Uh oh"
            return ()