MueLu: Choice of default instantiation for non-unit tests
Created by: cgcgcg
@trilinos/muelu
Expectations
COMPLEX=ON
builds should run non-unit tests that are instantiated on SCALAR=std::complex<double>
.
Current Behavior
When MueLu is built with more than one instantiation available, the non-unit tests are only run for one of the possible options. Currently, the ordering in https://github.com/trilinos/Trilinos/blob/7ed3576c481ce9a123a904678b1b0803998dffad/packages/xpetra/src/Utils/Xpetra_Parameters.hpp#L109-L144 is double-int-int
> float-int-int
> complex-int-int
> double-int-longlongint
> double-int-longlongint
, which means that whenever double-int-int
is available, non-unit tests are run with SCALAR=double
. In particular, all COMPLEX=ON
builds are running the double version of the non-unit tests.
Possible Solution
The default ordering can easily be changed, so that if complex is available, it is used in the tests. When I do this, however, a lot of tests fail because they implicitly assume that SCALAR=double
. I see three options to deal with this:
a) Fix all the tests.
b) Disable all the tests that fail. (We still test more code with SCALAR=complex
than before.)
c) Do nothing. (At least we will see on the dashboard which tests need attention.)