From 863d33c4d125e13f87193802f6d4faed38da24db Mon Sep 17 00:00:00 2001
From: Ɓukasz Hanuszczak <lukasz.hanuszczak@gmail.com>
Date: Tue, 18 Aug 2015 23:42:25 +0200
Subject: Fix bug with unnecessary checking old test output.

---
 haddock-test/src/Test/Haddock.hs       |  4 +++-
 haddock-test/src/Test/Haddock/Utils.hs | 10 ++++++++++
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/haddock-test/src/Test/Haddock.hs b/haddock-test/src/Test/Haddock.hs
index ab6ce775..18ae38ca 100644
--- a/haddock-test/src/Test/Haddock.hs
+++ b/haddock-test/src/Test/Haddock.hs
@@ -69,9 +69,11 @@ maybeDiff cfg@(Config { cfgDiffTool = (Just diff) }) files = do
 
 
 runHaddock :: Config c -> IO ()
-runHaddock (Config { .. }) = do
+runHaddock cfg@(Config { .. }) = do
     haddockStdOut <- openFile cfgHaddockStdOut WriteMode
 
+    createEmptyDirectory $ cfgOutDir cfg
+
     putStrLn "Generating documentation..."
     forM_ cfgPackages $ \tpkg -> do
         handle <- runProcess' cfgHaddockPath $ processConfig
diff --git a/haddock-test/src/Test/Haddock/Utils.hs b/haddock-test/src/Test/Haddock/Utils.hs
index 4640fe97..4f97fa72 100644
--- a/haddock-test/src/Test/Haddock/Utils.hs
+++ b/haddock-test/src/Test/Haddock/Utils.hs
@@ -21,6 +21,10 @@ partitionM p (x:xs) = do
     pure $ if b then (x:ss, fs) else (ss, x:fs)
 
 
+whenM :: Monad m => m Bool -> m () -> m ()
+whenM mb action = mb >>= \b -> when b action
+
+
 getDirectoryTree :: FilePath -> IO [FilePath]
 getDirectoryTree path = do
     (dirs, files) <- partitionM isDirectory =<< contents
@@ -31,3 +35,9 @@ getDirectoryTree path = do
     contents = filter realEntry <$> getDirectoryContents path
     isDirectory entry = doesDirectoryExist $ path </> entry
     realEntry entry = not $ entry == "." || entry == ".."
+
+
+createEmptyDirectory :: FilePath -> IO ()
+createEmptyDirectory path = do
+    whenM (doesDirectoryExist path) $ removeDirectoryRecursive path
+    createDirectory path
-- 
cgit v1.2.3