packages feed

atlassian-connect-descriptor-0.1.0.0: tests/Util.hs

module Util
    ( hunitTestInstance
    ) where

import qualified Distribution.TestSuite as TS
import qualified Test.HUnit             as HU

runHUnitTests :: HU.Test -> IO TS.Progress
runHUnitTests tests = do
   (HU.Counts cases tried errors failures) <- HU.runTestTT tests
   return $ if errors > 0
      then TS.Finished $ TS.Error "There were errors in the HUnit tests"
      else if failures > 0
         then TS.Finished $ TS.Fail "There were failures in the HUnit tests"
         else TS.Finished TS.Pass

hunitTestInstance :: HU.Test -> TS.TestInstance
hunitTestInstance hTests = TS.TestInstance
    { TS.run = runHUnitTests hTests
    , TS.name = "HUnit Tests"
    , TS.tags = ["hunit"]
    , TS.options = []
    , TS.setOption = \_ _ -> Right (hunitTestInstance hTests)
    }