1 import Test
.Cabal
.Prelude
2 import qualified System
.Process
as Process
3 import Control
.Concurrent
(threadDelay
)
4 import System
.Directory
(removeFile)
5 import Control
.Exception
(catch, throwIO
)
6 import System
.IO.Error
(isDoesNotExistError)
7 import qualified Data
.Time
.Clock
as Time
8 import qualified Data
.Time
.Format
as Time
10 import System
.Environment
14 res
<- cabalWithStdin
"v2-build" ["all"] ""
15 exe_path
<- withPlan
$ planExePath
"setup-test" "cabal-aaaa"
17 path
<- liftIO
$ getEnv "PATH"
18 let newpath
= takeDirectory exe_path
++ ":" ++ path
19 let new_env
= (("PATH", Just newpath
) : (testEnvironment env
))
21 res
<- cabal_raw_action
["aaaa"] (\h
-> () <$ Process
.waitForProcess h
)
22 assertOutputContains
"aaaa" res
25 cabal_raw_action
:: [String] -> (Process
.ProcessHandle
-> IO ()) -> TestM Result
26 cabal_raw_action args action
= do
27 configured_prog
<- requireProgramM cabalProgram
29 r
<- liftIO
$ runAction
(testVerbosity env
)
30 (Just
(testCurrentDir env
))
32 (programPath configured_prog
)