From 9ec402877af62e5657e6ec7c277950bd9ea0dff6 Mon Sep 17 00:00:00 2001 From: Kristen Kozak Date: Sat, 27 Aug 2016 17:39:58 -0700 Subject: [PATCH] Test for issue #3436. --- cabal-install/cabal-install.cabal | 7 +++++++ .../custom-setup/Cabal-99998/Cabal.cabal | 8 ++++++++ .../custom-setup/Cabal-99998/CabalMessage.hs | 3 +++ .../custom-setup/Cabal-99999/Cabal.cabal | 8 ++++++++ .../custom-setup/Cabal-99999/CabalMessage.hs | 3 +++ .../custom-setup/custom-setup/Setup.hs | 5 +++++ .../custom-setup/custom-setup/custom-setup.cabal | 9 +++++++++ .../custom-setup/installs_Cabal_as_setup_dep.sh | 15 +++++++++++++++ 8 files changed, 58 insertions(+) create mode 100644 cabal-install/tests/IntegrationTests/custom-setup/Cabal-99998/Cabal.cabal create mode 100644 cabal-install/tests/IntegrationTests/custom-setup/Cabal-99998/CabalMessage.hs create mode 100644 cabal-install/tests/IntegrationTests/custom-setup/Cabal-99999/Cabal.cabal create mode 100644 cabal-install/tests/IntegrationTests/custom-setup/Cabal-99999/CabalMessage.hs create mode 100644 cabal-install/tests/IntegrationTests/custom-setup/custom-setup/Setup.hs create mode 100644 cabal-install/tests/IntegrationTests/custom-setup/custom-setup/custom-setup.cabal create mode 100644 cabal-install/tests/IntegrationTests/custom-setup/installs_Cabal_as_setup_dep.sh diff --git a/cabal-install/cabal-install.cabal b/cabal-install/cabal-install.cabal index efe1faa6afd..dbd87bdbffa 100644 --- a/cabal-install/cabal-install.cabal +++ b/cabal-install/cabal-install.cabal @@ -23,6 +23,13 @@ Extra-Source-Files: -- Do NOT edit this section manually; instead, run the script. -- BEGIN gen-extra-source-files tests/IntegrationTests/common.sh + tests/IntegrationTests/custom-setup/Cabal-99998/Cabal.cabal + tests/IntegrationTests/custom-setup/Cabal-99998/CabalMessage.hs + tests/IntegrationTests/custom-setup/Cabal-99999/Cabal.cabal + tests/IntegrationTests/custom-setup/Cabal-99999/CabalMessage.hs + tests/IntegrationTests/custom-setup/custom-setup/Setup.hs + tests/IntegrationTests/custom-setup/custom-setup/custom-setup.cabal + tests/IntegrationTests/custom-setup/installs_Cabal_as_setup_dep.sh tests/IntegrationTests/custom/custom_dep.sh tests/IntegrationTests/custom/custom_dep/client/B.hs tests/IntegrationTests/custom/custom_dep/client/Setup.hs diff --git a/cabal-install/tests/IntegrationTests/custom-setup/Cabal-99998/Cabal.cabal b/cabal-install/tests/IntegrationTests/custom-setup/Cabal-99998/Cabal.cabal new file mode 100644 index 00000000000..46c46cb5a6b --- /dev/null +++ b/cabal-install/tests/IntegrationTests/custom-setup/Cabal-99998/Cabal.cabal @@ -0,0 +1,8 @@ +name: Cabal +version: 99998 +build-type: Simple +cabal-version: >= 1.2 + +library + build-depends: base + exposed-modules: CabalMessage diff --git a/cabal-install/tests/IntegrationTests/custom-setup/Cabal-99998/CabalMessage.hs b/cabal-install/tests/IntegrationTests/custom-setup/Cabal-99998/CabalMessage.hs new file mode 100644 index 00000000000..a643d2ed745 --- /dev/null +++ b/cabal-install/tests/IntegrationTests/custom-setup/Cabal-99998/CabalMessage.hs @@ -0,0 +1,3 @@ +module CabalMessage where + +message = "This is Cabal-99998" diff --git a/cabal-install/tests/IntegrationTests/custom-setup/Cabal-99999/Cabal.cabal b/cabal-install/tests/IntegrationTests/custom-setup/Cabal-99999/Cabal.cabal new file mode 100644 index 00000000000..be587f3ed54 --- /dev/null +++ b/cabal-install/tests/IntegrationTests/custom-setup/Cabal-99999/Cabal.cabal @@ -0,0 +1,8 @@ +name: Cabal +version: 99999 +build-type: Simple +cabal-version: >= 1.2 + +library + build-depends: base + exposed-modules: CabalMessage diff --git a/cabal-install/tests/IntegrationTests/custom-setup/Cabal-99999/CabalMessage.hs b/cabal-install/tests/IntegrationTests/custom-setup/Cabal-99999/CabalMessage.hs new file mode 100644 index 00000000000..e1a1ec7546f --- /dev/null +++ b/cabal-install/tests/IntegrationTests/custom-setup/Cabal-99999/CabalMessage.hs @@ -0,0 +1,3 @@ +module CabalMessage where + +message = "This is Cabal-99999" diff --git a/cabal-install/tests/IntegrationTests/custom-setup/custom-setup/Setup.hs b/cabal-install/tests/IntegrationTests/custom-setup/custom-setup/Setup.hs new file mode 100644 index 00000000000..86cab0c3e25 --- /dev/null +++ b/cabal-install/tests/IntegrationTests/custom-setup/custom-setup/Setup.hs @@ -0,0 +1,5 @@ +import CabalMessage (message) +import System.Exit +import System.IO + +main = hPutStrLn stderr message >> exitFailure diff --git a/cabal-install/tests/IntegrationTests/custom-setup/custom-setup/custom-setup.cabal b/cabal-install/tests/IntegrationTests/custom-setup/custom-setup/custom-setup.cabal new file mode 100644 index 00000000000..923de11e862 --- /dev/null +++ b/cabal-install/tests/IntegrationTests/custom-setup/custom-setup/custom-setup.cabal @@ -0,0 +1,9 @@ +name: custom-setup +version: 1.0 +build-type: Custom +cabal-version: >= 99999 + +custom-setup + setup-depends: base, Cabal >= 99999 + +library diff --git a/cabal-install/tests/IntegrationTests/custom-setup/installs_Cabal_as_setup_dep.sh b/cabal-install/tests/IntegrationTests/custom-setup/installs_Cabal_as_setup_dep.sh new file mode 100644 index 00000000000..00b756bd383 --- /dev/null +++ b/cabal-install/tests/IntegrationTests/custom-setup/installs_Cabal_as_setup_dep.sh @@ -0,0 +1,15 @@ +# Regression test for issue #3436 + +. ./common.sh +cabal sandbox init +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. +! cabal install custom-setup/ > output 2>&1 + +cat output +grep -q "This is Cabal-99999" output || die "Expected output from Cabal-99999"