From c1caede32392fd3fc846e58bb68e4dae949bcfd5 Mon Sep 17 00:00:00 2001 From: "Edward Z. Yang" <ezyang@cs.stanford.edu> Date: Fri, 25 Nov 2016 22:36:06 -0500 Subject: [PATCH] Port custom-setup/new_build_requires_Cabal_1_20 to new test suite. Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu> --- .../custom-setup/new_build_requires_Cabal_1_20.sh | 9 --------- .../PackageTests/Regression/T3932}/Setup.hs | 0 .../PackageTests/Regression/T3932/cabal.project | 1 + .../PackageTests/Regression/T3932/cabal.test.hs | 10 ++++++++++ .../Regression/T3932}/custom-setup-old-cabal.cabal | 0 .../Regression/T3932/repo/Cabal-1.18.0.0/Cabal.cabal | 6 ++++++ cabal-testsuite/Test/Cabal/Prelude.hs | 4 ++++ 7 files changed, 21 insertions(+), 9 deletions(-) delete mode 100644 cabal-install/tests/IntegrationTests/custom-setup/new_build_requires_Cabal_1_20.sh rename {cabal-install/tests/IntegrationTests/custom-setup/custom-setup-old-cabal => cabal-testsuite/PackageTests/Regression/T3932}/Setup.hs (100%) create mode 100644 cabal-testsuite/PackageTests/Regression/T3932/cabal.project create mode 100644 cabal-testsuite/PackageTests/Regression/T3932/cabal.test.hs rename {cabal-install/tests/IntegrationTests/custom-setup/custom-setup-old-cabal => cabal-testsuite/PackageTests/Regression/T3932}/custom-setup-old-cabal.cabal (100%) create mode 100644 cabal-testsuite/PackageTests/Regression/T3932/repo/Cabal-1.18.0.0/Cabal.cabal diff --git a/cabal-install/tests/IntegrationTests/custom-setup/new_build_requires_Cabal_1_20.sh b/cabal-install/tests/IntegrationTests/custom-setup/new_build_requires_Cabal_1_20.sh deleted file mode 100644 index bf1275acb2..0000000000 --- a/cabal-install/tests/IntegrationTests/custom-setup/new_build_requires_Cabal_1_20.sh +++ /dev/null @@ -1,9 +0,0 @@ -# Regression test for issue #3932 - -. ./common.sh - -cd custom-setup-old-cabal -! cabal new-build > output 2>&1 - -cat output -grep -q "(issue #3932) requires >=1.20" output || die "Expect constraint failure" diff --git a/cabal-install/tests/IntegrationTests/custom-setup/custom-setup-old-cabal/Setup.hs b/cabal-testsuite/PackageTests/Regression/T3932/Setup.hs similarity index 100% rename from cabal-install/tests/IntegrationTests/custom-setup/custom-setup-old-cabal/Setup.hs rename to cabal-testsuite/PackageTests/Regression/T3932/Setup.hs diff --git a/cabal-testsuite/PackageTests/Regression/T3932/cabal.project b/cabal-testsuite/PackageTests/Regression/T3932/cabal.project new file mode 100644 index 0000000000..e6fdbadb43 --- /dev/null +++ b/cabal-testsuite/PackageTests/Regression/T3932/cabal.project @@ -0,0 +1 @@ +packages: . diff --git a/cabal-testsuite/PackageTests/Regression/T3932/cabal.test.hs b/cabal-testsuite/PackageTests/Regression/T3932/cabal.test.hs new file mode 100644 index 0000000000..867cd707d2 --- /dev/null +++ b/cabal-testsuite/PackageTests/Regression/T3932/cabal.test.hs @@ -0,0 +1,10 @@ +import Test.Cabal.Prelude +main = cabalTest $ + -- This repository contains a Cabal-1.18.0.0 option, which would + -- normally would satisfy the repository, except for new-build's + -- extra constraint that setup Cabal must be 1.20. If we don't + -- have a choice like this available, the unsatisfied constraint + -- won't be reported. + withRepo "repo" $ do + fails (cabal' "new-build" []) >>= + assertOutputContains "(issue #3932) requires >=1.20" diff --git a/cabal-install/tests/IntegrationTests/custom-setup/custom-setup-old-cabal/custom-setup-old-cabal.cabal b/cabal-testsuite/PackageTests/Regression/T3932/custom-setup-old-cabal.cabal similarity index 100% rename from cabal-install/tests/IntegrationTests/custom-setup/custom-setup-old-cabal/custom-setup-old-cabal.cabal rename to cabal-testsuite/PackageTests/Regression/T3932/custom-setup-old-cabal.cabal diff --git a/cabal-testsuite/PackageTests/Regression/T3932/repo/Cabal-1.18.0.0/Cabal.cabal b/cabal-testsuite/PackageTests/Regression/T3932/repo/Cabal-1.18.0.0/Cabal.cabal new file mode 100644 index 0000000000..363db88cf3 --- /dev/null +++ b/cabal-testsuite/PackageTests/Regression/T3932/repo/Cabal-1.18.0.0/Cabal.cabal @@ -0,0 +1,6 @@ +name: Cabal +version: 1.18.0.0 +build-type: Simple +cabal-version: >= 1.10 + +library diff --git a/cabal-testsuite/Test/Cabal/Prelude.hs b/cabal-testsuite/Test/Cabal/Prelude.hs index 5099098c6f..dc0889ae41 100644 --- a/cabal-testsuite/Test/Cabal/Prelude.hs +++ b/cabal-testsuite/Test/Cabal/Prelude.hs @@ -96,6 +96,10 @@ withDirectory f = withReaderT withEnv :: [(String, Maybe String)] -> TestM a -> TestM a withEnv e = withReaderT (\env -> env { testEnvironment = testEnvironment env ++ e }) +-- HACK please don't use me +withEnvFilter :: (String -> Bool) -> TestM a -> TestM a +withEnvFilter p = withReaderT (\env -> env { testEnvironment = filter (p . fst) (testEnvironment env) }) + ------------------------------------------------------------------------ -- * Running Setup -- GitLab