Testsuite does not run certain tests in ways other than 'normal'
Summary
The following test types would not run at all in ways other than normal.
compile_fail, multimod_compile_fail, multimod_compile_filter, multi_compile, multi_compile_fail
For example, this test would never run, and has been already reported in #16121
test('T8131', [cmm_src, only_ways(llvm_ways)], compile_fail, ['-no-hs-main'])
There are two problems in this
- the first is that
llvm_waysis broken, this has been fixed by !5634 (merged) - But the second issue is that the
compile_failwould cause running of only thenormalway.
The problem is in this code in https://gitlab.haskell.org/ghc/ghc/-/blob/master/testsuite/driver/testlib.py
, where only the compile and multimod_compile are being checked. In case of compile_fail the all_ways ends up with only ['normal'] which is ignored due to only_ways(llvm_ways).
# All the ways we might run this test
if func == compile or func == multimod_compile:
all_ways = config.compile_ways