Allow using different Cabal library versions for `cabal-install` tests with custom setup.
The idea here is to pass a `--package-db` flag to `cabal-install` which contains just `Cabal` and `Cabal-syntax` of the specific version. This allows `cabal-install` tests to use the in-tree `Cabal` version, something which you can easily run into and get very confused about when writing tests. There are a few options which can be passed to `cabal-tests` executable to control which Cabal library you will test against. 1. --boot-cabal-lib specifies to use the Cabal library bundled with the test compiler, this is the default and existing behaviour of the testsuite. 2. --intree-cabal-lib=<root_dir> specifies to use Cabal and Cabal-syntax from a specific directory, and `--test-tmp` indicates where to put the package database they are built with. 3. --specific-cabal-lib=<VERSION> specifies to use a specific Cabal version from hackage (ie 3.10.2.0) and installs the package database into --test-tmp=<DIR> The end result is that changes in the Cabal library can be tested with cabal-install tests in the testsuite. There have been a number of confusing issues with people writing tests for changes in the Cabal library which never ran because of cabal-install tests always used the boot Cabal library (see #9425 for one). Fixes #9681
Showing
- cabal-testsuite/PackageTests/CustomDep/cabal.test.hs 0 additions, 2 deletionscabal-testsuite/PackageTests/CustomDep/cabal.test.hs
- cabal-testsuite/PackageTests/CustomPlain/setup.test.hs 0 additions, 1 deletioncabal-testsuite/PackageTests/CustomPlain/setup.test.hs
- cabal-testsuite/PackageTests/CustomPreProcess/cabal.test.hs 0 additions, 2 deletionscabal-testsuite/PackageTests/CustomPreProcess/cabal.test.hs
- cabal-testsuite/PackageTests/CustomPreProcess/setup.test.hs 0 additions, 1 deletioncabal-testsuite/PackageTests/CustomPreProcess/setup.test.hs
- cabal-testsuite/PackageTests/CustomTestCoverage/setup.test.hs 1 addition, 1 deletion...l-testsuite/PackageTests/CustomTestCoverage/setup.test.hs
- cabal-testsuite/PackageTests/DuplicateModuleName/setup.test.hs 1 addition, 1 deletion...-testsuite/PackageTests/DuplicateModuleName/setup.test.hs
- cabal-testsuite/PackageTests/MultiRepl/CabalTooOld/cabal.out 0 additions, 11 deletionscabal-testsuite/PackageTests/MultiRepl/CabalTooOld/cabal.out
- cabal-testsuite/PackageTests/MultiRepl/CabalTooOld/cabal.test.hs 5 additions, 2 deletions...estsuite/PackageTests/MultiRepl/CabalTooOld/cabal.test.hs
- cabal-testsuite/PackageTests/MultiRepl/EnabledBadClosure/cabal.out 0 additions, 9 deletions...tsuite/PackageTests/MultiRepl/EnabledBadClosure/cabal.out
- cabal-testsuite/PackageTests/MultiRepl/EnabledBadClosure/cabal.test.hs 2 additions, 3 deletions...te/PackageTests/MultiRepl/EnabledBadClosure/cabal.test.hs
- cabal-testsuite/PackageTests/PackageDB/cabal-fail-no-packagedbs.test.hs 1 addition, 1 deletion...e/PackageTests/PackageDB/cabal-fail-no-packagedbs.test.hs
- cabal-testsuite/PackageTests/Regression/T4270/setup.test.hs 1 addition, 1 deletioncabal-testsuite/PackageTests/Regression/T4270/setup.test.hs
- cabal-testsuite/PackageTests/TestNameCollision/setup.test.hs 1 addition, 1 deletioncabal-testsuite/PackageTests/TestNameCollision/setup.test.hs
- cabal-testsuite/PackageTests/TestSuiteTests/LibV09/setup-deadlock.test.hs 1 addition, 1 deletion...PackageTests/TestSuiteTests/LibV09/setup-deadlock.test.hs
- cabal-testsuite/PackageTests/TestSuiteTests/LibV09/setup.test.hs 1 addition, 1 deletion...estsuite/PackageTests/TestSuiteTests/LibV09/setup.test.hs
- cabal-testsuite/README.md 26 additions, 2 deletionscabal-testsuite/README.md
- cabal-testsuite/cabal-testsuite.cabal 1 addition, 0 deletionscabal-testsuite/cabal-testsuite.cabal
- cabal-testsuite/main/cabal-tests.hs 83 additions, 1 deletioncabal-testsuite/main/cabal-tests.hs
- cabal-testsuite/src/Test/Cabal/Monad.hs 9 additions, 0 deletionscabal-testsuite/src/Test/Cabal/Monad.hs
- cabal-testsuite/src/Test/Cabal/Prelude.hs 52 additions, 19 deletionscabal-testsuite/src/Test/Cabal/Prelude.hs
Loading