hackport-0.8.0.0: cabal/cabal-testsuite/PackageTests/ShowBuildInfo/CompileFail/compile-fail.test.hs
{-# LANGUAGE OverloadedStrings #-}
import Test.Cabal.Prelude
import Test.Cabal.DecodeShowBuildInfo
import Test.Cabal.Plan
import Control.Monad.Trans.Reader
main = cabalTest $ do
-- Leaf component fails to compile, should still dump
-- build info for both components.
fails $ runShowBuildInfo ["test:CompileFail-test"]
withPlan $ do
-- Lib has to be built, thus info is dumped
assertComponent "CompileFail" mainLib
defCompAssertion
{ modules = ["MyLib"]
, sourceDirs = ["src"]
}
-- Build Info is still dumped, although compilation failed
assertComponent "CompileFail" (test "CompileFail-test")
defCompAssertion
{ sourceFiles = ["Main.hs"]
, sourceDirs = ["test"]
}
fails $ runShowBuildInfo ["exe:CompileFail-exe"]
withPlan $ do
-- Internal Lib has to be built, thus info is dumped
assertComponent "CompileFail" (lib "failing")
defCompAssertion
{ modules = ["MyLib2"]
, sourceDirs = ["src"]
}
-- However, since the internal lib failed to compile
-- we can not have executable build information.
Just plan <- fmap testPlan ask
let fp = buildInfoFile plan "CompileFail" (exe "CompileFail-exe")
shouldNotExist fp