From bf3414e2665e7d4f17460d749d9f9b7913761744 Mon Sep 17 00:00:00 2001 From: Kristen Kozak Date: Sat, 2 Dec 2017 15:53:46 -0800 Subject: [PATCH 1/2] Restore a few integration test comments and new-build package arguments. Some comments were lost in the migration to the new integration test suite. --- .../PackageTests/CustomWithoutCabal/cabal.test.hs | 6 +++++- .../CustomWithoutCabalDefaultMain/cabal.test.hs | 5 ++++- .../PackageTests/Regression/T3436/cabal.test.hs | 2 +- .../PackageTests/Regression/T3436/sandbox.test.hs | 7 +++++++ 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/cabal-testsuite/PackageTests/CustomWithoutCabal/cabal.test.hs b/cabal-testsuite/PackageTests/CustomWithoutCabal/cabal.test.hs index 17c4c625332..af429412c81 100644 --- a/cabal-testsuite/PackageTests/CustomWithoutCabal/cabal.test.hs +++ b/cabal-testsuite/PackageTests/CustomWithoutCabal/cabal.test.hs @@ -1,4 +1,8 @@ import Test.Cabal.Prelude main = cabalTest $ do - r <- fails $ cabal' "new-build" [] + + -- This package has explicit setup dependencies that do not include Cabal. + -- new-build should try to build it, but configure should fail because + -- Setup.hs just prints an error message and exits. + r <- fails $ cabal' "new-build" ["custom-setup-without-cabal"] assertOutputContains "My custom Setup" r diff --git a/cabal-testsuite/PackageTests/CustomWithoutCabalDefaultMain/cabal.test.hs b/cabal-testsuite/PackageTests/CustomWithoutCabalDefaultMain/cabal.test.hs index 7a2d9cd9586..fd4872b2909 100644 --- a/cabal-testsuite/PackageTests/CustomWithoutCabalDefaultMain/cabal.test.hs +++ b/cabal-testsuite/PackageTests/CustomWithoutCabalDefaultMain/cabal.test.hs @@ -1,6 +1,9 @@ import Test.Cabal.Prelude main = cabalTest $ do - r <- fails $ cabal' "new-build" [] + + -- This package has explicit setup dependencies that do not include Cabal. + -- Compilation should fail because Setup.hs imports Distribution.Simple. + r <- fails $ cabal' "new-build" ["custom-setup-without-cabal-defaultMain"] assertRegex "Should not have been able to import Cabal" "(Could not find module|Failed to load interface for).*Distribution\\.Simple" r {- diff --git a/cabal-testsuite/PackageTests/Regression/T3436/cabal.test.hs b/cabal-testsuite/PackageTests/Regression/T3436/cabal.test.hs index 663ab87e7fb..d66061809f7 100644 --- a/cabal-testsuite/PackageTests/Regression/T3436/cabal.test.hs +++ b/cabal-testsuite/PackageTests/Regression/T3436/cabal.test.hs @@ -4,5 +4,5 @@ main = cabalTest $ do -- isn't in the system database and thus we can't see if the -- depsolver incorrectly chooses it. Worth fixing if we figure -- out how to simulate the "global" database without root. - r <- fails $ cabal' "new-build" ["all"] + r <- fails $ cabal' "new-build" ["custom-setup"] assertOutputContains "This is Cabal-99999" r diff --git a/cabal-testsuite/PackageTests/Regression/T3436/sandbox.test.hs b/cabal-testsuite/PackageTests/Regression/T3436/sandbox.test.hs index 7129d79aad1..4bea0306cd9 100644 --- a/cabal-testsuite/PackageTests/Regression/T3436/sandbox.test.hs +++ b/cabal-testsuite/PackageTests/Regression/T3436/sandbox.test.hs @@ -1,7 +1,14 @@ import Test.Cabal.Prelude + +-- Regression test for issue #3436 main = cabalTest $ do withSandbox $ do cabal "install" ["./Cabal-99998"] cabal_sandbox "add-source" ["Cabal-99999"] + + -- Install custom-setup, which has a setup dependency on Cabal-99999. + -- cabal should build the setup script with Cabal-99999, but then + -- configure should fail because Setup just prints an error message + -- imported from Cabal and exits. r <- fails $ cabal' "install" ["custom-setup/"] assertOutputContains "This is Cabal-99999" r From e666eaaa8d11ac872cfbaaae4ca1764e7940272b Mon Sep 17 00:00:00 2001 From: Kristen Kozak Date: Sat, 2 Dec 2017 17:43:12 -0800 Subject: [PATCH 2/2] Update regression test for issue #3436 after #4909. #4909 changed the cabal-version of the package under test, so this commit adjusts the versions of the Cabal libraries in the test to be consistent with the cabal-version. --- .../{Cabal-99998 => Cabal-1.2}/Cabal.cabal | 2 +- .../T3436/Cabal-1.2/CabalMessage.hs | 3 +++ .../{Cabal-99999 => Cabal-2.0}/Cabal.cabal | 2 +- .../T3436/Cabal-2.0/CabalMessage.hs | 3 +++ .../T3436/Cabal-99998/CabalMessage.hs | 3 --- .../T3436/Cabal-99999/CabalMessage.hs | 3 --- .../PackageTests/Regression/T3436/cabal.out | 8 ++++---- .../Regression/T3436/cabal.project | 2 +- .../Regression/T3436/cabal.test.hs | 4 ++-- .../T3436/custom-setup/custom-setup.cabal | 2 +- .../PackageTests/Regression/T3436/sandbox.out | 16 ++++++++-------- .../Regression/T3436/sandbox.test.hs | 19 +++++++++++++------ 12 files changed, 37 insertions(+), 30 deletions(-) rename cabal-testsuite/PackageTests/Regression/T3436/{Cabal-99998 => Cabal-1.2}/Cabal.cabal (88%) create mode 100644 cabal-testsuite/PackageTests/Regression/T3436/Cabal-1.2/CabalMessage.hs rename cabal-testsuite/PackageTests/Regression/T3436/{Cabal-99999 => Cabal-2.0}/Cabal.cabal (88%) create mode 100644 cabal-testsuite/PackageTests/Regression/T3436/Cabal-2.0/CabalMessage.hs delete mode 100644 cabal-testsuite/PackageTests/Regression/T3436/Cabal-99998/CabalMessage.hs delete mode 100644 cabal-testsuite/PackageTests/Regression/T3436/Cabal-99999/CabalMessage.hs diff --git a/cabal-testsuite/PackageTests/Regression/T3436/Cabal-99998/Cabal.cabal b/cabal-testsuite/PackageTests/Regression/T3436/Cabal-1.2/Cabal.cabal similarity index 88% rename from cabal-testsuite/PackageTests/Regression/T3436/Cabal-99998/Cabal.cabal rename to cabal-testsuite/PackageTests/Regression/T3436/Cabal-1.2/Cabal.cabal index 46c46cb5a6b..76395b26b8e 100644 --- a/cabal-testsuite/PackageTests/Regression/T3436/Cabal-99998/Cabal.cabal +++ b/cabal-testsuite/PackageTests/Regression/T3436/Cabal-1.2/Cabal.cabal @@ -1,5 +1,5 @@ name: Cabal -version: 99998 +version: 1.2 build-type: Simple cabal-version: >= 1.2 diff --git a/cabal-testsuite/PackageTests/Regression/T3436/Cabal-1.2/CabalMessage.hs b/cabal-testsuite/PackageTests/Regression/T3436/Cabal-1.2/CabalMessage.hs new file mode 100644 index 00000000000..6e1a6484def --- /dev/null +++ b/cabal-testsuite/PackageTests/Regression/T3436/Cabal-1.2/CabalMessage.hs @@ -0,0 +1,3 @@ +module CabalMessage where + +message = "This is Cabal-1.2" diff --git a/cabal-testsuite/PackageTests/Regression/T3436/Cabal-99999/Cabal.cabal b/cabal-testsuite/PackageTests/Regression/T3436/Cabal-2.0/Cabal.cabal similarity index 88% rename from cabal-testsuite/PackageTests/Regression/T3436/Cabal-99999/Cabal.cabal rename to cabal-testsuite/PackageTests/Regression/T3436/Cabal-2.0/Cabal.cabal index be587f3ed54..88209657a23 100644 --- a/cabal-testsuite/PackageTests/Regression/T3436/Cabal-99999/Cabal.cabal +++ b/cabal-testsuite/PackageTests/Regression/T3436/Cabal-2.0/Cabal.cabal @@ -1,5 +1,5 @@ name: Cabal -version: 99999 +version: 2.0 build-type: Simple cabal-version: >= 1.2 diff --git a/cabal-testsuite/PackageTests/Regression/T3436/Cabal-2.0/CabalMessage.hs b/cabal-testsuite/PackageTests/Regression/T3436/Cabal-2.0/CabalMessage.hs new file mode 100644 index 00000000000..282d834c9e1 --- /dev/null +++ b/cabal-testsuite/PackageTests/Regression/T3436/Cabal-2.0/CabalMessage.hs @@ -0,0 +1,3 @@ +module CabalMessage where + +message = "This is Cabal-2.0" diff --git a/cabal-testsuite/PackageTests/Regression/T3436/Cabal-99998/CabalMessage.hs b/cabal-testsuite/PackageTests/Regression/T3436/Cabal-99998/CabalMessage.hs deleted file mode 100644 index a643d2ed745..00000000000 --- a/cabal-testsuite/PackageTests/Regression/T3436/Cabal-99998/CabalMessage.hs +++ /dev/null @@ -1,3 +0,0 @@ -module CabalMessage where - -message = "This is Cabal-99998" diff --git a/cabal-testsuite/PackageTests/Regression/T3436/Cabal-99999/CabalMessage.hs b/cabal-testsuite/PackageTests/Regression/T3436/Cabal-99999/CabalMessage.hs deleted file mode 100644 index e1a1ec7546f..00000000000 --- a/cabal-testsuite/PackageTests/Regression/T3436/Cabal-99999/CabalMessage.hs +++ /dev/null @@ -1,3 +0,0 @@ -module CabalMessage where - -message = "This is Cabal-99999" diff --git a/cabal-testsuite/PackageTests/Regression/T3436/cabal.out b/cabal-testsuite/PackageTests/Regression/T3436/cabal.out index 3ec9a0411b5..abbf3201c34 100644 --- a/cabal-testsuite/PackageTests/Regression/T3436/cabal.out +++ b/cabal-testsuite/PackageTests/Regression/T3436/cabal.out @@ -2,8 +2,8 @@ Resolving dependencies... Build profile: -w ghc- -O1 In order, the following will be built: - - Cabal-99999 (lib:Cabal) (first run) + - Cabal-2.0 (lib:Cabal) (first run) - custom-setup-1.0 (lib:custom-setup) (first run) -Configuring Cabal-99999... -Preprocessing library for Cabal-99999.. -Building library for Cabal-99999.. +Configuring Cabal-2.0... +Preprocessing library for Cabal-2.0.. +Building library for Cabal-2.0.. diff --git a/cabal-testsuite/PackageTests/Regression/T3436/cabal.project b/cabal-testsuite/PackageTests/Regression/T3436/cabal.project index edeb2ae3f65..0701ffdaa1c 100644 --- a/cabal-testsuite/PackageTests/Regression/T3436/cabal.project +++ b/cabal-testsuite/PackageTests/Regression/T3436/cabal.project @@ -1 +1 @@ -packages: custom-setup Cabal-99999 +packages: custom-setup Cabal-2.0 diff --git a/cabal-testsuite/PackageTests/Regression/T3436/cabal.test.hs b/cabal-testsuite/PackageTests/Regression/T3436/cabal.test.hs index d66061809f7..a9c08f7b927 100644 --- a/cabal-testsuite/PackageTests/Regression/T3436/cabal.test.hs +++ b/cabal-testsuite/PackageTests/Regression/T3436/cabal.test.hs @@ -1,8 +1,8 @@ import Test.Cabal.Prelude main = cabalTest $ do - -- NB: This test doesn't really test #3436, because Cabal-99998 + -- NB: This test doesn't really test #3436, because Cabal-1.2 -- isn't in the system database and thus we can't see if the -- depsolver incorrectly chooses it. Worth fixing if we figure -- out how to simulate the "global" database without root. r <- fails $ cabal' "new-build" ["custom-setup"] - assertOutputContains "This is Cabal-99999" r + assertOutputContains "This is Cabal-2.0" r diff --git a/cabal-testsuite/PackageTests/Regression/T3436/custom-setup/custom-setup.cabal b/cabal-testsuite/PackageTests/Regression/T3436/custom-setup/custom-setup.cabal index f06d6644610..cb626dce9db 100644 --- a/cabal-testsuite/PackageTests/Regression/T3436/custom-setup/custom-setup.cabal +++ b/cabal-testsuite/PackageTests/Regression/T3436/custom-setup/custom-setup.cabal @@ -4,6 +4,6 @@ version: 1.0 build-type: Custom custom-setup - setup-depends: base, Cabal >= 99999 + setup-depends: base, Cabal >= 2.0 library diff --git a/cabal-testsuite/PackageTests/Regression/T3436/sandbox.out b/cabal-testsuite/PackageTests/Regression/T3436/sandbox.out index 761a5e3feee..55470fd0fed 100644 --- a/cabal-testsuite/PackageTests/Regression/T3436/sandbox.out +++ b/cabal-testsuite/PackageTests/Regression/T3436/sandbox.out @@ -3,19 +3,19 @@ Writing a default package environment file to /sandbox.dist/cabal.sandbox. Creating a new sandbox at /sandbox.dist/sandbox # cabal install Resolving dependencies... -Configuring Cabal-99998... -Preprocessing library for Cabal-99998.. -Building library for Cabal-99998.. +Configuring Cabal-1.2... +Preprocessing library for Cabal-1.2.. +Building library for Cabal-1.2.. Installing library in -Installed Cabal-99998 +Installed Cabal-1.2 # cabal sandbox add-source # cabal install Resolving dependencies... -Configuring Cabal-99999... -Preprocessing library for Cabal-99999.. -Building library for Cabal-99999.. +Configuring Cabal-2.0... +Preprocessing library for Cabal-2.0.. +Building library for Cabal-2.0.. Installing library in -Installed Cabal-99999 +Installed Cabal-2.0 Failed to install custom-setup-1.0 cabal: Error: some packages failed to install: custom-setup-1.0-92JpsxIMpiQHysxYdDtEVq failed during the configure step. The exception was: diff --git a/cabal-testsuite/PackageTests/Regression/T3436/sandbox.test.hs b/cabal-testsuite/PackageTests/Regression/T3436/sandbox.test.hs index 4bea0306cd9..42aa2c5f557 100644 --- a/cabal-testsuite/PackageTests/Regression/T3436/sandbox.test.hs +++ b/cabal-testsuite/PackageTests/Regression/T3436/sandbox.test.hs @@ -1,14 +1,21 @@ import Test.Cabal.Prelude -- Regression test for issue #3436 +-- +-- #3436 occurred when a package with a custom setup specified a 'cabal-version' +-- that was newer than the version of the installed Cabal library, even though +-- the solver didn't choose the installed Cabal for the package's setup script. +-- +-- This test installs a fake Cabal-1.2 and then tries to build the package +-- custom-setup, which depends on a fake Cabal-2.0 (through cabal-version and +-- setup-depends). main = cabalTest $ do withSandbox $ do - cabal "install" ["./Cabal-99998"] - cabal_sandbox "add-source" ["Cabal-99999"] + cabal "install" ["./Cabal-1.2"] + cabal_sandbox "add-source" ["Cabal-2.0"] - -- Install custom-setup, which has a setup dependency on Cabal-99999. - -- cabal should build the setup script with Cabal-99999, but then - -- configure should fail because Setup just prints an error message + -- cabal should build custom-setup's setup script with Cabal-2.0, but + -- then configure should fail because Setup just prints an error message -- imported from Cabal and exits. r <- fails $ cabal' "install" ["custom-setup/"] - assertOutputContains "This is Cabal-99999" r + assertOutputContains "This is Cabal-2.0" r