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 bf1275acb23639ad73641d6f2ae37c94f8b36891..0000000000000000000000000000000000000000
--- 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 0000000000000000000000000000000000000000..e6fdbadb4398bc0e333947b5fb8021778310d943
--- /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 0000000000000000000000000000000000000000..867cd707d24a3880eb777c09d57411069d4d2c46
--- /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 0000000000000000000000000000000000000000..363db88cf3f00859fbc9f025c83a79887d7b6201
--- /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 5099098c6f37e8f24124d27a4e8f2cb56560f421..dc0889ae41913b42156a4c2b57b9e94bc1f5b5d3 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