Skip to content
Snippets Groups Projects
Nadia Yvette Chambers's avatar
Nadia Chambers authored
* rm-old-base: remove ifdefs for pre-4.13 bases

4.13 and older have fallen out of the support window. Hence this commit
removes code only conditionally included for base 4.13 and older. Some
occasional transitive removals were implied and done in this same commit.

* Remove 8.6.5 from CI and Makefile

* Remove test for GHC <8.6.5

* Update GHC versions mentioned in the user guide

* rm-old-base: use Distribution.Compat.Prelude

The change was likely an artifact of a rebase.

* rm-old-base: restore builds not of cabal itself

The #ifdefs being generated need to be kept here so that projects other
than cabal can be built using older ghc versions and current cabal
versions.

* rm-old-base: restore older catchIO

This needs to be included so running with older bases and ghcs can be
done even while building cabal itself demands recent ghcs.

* Bump base lower bounds to >=4.13

* Update a few package version in the documentation

* rm-old-base: remove Distribution.Compat.Typeable

It's not needed with our currently supported ghcs.

* rm-old-base: restore T6906

---------

Co-authored-by: default avatarAndrea Bedini <andrea.bedini@tweag.io>
Co-authored-by: Brandon S. Allbery's avatarbrandon s allbery kf8nh <allbery.b@gmail.com>
Co-authored-by: default avatarmergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
356c2f4c
History
Code owners
Assign users and groups as approvers for specific file changes. Learn more.

Integration Tests

Each test is a shell script. Tests that share files (e.g., .cabal files) are grouped under a common sub-directory of IntegrationTests. The framework copies the whole group's directory before running each test, which allows tests to reuse files, yet run independently. A group's tests are further divided into should_run and should_fail directories, based on the expected exit status. For example, the test IntegrationTests/exec/should_fail/exit_with_failure_without_args.sh has access to all files under exec and is expected to fail.

Tests can specify their expected output. For a test named x.sh, x.out specifies stdout and x.err specifies stderr. Both files are optional. The framework expects an exact match between lines in the file and output, except for lines beginning with "RE:", which are interpreted as regular expressions.

IntegrationTests.hs defines several environment variables:

  • CABAL - The path to the executable being tested.
  • GHC_PKG - The path to ghc-pkg.
  • CABAL_ARGS - A common set of arguments for running cabal.
  • CABAL_ARGS_NO_CONFIG_FILE - CABAL_ARGS without --config-file.