shaker-0.4.3: testsuite/tests/Shaker/CommonTest.hs
module Shaker.CommonTest
where
import System.Directory
import Test.HUnit
import Control.Exception
import Shaker.Type
import Shaker.SourceHelper
import Shaker.Cabal.CabalInfo
import Control.Monad.Reader(runReader)
import GHC
import GHC.Paths
runTestOnDirectory :: FilePath -> Assertion -> Assertion
runTestOnDirectory fp fun = do
oldDir <- getCurrentDirectory
setCurrentDirectory fp
finally fun (setCurrentDirectory oldDir)
testCompileInput ::IO CompileInput
testCompileInput = defaultCabalInput >>= return . mergeCompileInputsSources . compileInputs
initializeEmptyCompileInput :: CompileInput
initializeEmptyCompileInput = CompileInput {
cfSourceDirs = []
,cfDescription = ""
,cfCompileTarget = ""
,cfDynFlags = id
,cfCommandLineFlags =[]
,cfTargetFiles = []
}
testShakerInput :: IO ShakerInput
testShakerInput = defaultCabalInput
compileProject :: IO(CompileInput, [CompileFile])
compileProject = do
cpIn <- testCompileInput
cfFlList <- constructCompileFileList cpIn
_ <- runGhc (Just libdir) $
ghcCompile $ runReader (fillCompileInputWithStandardTarget cpIn) cfFlList
return (cpIn, cfFlList)