@@ -57,20 +57,25 @@ runTestSuite :: BuildSettings
57runTestSuite settings testdir hasTestSuites prevPassed (packageName, (version, Maintainer maintainer)) = do
57runTestSuite settings testdir hasTestSuites prevPassed (packageName, (version, Maintainer maintainer)) = do
58 -- Set up a new environment that includes the sandboxed bin folder in PATH.
58 -- Set up a new environment that includes the sandboxed bin folder in PATH.
59 env' <- getEnvironment
59 env' <- getEnvironment
61+ = Just $ (if addGPP then (("GHC_PACKAGE_PATH", packageDir settings ++ ":"):) else id)
60− let menv = Just $ ("HASKELL_PACKAGE_SANDBOX", packageDir settings)
62+ $ ("HASKELL_PACKAGE_SANDBOX", packageDir settings)
61− : map (fixEnv $ binDir settings) env'
63+ : map (fixEnv $ binDir settings) env'
63− let run cmd args wdir handle = do
65+ let runGen addGPP cmd args wdir handle = do
64− ph <- runProcess cmd args (Just wdir) menv Nothing (Just handle) (Just handle)
66+ ph <- runProcess cmd args (Just wdir) (menv addGPP) Nothing (Just handle) (Just handle)
65 ec <- waitForProcess ph
67 ec <- waitForProcess ph
66 unless (ec == ExitSuccess) $ throwIO TestException
68 unless (ec == ExitSuccess) $ throwIO TestException
70+ let run = runGen False
71+ runGhcPackagePath = runGen True
68 passed <- handle (\TestException -> return False) $ do
73 passed <- handle (\TestException -> return False) $ do
69 getHandle WriteMode $ run "cabal" ["unpack", package] testdir
74 getHandle WriteMode $ run "cabal" ["unpack", package] testdir
70 getHandle AppendMode $ run "cabal" (addCabalArgs settings ["configure", "--enable-tests"]) dir
75 getHandle AppendMode $ run "cabal" (addCabalArgs settings ["configure", "--enable-tests"]) dir
71 when (hasTestSuites packageName) $ do
76 when (hasTestSuites packageName) $ do
72 getHandle AppendMode $ run "cabal" ["build"] dir
77 getHandle AppendMode $ run "cabal" ["build"] dir
73− getHandle AppendMode $ run "cabal" ["test"] dir
78+ getHandle AppendMode $ runGhcPackagePath "cabal" ["test"] dir
74 getHandle AppendMode $ run "cabal" ["haddock"] dir
79 getHandle AppendMode $ run "cabal" ["haddock"] dir
75 return True
80 return True
76 let expectedFailure = packageName `Set.member` expectedFailures settings
81 let expectedFailure = packageName `Set.member` expectedFailures settings