Skip to content

Commit

Permalink
Add tests for #9799
Browse files Browse the repository at this point in the history
Add tests for #9799 about freeze qualifying all packages with 'any'
constraint scope.
  • Loading branch information
alt-romes committed Mar 14, 2024
1 parent aaf16c4 commit f3f9612
Show file tree
Hide file tree
Showing 37 changed files with 171 additions and 0 deletions.
5 changes: 5 additions & 0 deletions cabal-testsuite/PackageTests/Freeze/T9799a/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Revision history for T9799

## 0.1.0.0 -- YYYY-mm-dd

* First version. Released on an unsuspecting world.
2 changes: 2 additions & 0 deletions cabal-testsuite/PackageTests/Freeze/T9799a/Setup.hs
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
{-# LANGUAGE NoImplicitPrelude #-}
main = _
15 changes: 15 additions & 0 deletions cabal-testsuite/PackageTests/Freeze/T9799a/T9799.cabal
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
cabal-version: 3.0
name: T9799
version: 0.1.0.0
license: NONE
build-type: Custom
extra-doc-files: CHANGELOG.md

custom-setup
setup-depends: libA == 0.2.0.0

library
exposed-modules: MyLib
build-depends: libA == 0.1.0.0
hs-source-dirs: src
default-language: Haskell2010
9 changes: 9 additions & 0 deletions cabal-testsuite/PackageTests/Freeze/T9799a/cabal.test.hs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import Test.Cabal.Prelude
main = cabalTest $ do
withRepo "repo" . withSourceCopy $ do
cabal "v2-freeze" []
cwd <- fmap testCurrentDir getTestEnv
-- Guarantee that freeze writes scope-qualified constraints, not 'any'
-- qualified constraints.
assertFileDoesNotContain (cwd </> "cabal.project.freeze") "any.libA"
assertFileDoesContain (cwd </> "cabal.project.freeze") "setup.libA == 0.2.0.0"
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Revision history for libA0100

## 0.1.0.0 -- YYYY-mm-dd

* First version. Released on an unsuspecting world.
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
cabal-version: 3.0
name: libA
version: 0.1.0.0
license: NONE
build-type: Simple
extra-doc-files: CHANGELOG.md

library
exposed-modules: MyLib
hs-source-dirs: src
default-language: Haskell2010
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
module MyLib (someFunc) where

someFunc :: IO ()
someFunc = putStrLn "someFunc"
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Revision history for libA0100

## 0.1.0.0 -- YYYY-mm-dd

* First version. Released on an unsuspecting world.
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
cabal-version: 3.0
name: libA
version: 0.2.0.0
license: NONE
build-type: Simple
extra-doc-files: CHANGELOG.md

library
exposed-modules: MyLib
hs-source-dirs: src
default-language: Haskell2010
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
module MyLib (someFunc) where

someFunc :: IO ()
someFunc = putStrLn "someFunc"
4 changes: 4 additions & 0 deletions cabal-testsuite/PackageTests/Freeze/T9799a/src/MyLib.hs
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
module MyLib (someFunc) where

someFunc :: IO ()
someFunc = putStrLn "someFunc"
5 changes: 5 additions & 0 deletions cabal-testsuite/PackageTests/Freeze/T9799b/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Revision history for T9799

## 0.1.0.0 -- YYYY-mm-dd

* First version. Released on an unsuspecting world.
5 changes: 5 additions & 0 deletions cabal-testsuite/PackageTests/Freeze/T9799b/Setup.hs
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import MyLib
import Distribution.Simple
main = do
putStrLn $ "Setup: " ++ vers
defaultMain
15 changes: 15 additions & 0 deletions cabal-testsuite/PackageTests/Freeze/T9799b/T9799.cabal
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
cabal-version: 3.0
name: T9799
version: 0.1.0.0
license: NONE
build-type: Custom
extra-doc-files: CHANGELOG.md

custom-setup
setup-depends: libA, base, Cabal

library
exposed-modules: None
build-depends: libA, base, template-haskell
hs-source-dirs: src
default-language: Haskell2010
19 changes: 19 additions & 0 deletions cabal-testsuite/PackageTests/Freeze/T9799b/cabal.test.hs
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import Test.Cabal.Prelude
main = cabalTest $ do
withRepo "repo" . withSourceCopy $ do

-- Show how using 'any' qualifiers always with relaxed bounds can violate that
-- cabal freeze --constraint=... && cabal build
-- should be equal to
-- cabal build --constraint=...
--
-- Therefore, the packages in a cabal.project.freeze file must be properly qualified

out1 <- cabal' "v2-build" ["--constraint='setup.libA == 0.1.0.0'"]
assertOutputContains "Setup: libA-0.1.0.0" out1
assertOutputContains "Build: libA-0.2.0.0" out1

cabal "v2-freeze" ["--constraint=setup.libA == 0.1.0.0'"]
out2 <- cabal' "v2-build" []
assertOutputContains "Setup: libA-0.1.0.0" out2
assertOutputContains "Building: libA-0.2.0.0" out2
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Revision history for libA0100

## 0.1.0.0 -- YYYY-mm-dd

* First version. Released on an unsuspecting world.
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
cabal-version: 3.0
name: libA
version: 0.1.0.0
license: NONE
build-type: Simple
extra-doc-files: CHANGELOG.md

library
exposed-modules: MyLib
build-depends: base
hs-source-dirs: src
default-language: Haskell2010
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
module MyLib where

vers :: String
vers = "libA-0.1.0.0"
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Revision history for libA0100

## 0.1.0.0 -- YYYY-mm-dd

* First version. Released on an unsuspecting world.
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
cabal-version: 3.0
name: libA
version: 0.2.0.0
license: NONE
build-type: Simple
extra-doc-files: CHANGELOG.md

library
exposed-modules: MyLib
build-depends: base
hs-source-dirs: src
default-language: Haskell2010
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
module MyLib where

renamedVers :: String
renamedVers = "libA-0.2.0.0"
10 changes: 10 additions & 0 deletions cabal-testsuite/PackageTests/Freeze/T9799b/src/None.hs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{-# LANGUAGE TemplateHaskell #-}
module None where

import MyLib
import Language.Haskell.TH

$(do
runIO $ putStrLn $ "Building: " ++ renamedVers
[d| x = () |]
)

0 comments on commit f3f9612

Please sign in to comment.