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_ways
is broken, this has been fixed by !5634 (merged) - But the second issue is that the
compile_fail
would cause running of only thenormal
way.
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