46 #ifndef ERRORHANDLINGFORTESTS_HPP 47 #define ERRORHANDLINGFORTESTS_HPP 49 #include <Zoltan2_config.h> 54 #include <Teuchos_RCP.hpp> 55 #include <Teuchos_Comm.hpp> 56 #include <Teuchos_CommHelpers.hpp> 60 using Teuchos::reduceAll;
62 #ifdef HAVE_ZOLTAN2_MPI 64 #define TEST_FAIL_AND_THROW(comm, ok, s){ \ 65 int gval, lval=( (ok) ? 0 : 1); \ 66 reduceAll<int,int>(comm, Teuchos::REDUCE_SUM, 1, &lval, &gval);\ 68 throw std::runtime_error(std::string(s)); \ 72 #define TEST_FAIL_AND_EXIT(comm, ok, s, code){ \ 73 int gval, lval=( (ok) ? 0 : 1); \ 74 reduceAll<int,int>(comm, Teuchos::REDUCE_SUM, 1, &lval, &gval);\ 76 if ((comm).getRank() == 0){\ 77 std::cerr << "Error: " << s << std::endl;\ 78 std::cout << "Error: " << s << std::endl;\ 79 std::cout << "FAIL" << std::endl;\ 85 #define TEST_FAIL_AND_RETURN(comm, ok, s){ \ 86 int gval, lval=( (ok) ? 0 : 1); \ 87 reduceAll<int,int>(comm, Teuchos::REDUCE_SUM, 1, &lval, &gval);\ 89 if ((comm).getRank() == 0){\ 90 std::cerr << "Error: " << s << std::endl;\ 91 std::cout << "Error: " << s << std::endl;\ 92 std::cout << "FAIL" << std::endl;\ 98 #define TEST_FAIL_AND_RETURN_VALUE(comm, ok, s, rc){ \ 99 int gval, lval=( (ok) ? 0 : 1); \ 100 reduceAll<int,int>(comm, Teuchos::REDUCE_SUM, 1, &lval, &gval);\ 102 if ((comm).getRank() == 0){\ 103 std::cerr << "Error: " << s << std::endl;\ 104 std::cout << "Error: " << s << std::endl;\ 105 std::cout << "FAIL" << std::endl;\ 113 #define TEST_FAIL_AND_THROW(comm, ok, s) \ 115 throw std::runtime_error(std::string(s)); \ 118 #define TEST_FAIL_AND_EXIT(comm, ok, s, code) \ 120 std::cerr << "Error: " << s << std::endl;\ 121 std::cout << "Error: " << s << std::endl;\ 122 std::cout << "FAIL" << std::endl;\ 126 #define TEST_FAIL_AND_RETURN(comm, ok, s) \ 128 std::cerr << "Error: " << s << std::endl;\ 129 std::cout << "Error: " << s << std::endl;\ 130 std::cout << "FAIL" << std::endl;\ 134 #define TEST_FAIL_AND_RETURN_VALUE(comm, ok, s, rc) \ 136 std::cerr << "Error: " << s << std::endl;\ 137 std::cout << "Error: " << s << std::endl;\ 138 std::cout << "FAIL" << std::endl;\ 146 reduceAll<int,int>(*comm, Teuchos::REDUCE_SUM, 1, &
fail, &gfail);
152 int rank = comm->getRank();
153 int nprocs = comm->getSize();
155 for (
int p=0; p < nprocs; p++){
157 std::cout << rank <<
": " << fail << std::endl;
161 if (rank==0) std::cout <<
"FAIL" << std::endl;
int globalFail(const RCP< const Comm< int > > &comm, int fail)
void printFailureCode(const RCP< const Comm< int > > &comm, int fail)