Skip to content
Snippets Groups Projects
Alexis King's avatar
Alexis King authored
* wip: Add ArrowEnv, ArrowStackTup, and ArrowEnvTup
* wip: Use arrow wired-in families in typechecker
* Rewrite arrow desugaring
* Fix some arrow typing issues
* Fix most of the remaining arrow tests
* Reorganize arrow-related modules
* Tidy up a few comments
* Accept new type error output for now

  I want to improve the type error involving ArrowStackTup to hide the
  family from the error message, but that can come later.
* Accept some more modified error output in tests

  These mostly arise from making Either a wired-in type.
* Update two test cases for new control operator typing
* Expand the wired-in arrow type families in type errors

  I am not sure that this is really the right place to do this
  expansion.  It seems like it should probably go in the
  tidying/printing code, but it would be a significant expansion of the
  responsibility of tidying, so I don’t know if that makes sense yet. I
  will probably change this later.
* Rename a few things and add some new Notes
* Add another Note; rename some things; various minor refactorings
a607f1f9
History
Code owners
Assign users and groups as approvers for specific file changes. Learn more.

GHC Testsuite Readme

For the full testsuite documentation, please see here.

Quick Guide

Commands to run testsuite:

  • Full testsuite: make
  • Using more threads: make THREADS=12
  • Reduced (fast) testsuite: make fast
  • Run a specific test: make TEST=tc054
  • Test a specific 'way': make WAY=optllvm
  • Keeping the run directory after test run: make CLEANUP=0. You will find a directory {test_name}.run in the test's source directory.
  • Test a specific stage of GHC: make stage=1
  • Skip performance tests: make SKIP_PERF_TESTS=YES
  • Set verbosity: make VERBOSE=n where n=0: No per-test output, n=1: Only failures, n=2: Progress output, n=3: Include commands called (default), n=4: Include perf test results unconditionally, n=5: Echo commands in subsidiary make invocations
  • Pass in extra GHC options: make EXTRA_HC_OPTS=-fvectorize

You can also change directory to a specific test folder to run that individual test or group of tests. For example:

$ cd tests/array
$ make

Testsuite Ways

The testsuite can be run in a variety of 'ways'. This concept refers to different ways that GHC can compile the code. For example, using the native code generator (-fasm) is one way, while using the LLVM code generator (-fllvm) is another way.

The various ways that GHC supports are defined in config/ghc

Adding Tests

Please see the more extensive documentation here.