@@ -12,7 +12,8 @@ import qualified Data.Set as Set
1212import Data.Typeable (Typeable)
1313import Stackage.Types
1414import Stackage.Util
15−import System.Directory (createDirectory, removeFile)
15+import System.Directory (copyFile, createDirectory,
16+ createDirectoryIfMissing, removeFile)
1617import System.Exit (ExitCode (ExitSuccess))
1718import System.FilePath ((<.>), (</>))
1819import System.IO (IOMode (WriteMode, AppendMode),
@@ -99,6 +100,15 @@ runTestSuite settings testdir (packageName, SelectedPackageInfo {..}) = do
99100 passed <- handle (\TestException -> return False) $ do
100101 package' <- replaceTarball (tarballDir settings) package
101102 getHandle WriteMode $ run "cabal" ["unpack", package'] testdir
103+ case cabalFileDir settings of
104+ Nothing -> return ()
105+ Just cfd -> do
106+ let PackageName name = packageName
107+ basename = name ++ ".cabal"
108+ src = dir </> basename
109+ dst = cfd </> basename
110+ createDirectoryIfMissing True cfd
111+ copyFile src dst
102112 getHandle AppendMode $ run "cabal" (addCabalArgs settings BSTest ["configure", "--enable-tests"]) dir
103113 when spiHasTests $ do
104114 getHandle AppendMode $ run "cabal" ["build"] dir