shaker-0.3.1: testsuite/tests/Shaker/CommonTest.hs
module Shaker.CommonTest
where
import System.Directory
import Test.HUnit
import Control.Exception
import Shaker.Type
import Shaker.Config
import Shaker.SourceHelper
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)
initializeEmptyCompileInput :: CompileInput
initializeEmptyCompileInput = CompileInput {
cfSourceDirs = []
,cfDescription = ""
,cfCompileTarget = ""
,cfDynFlags = id
,cfCommandLineFlags =[]
,cfTargetFiles = []
}
testShakerInput :: ShakerInput
testShakerInput = defaultInput {
compileInputs = [defaultCompileInput {
cfCommandLineFlags = ["-package ghc"]
}]
}
compileProject :: IO(CompileInput, [CompileFile])
compileProject = do
let cpIn = head . compileInputs $ testShakerInput
cfFlList <- constructCompileFileList cpIn
_ <- runGhc (Just libdir) $
ghcCompile $ runReader (fillCompileInputWithStandardTarget cpIn) cfFlList
return (cpIn, cfFlList)