packages feed

hackport-0.2.18: tests/resolveCat.hs

import Control.Monad (when)

import qualified Distribution.Package as Cabal

import qualified Portage.Overlay as Portage
import qualified Portage.Resolve as Portage
import qualified Portage.PackageId as Portage
import qualified Portage.Host as Portage

import System.Exit (exitFailure)
import Test.HUnit

tests = TestList [ TestLabel "resolve cabal" (test_resolveCategory "dev-haskell" "cabal")
                 , TestLabel "resolve ghc" (test_resolveCategory "dev-lang" "ghc")
                 ]

test_resolveCategory :: String -> String -> Test
test_resolveCategory cat pkg = TestCase $ do
  portage_dir <- Portage.portage_dir `fmap` Portage.getInfo
  portage <- Portage.loadLazy portage_dir
  let cabal = Cabal.PackageName pkg
      hits = Portage.resolveFullPortageName portage cabal
      expected = Just (Portage.PackageName (Portage.Category cat) cabal)
  assertEqual ("expecting to find package " ++ pkg) hits expected 

something_broke :: Counts -> Bool
something_broke stats = errors stats + failures stats > 0

main =
    do stats <- runTestTT tests
       when (something_broke stats) exitFailure