@@ -134,14 +134,8 @@ runTestSuite cabalVersion settings testdir docdir bp (packageName, SelectedPacka
134 createDirectoryIfMissing True cfd
134 createDirectoryIfMissing True cfd
135 copyFile src dst
135 copyFile src dst
136 getHandle AppendMode $ run "cabal" (addCabalArgs settings BSTest ["configure", "--enable-tests"]) dir
136 getHandle AppendMode $ run "cabal" (addCabalArgs settings BSTest ["configure", "--enable-tests"]) dir
137− when spiHasTests $ do
137+
138− getHandle AppendMode $ run "cabal" ["build"] dir
138+ -- Try building docs first in case tests have an expected failure.
139− getHandle AppendMode $ run "cabal" (concat
141− , if cabalVersion >= CabalVersion 1 20
142− then ["--show-details=streaming"] -- FIXME temporary workaround for https://github.com/haskell/cabal/issues/1810
145 when (buildDocs settings) $ do
139 when (buildDocs settings) $ do
146 getHandle AppendMode $ run "cabal"
140 getHandle AppendMode $ run "cabal"
147 [ "haddock"
141 [ "haddock"
@@ -154,6 +148,15 @@ runTestSuite cabalVersion settings testdir docdir bp (packageName, SelectedPacka
154 handle (\(_ :: IOException) -> return ()) $ renameDirectory
148 handle (\(_ :: IOException) -> return ()) $ renameDirectory
155 (dir </> "dist" </> "doc" </> "html" </> packageName')
149 (dir </> "dist" </> "doc" </> "html" </> packageName')
156 (docdir </> package)
150 (docdir </> package)
152+ when spiHasTests $ do
153+ getHandle AppendMode $ run "cabal" ["build"] dir
154+ getHandle AppendMode $ run "cabal" (concat
156+ , if cabalVersion >= CabalVersion 1 20
157+ then ["--show-details=streaming"] -- FIXME temporary workaround for https://github.com/haskell/cabal/issues/1810
157 return True
160 return True
158 let expectedFailure = packageName `Set.member` bpExpectedFailures bp
161 let expectedFailure = packageName `Set.member` bpExpectedFailures bp
159 if passed
162 if passed