forked from haskell/cabal
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix assertion failure when combining build-tool-depends and --enable-…
…documentation The `setDocumentation` function was modifying the elaborated package after the hash was computed. This led to the assertion failing as the computed hash was different to what was computed in the initial install plan. Therefore in order to fix this we either needed to: 1. Set elabBuildHaddocks = False at the point where the hash is initially computed. 2. Verify that elabBuildHaddocks = True will not lead to unexpected results. The latter has been implemented. The elabBuildHaddocks option is only consulted in `hasValidHaddockTargets`, at which point documentation building the executable component is disabled because elabHaddockExecutables is False. In the added test we ensure this by checking that we didn't build documentation for the executable which is built because of build-tool-depends. Fixes haskell#6006 haskell#8313
- Loading branch information
1 parent
2dad49a
commit 69eeee7
Showing
9 changed files
with
74 additions
and
26 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
name: a | ||
version: 0.1.0.0 | ||
build-type: Simple | ||
cabal-version: >= 1.10 | ||
|
||
library | ||
exposed-modules: MyLib | ||
build-depends: base, lib | ||
hs-source-dirs: src | ||
default-language: Haskell2010 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
packages: . |
22 changes: 22 additions & 0 deletions
22
cabal-testsuite/PackageTests/HaddockBuildDepends/cabal.test.hs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
import Test.Cabal.Prelude | ||
|
||
|
||
main = cabalTest . withRepo "repo" $ do | ||
cabal "build" ["--enable-documentation"] | ||
|
||
env <- getTestEnv | ||
let storeDir = testCabalDir env </> "store" | ||
|
||
-- Check properties of executable component | ||
libDir <- liftIO $ findDependencyInStore storeDir "exe" | ||
-- Documentation is enabled.. | ||
assertFileDoesContain (libDir </> "cabal-hash.txt") "documentation: True" | ||
-- But not built | ||
shouldDirectoryNotExist ( libDir </> "share" </> "doc" ) | ||
|
||
-- Check properties of library | ||
libDir <- liftIO $ findDependencyInStore storeDir "lib" | ||
-- Documentation is enabled.. | ||
assertFileDoesContain (libDir </> "cabal-hash.txt") "documentation: True" | ||
-- and has been built | ||
shouldDirectoryExist ( libDir </> "share" </> "doc" ) |
3 changes: 3 additions & 0 deletions
3
cabal-testsuite/PackageTests/HaddockBuildDepends/repo/exe-1/Main.hs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
module Main where | ||
|
||
main = return () |
12 changes: 12 additions & 0 deletions
12
cabal-testsuite/PackageTests/HaddockBuildDepends/repo/exe-1/exe.cabal
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
name: exe | ||
version: 1 | ||
license: BSD3 | ||
author: Edward Z. Yang | ||
maintainer: ezyang@cs.stanford.edu | ||
build-type: Simple | ||
cabal-version: 2.0 | ||
|
||
executable exe | ||
build-depends: base | ||
main-is: Main.hs | ||
default-language: Haskell2010 |
1 change: 1 addition & 0 deletions
1
cabal-testsuite/PackageTests/HaddockBuildDepends/repo/lib-1/Lib.hs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
module Lib where |
13 changes: 13 additions & 0 deletions
13
cabal-testsuite/PackageTests/HaddockBuildDepends/repo/lib-1/lib.cabal
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
name: lib | ||
version: 1 | ||
license: BSD3 | ||
author: Edward Z. Yang | ||
maintainer: ezyang@cs.stanford.edu | ||
build-type: Simple | ||
cabal-version: 2.0 | ||
|
||
library | ||
build-depends: base | ||
build-tool-depends: exe:exe | ||
exposed-modules: Lib | ||
default-language: Haskell2010 |
4 changes: 4 additions & 0 deletions
4
cabal-testsuite/PackageTests/HaddockBuildDepends/src/MyLib.hs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
module MyLib (someFunc) where | ||
|
||
someFunc :: IO () | ||
someFunc = return () |