From 4abf7d4979b5364da59f7412a3d7143aea26cf7e Mon Sep 17 00:00:00 2001
From: alexbiehl <alex.biehl@gmail.com>
Date: Fri, 2 Mar 2018 14:21:23 +0100
Subject: Enable running test suite with stock haddock and ghc using

```
$ cabal new-run -- html-test --haddock-path=$(which haddock) --ghc-path=$(which ghc)
```
---
 haddock-test/src/Test/Haddock/Config.hs | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

(limited to 'haddock-test/src/Test')

diff --git a/haddock-test/src/Test/Haddock/Config.hs b/haddock-test/src/Test/Haddock/Config.hs
index 988636e4..2d16fa63 100644
--- a/haddock-test/src/Test/Haddock/Config.hs
+++ b/haddock-test/src/Test/Haddock/Config.hs
@@ -98,6 +98,7 @@ data Flag
     = FlagHaddockPath FilePath
     | FlagHaddockOptions String
     | FlagHaddockStdOut FilePath
+    | FlagGhcPath FilePath
     | FlagDiffTool FilePath
     | FlagNoDiff
     | FlagAccept
@@ -108,6 +109,8 @@ data Flag
 flagsHaddockPath :: [Flag] -> Maybe FilePath
 flagsHaddockPath flags = mlast [ path | FlagHaddockPath path <- flags ]
 
+flagsGhcPath :: [Flag] -> Maybe FilePath
+flagsGhcPath flags = mlast [ path | FlagGhcPath path <- flags ]
 
 flagsHaddockOptions :: [Flag] -> [String]
 flagsHaddockOptions flags = concat
@@ -130,6 +133,8 @@ options =
         "additional options to run Haddock with"
     , Option [] ["haddock-stdout"] (ReqArg FlagHaddockStdOut "FILE")
         "where to redirect Haddock output"
+    , Option [] ["ghc-path"] (ReqArg FlagGhcPath "FILE")
+        "path ghc executable"
     , Option [] ["diff-tool"] (ReqArg FlagDiffTool "PATH")
         "diff tool to use when printing failed cases"
     , Option ['a'] ["accept"] (NoArg FlagAccept)
@@ -178,8 +183,11 @@ loadConfig ccfg dcfg flags files = do
           hPutStrLn stderr "Haddock executable not found"
           exitFailure
 
-    ghcPath <- init <$> rawSystemStdout normal cfgHaddockPath
-        ["--print-ghc-path"]
+    ghcPath <- case flagsGhcPath flags of
+                 Just fp -> return fp
+                 Nothing -> init <$> rawSystemStdout normal
+                                                     cfgHaddockPath
+                                                     ["--print-ghc-path"]
 
     printVersions cfgEnv cfgHaddockPath
 
-- 
cgit v1.2.3