From 34748108f676dcdd472766cd337c18207988f574 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christoph=20Gr=C3=BCninger?= <gruenich@dune-project.org> Date: Thu, 14 Jan 2016 09:35:22 +0100 Subject: [PATCH] [CMake] Build and mark skipped tests This implmenets FS#1538 for dune/istl/test --- dune/istl/test/CMakeLists.txt | 69 ++++++++++++------------ dune/istl/test/overlappingschwarztest.cc | 8 ++- dune/istl/test/superlutest.cc | 5 ++ dune/istl/test/test_pardiso.cc | 10 +++- dune/istl/test/umfpacktest.cc | 5 ++ 5 files changed, 59 insertions(+), 38 deletions(-) diff --git a/dune/istl/test/CMakeLists.txt b/dune/istl/test/CMakeLists.txt index 4d67861a2..21e4493cf 100644 --- a/dune/istl/test/CMakeLists.txt +++ b/dune/istl/test/CMakeLists.txt @@ -39,52 +39,51 @@ dune_add_test(SOURCES inverseoperator2prectest.cc) dune_add_test(SOURCES scaledidmatrixtest.cc) -if(HAVE_PARDISO) - dune_add_test(SOURCES test_pardiso.cc) -endif(HAVE_PARDISO) +# Pardiso tests +dune_add_test(SOURCES test_pardiso.cc + SKIP_ON_77) -if(SUPERLU_FOUND) - dune_add_test(NAME superlustest - SOURCES superlutest.cc - COMPILE_DEFINITIONS SUPERLU_NTYPE=0) +# SuperLU tests +dune_add_test(NAME superlustest + SOURCES superlutest.cc + COMPILE_DEFINITIONS SUPERLU_NTYPE=0 + SKIP_ON_77) - dune_add_test(SOURCES superlutest.cc) +dune_add_test(SOURCES superlutest.cc + SKIP_ON_77) - dune_add_test(NAME superluctest - SOURCES superlutest.cc - COMPILE_DEFINITIONS SUPERLU_NTYPE=2) +dune_add_test(NAME superluctest + SOURCES superlutest.cc + COMPILE_DEFINITIONS SUPERLU_NTYPE=2 + SKIP_ON_77) - dune_add_test(NAME superluztest - SOURCES superlutest.cc - COMPILE_DEFINITIONS SUPERLU_NTYPE=3) +dune_add_test(NAME superluztest + SOURCES superlutest.cc + COMPILE_DEFINITIONS SUPERLU_NTYPE=3 + SKIP_ON_77) - dune_add_test(SOURCES complexrhstest.cc - COMPILE_DEFINITIONS SUPERLU_NTYPE=3) -endif() +dune_add_test(SOURCES complexrhstest.cc + COMPILE_DEFINITIONS SUPERLU_NTYPE=3) -if(SuiteSparse_UMFPACK_FOUND) - dune_add_test(SOURCES umfpacktest.cc) - set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "umfpack_decomp") -endif() +# SuiteSparse tests +dune_add_test(SOURCES umfpacktest.cc + SKIP_ON_77) +set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "umfpack_decomp") -dune_add_test( - SOURCES ldltest.cc - SKIP_ON_77) +dune_add_test(SOURCES ldltest.cc + SKIP_ON_77) -dune_add_test( - SOURCES spqrtest.cc - SKIP_ON_77) +dune_add_test(SOURCES spqrtest.cc + SKIP_ON_77) -if ((SUPERLU_FOUND) OR (SuiteSparse_UMFPACK_FOUND)) - dune_add_test(SOURCES overlappingschwarztest.cc) -endif() +dune_add_test(SOURCES overlappingschwarztest.cc + SKIP_ON_77) -if(HAVE_MPI) - dune_add_test(SOURCES matrixredisttest.cc) +# MPI tests +dune_add_test(SOURCES matrixredisttest.cc) - dune_add_test(SOURCES vectorcommtest.cc) +dune_add_test(SOURCES vectorcommtest.cc) - dune_add_test(SOURCES matrixmarkettest.cc) -endif(HAVE_MPI) +dune_add_test(SOURCES matrixmarkettest.cc) exclude_from_headercheck(complexdata.hh) diff --git a/dune/istl/test/overlappingschwarztest.cc b/dune/istl/test/overlappingschwarztest.cc index 7955b3f65..e9510b3d3 100644 --- a/dune/istl/test/overlappingschwarztest.cc +++ b/dune/istl/test/overlappingschwarztest.cc @@ -18,7 +18,7 @@ int main(int argc, char** argv) { - +#if HAVE_SUPERLU || HAVE_SUITESPARSE_UMFPACK const int BS=1; int N=4; @@ -235,4 +235,10 @@ int main(int argc, char** argv) Dune::SeqSOR<BCRSMat,BVector,BVector> sor(mat, 1,1); Dune::LoopSolver<BVector> solver4(fop, sor, 1e-2,100,2); solver4.apply(x,b, res); + + return 0; +#else // HAVE_SUPERLU || HAVE_SUITESPARSE_UMFPACK + std::cerr << "You need SuperLU or SuiteSparse's UMFPack to run this test." << std::endl; + return 77; +#endif // HAVE_SUPERLU || HAVE_SUITESPARSE_UMFPACK } diff --git a/dune/istl/test/superlutest.cc b/dune/istl/test/superlutest.cc index f1e6e5902..1b1232381 100644 --- a/dune/istl/test/superlutest.cc +++ b/dune/istl/test/superlutest.cc @@ -37,6 +37,7 @@ typedef std::complex<double> FIELD_TYPE; int main(int argc, char** argv) try { +#if HAVE_SUPERLU const int BS=1; std::size_t N=100; @@ -84,6 +85,10 @@ try solver1.apply(reinterpret_cast<FIELD_TYPE*>(&x1[0]), reinterpret_cast<FIELD_TYPE*>(&b1[0])); return 0; +#else // HAVE_SUPERLU + std::cerr << "You need SuperLU to run this test." << std::endl; + return 77; +#endif // HAVE_SUPERLU } catch (std::exception &e) { diff --git a/dune/istl/test/test_pardiso.cc b/dune/istl/test/test_pardiso.cc index bc152163c..c4917cc57 100644 --- a/dune/istl/test/test_pardiso.cc +++ b/dune/istl/test/test_pardiso.cc @@ -13,6 +13,7 @@ int main(int argc, char** argv) { +#if HAVE_PARDISO try { /* Matrix data. */ @@ -186,10 +187,15 @@ int main(int argc, char** argv) return 0; } - catch (Dune::Exception &e) { - std::cerr << "Dune reported error: " << e << std::endl; + catch (std::exception &e) + { + throw; } catch (...) { std::cerr << "Unknown exception thrown!" << std::endl; } +#else // HAVE_PARDISO + std::cerr << "You need Pardiso to run this test." << std::endl; + return 77; +#endif // HAVE_PARDISO } diff --git a/dune/istl/test/umfpacktest.cc b/dune/istl/test/umfpacktest.cc index a3dadf626..726c847a4 100644 --- a/dune/istl/test/umfpacktest.cc +++ b/dune/istl/test/umfpacktest.cc @@ -17,6 +17,7 @@ int main(int argc, char** argv) { +#if HAVE_SUITESPARSE_UMFPACK try { typedef double FIELD_TYPE; @@ -81,4 +82,8 @@ int main(int argc, char** argv) std::cerr << "Dune reported an unknown error." << std::endl; exit(1); } +#else // HAVE_SUITESPARSE_UMFPACK + std::cerr << "You need SuiteSparse's UMFPack to run this test." << std::endl; + return 77; +#endif // HAVE_SUITESPARSE_UMFPACK } -- GitLab