From 1628c0447c55a4cd3211925990c9d3f3fe8d0c9d Mon Sep 17 00:00:00 2001 From: Youngsung Kim Date: Wed, 12 Jun 2024 10:34:01 -0400 Subject: [PATCH 1/2] ctest checks return code insteand PASS or FAIL output --- components/omega/test/CMakeLists.txt | 23 -- components/omega/test/base/BroadcastTest.cpp | 67 +-- components/omega/test/base/DataTypesTest.cpp | 135 ++++-- components/omega/test/base/DecompTest.cpp | 10 + components/omega/test/base/HaloTest.cpp | 5 + components/omega/test/base/IOTest.cpp | 391 +++++++++++++----- components/omega/test/base/MachEnvTest.cpp | 137 ++++-- components/omega/test/infra/ConfigTest.cpp | 267 +++++++++--- components/omega/test/infra/IOFieldTest.cpp | 3 + components/omega/test/infra/LoggingTest.cpp | 20 +- components/omega/test/infra/MetadataTest.cpp | 270 ++++++------ .../omega/test/infra/OmegaKokkosTest.cpp | 9 +- components/omega/test/infra/TimeMgrTest.cpp | 5 + 13 files changed, 941 insertions(+), 401 deletions(-) diff --git a/components/omega/test/CMakeLists.txt b/components/omega/test/CMakeLists.txt index e85f9eaab9a7..a80519bff659 100644 --- a/components/omega/test/CMakeLists.txt +++ b/components/omega/test/CMakeLists.txt @@ -206,26 +206,3 @@ add_omega_test( infra/OmegaKokkosTest.cpp "" ) - -################## -# test properties -################## - -set_tests_properties( - DATA_TYPES_TEST - MACHINE_ENV_TEST - BROADCAST_TEST - LOGGING_TEST - CONFIG_TEST - DECOMP_TEST - HALO_TEST - HORZMESH_TEST - HORZOPERATORS_PLANE_TEST - HORZOPERATORS_SPHERE_TEST - IO_TEST - METADATA_TEST - TIMEMGR_TEST - KOKKOS_TEST - IOFIELD_TEST - PROPERTIES FAIL_REGULAR_EXPRESSION "FAIL" PASS_REGULAR_EXPRESSION "PASS" -) diff --git a/components/omega/test/base/BroadcastTest.cpp b/components/omega/test/base/BroadcastTest.cpp index f81387ec2c78..1556c0e7b08c 100644 --- a/components/omega/test/base/BroadcastTest.cpp +++ b/components/omega/test/base/BroadcastTest.cpp @@ -16,7 +16,7 @@ #include template -void TestBroadcast(OMEGA::MachEnv *Env, std::string TypeName) { +void TestBroadcast(OMEGA::MachEnv *Env, std::string TypeName, int *RetVal) { const int MyTask = Env->getMyTask(); const int IsMyMaster = Env->isMasterTask(); @@ -49,9 +49,11 @@ void TestBroadcast(OMEGA::MachEnv *Env, std::string TypeName) { if (MyVal == FromVal) std::cout << TypeName << " scalar broadcast from a default task: PASS" << std::endl; - else + else { std::cout << TypeName << " scalar broadcast from a default task: FAIL" << std::endl; + *RetVal += 1; + } } if (MyTask == RootTask) @@ -67,10 +69,12 @@ void TestBroadcast(OMEGA::MachEnv *Env, std::string TypeName) { std::cout << TypeName << " scalar broadcast from a non-master task: PASS" << std::endl; - else + else { std::cout << TypeName << " scalar broadcast from a non-master task: FAIL" << std::endl; + *RetVal += 1; + } } if (MyTask == RootTask) @@ -86,10 +90,12 @@ void TestBroadcast(OMEGA::MachEnv *Env, std::string TypeName) { std::cout << TypeName << " scalar broadcast from the default env.: PASS" << std::endl; - else + else { std::cout << TypeName << " scalar broadcast from the default env.: FAIL" << std::endl; + *RetVal += 1; + } } // length of vector is not fixed @@ -115,10 +121,12 @@ void TestBroadcast(OMEGA::MachEnv *Env, std::string TypeName) { std::cout << TypeName << " vector broadcast from the default env.: PASS" << std::endl; - else + else { std::cout << TypeName << " vector broadcast from the default env.: FAIL" << std::endl; + *RetVal += 1; + } } } } @@ -130,6 +138,8 @@ void TestBroadcast(OMEGA::MachEnv *Env, std::string TypeName) { // int main(int argc, char *argv[]) { + int RetVal = 0; + // Initialize the global MPI environment MPI_Init(&argc, &argv); @@ -154,25 +164,25 @@ int main(int argc, char *argv[]) { OMEGA::MachEnv *DefEnv = OMEGA::MachEnv::getDefaultEnv(); // I4 Broadcast tests - TestBroadcast(DefEnv, "I4"); + TestBroadcast(DefEnv, "I4", &RetVal); // I8 Broadcast tests - TestBroadcast(DefEnv, "I8"); + TestBroadcast(DefEnv, "I8", &RetVal); // R4 Broadcast tests - TestBroadcast(DefEnv, "R4"); + TestBroadcast(DefEnv, "R4", &RetVal); // R8 Broadcast tests - TestBroadcast(DefEnv, "R8"); + TestBroadcast(DefEnv, "R8", &RetVal); // Real Broadcast tests - TestBroadcast(DefEnv, "Real"); + TestBroadcast(DefEnv, "Real", &RetVal); // boolean Broadcast tests - TestBroadcast(DefEnv, "bool"); + TestBroadcast(DefEnv, "bool", &RetVal); // string Broadcast tests - TestBroadcast(DefEnv, "string"); + TestBroadcast(DefEnv, "string", &RetVal); // Initialize general subset environment int InclSize = 4; @@ -198,22 +208,22 @@ int main(int argc, char *argv[]) { if (pos != std::end(InclTasks)) { if (MyVal == 1) - std::cout << "I4" - << " sub-group broadcast at rank " << MyTask << " : PASS" - << std::endl; - else - std::cout << "I4" - << " sub-group broadcast at rank " << MyTask << " : FAIL" - << std::endl; + std::cout << "I4" << " sub-group broadcast at rank " << MyTask + << " : PASS" << std::endl; + else { + std::cout << "I4" << " sub-group broadcast at rank " << MyTask + << " : FAIL" << std::endl; + RetVal += 1; + } } else { if (MyVal == -1) - std::cout << "I4" - << " sub-group broadcast at rank " << MyTask << " : PASS" - << std::endl; - else - std::cout << "I4" - << " sub-group broadcast at rank " << MyTask << " : FAIL" - << std::endl; + std::cout << "I4" << " sub-group broadcast at rank " << MyTask + << " : PASS" << std::endl; + else { + std::cout << "I4" << " sub-group broadcast at rank " << MyTask + << " : FAIL" << std::endl; + RetVal += 1; + } } OMEGA::MachEnv::removeEnv("Subset"); @@ -221,5 +231,10 @@ int main(int argc, char *argv[]) { // MPI_Status status; MPI_Finalize(); + if (RetVal >= 256) + RetVal = 255; + + return RetVal; + } // end of main //===-----------------------------------------------------------------------===/ diff --git a/components/omega/test/base/DataTypesTest.cpp b/components/omega/test/base/DataTypesTest.cpp index 93180ac74c5b..61354e522b70 100644 --- a/components/omega/test/base/DataTypesTest.cpp +++ b/components/omega/test/base/DataTypesTest.cpp @@ -22,6 +22,8 @@ using namespace OMEGA; int main(int argc, char *argv[]) { + int RetVal = 0; + // initialize environments MPI_Init(&argc, &argv); Kokkos::initialize(); @@ -41,45 +43,59 @@ int main(int argc, char *argv[]) { SizeTmp = sizeof(MyInt4); if (SizeTmp == 4) std::cout << "Size of I4: PASS" << std::endl; - else + else { + RetVal += 1; std::cout << "Size of I4: FAIL " << SizeTmp << std::endl; + } SizeTmp = sizeof(MyInt8); if (SizeTmp == 8) std::cout << "Size of I8: PASS" << std::endl; - else + else { + RetVal += 1; std::cout << "Size of I8: FAIL " << SizeTmp << std::endl; + } SizeTmp = sizeof(MyR4); if (SizeTmp == 4) std::cout << "Size of R4: PASS" << std::endl; - else + else { + RetVal += 1; std::cout << "Size of R4: FAIL " << SizeTmp << std::endl; + } SizeTmp = sizeof(MyR8); if (SizeTmp == 8) std::cout << "Size of R8: PASS" << std::endl; - else + else { + RetVal += 1; std::cout << "Size of R8: FAIL " << SizeTmp << std::endl; + } SizeTmp = sizeof(MyReal); #ifdef SINGLE_PRECISION if (SizeTmp == 4) std::cout << "Size of Real is 4: PASS" << std::endl; - else + else { + RetVal += 1; std::cout << "Size of Real is 4: FAIL " << SizeTmp << std::endl; + } #else if (SizeTmp == 8) std::cout << "Size of Real is 8: PASS" << std::endl; - else + else { + RetVal += 1; std::cout << "Size of Real is 8: FAIL " << SizeTmp << std::endl; + } #endif SizeTmp = sizeof(MyRealLiteral); if (SizeTmp == sizeof(Real)) std::cout << "Size of Real literal: PASS" << std::endl; - else + else { + RetVal += 1; std::cout << "Size of Real literal: FAIL " << SizeTmp << std::endl; + } // Test creation of device arrays and copying to/from host // by initializing on the device, copying to host and comparing with @@ -113,8 +129,10 @@ int main(int argc, char *argv[]) { if (icount == 0) std::cout << "Kokkos 1DI4 test: PASS" << std::endl; - else + else { + RetVal += 1; std::cout << "Kokkos 1DI4 test: FAIL" << std::endl; + } // Test for 2DI4 Array2DI4 TstArr2DI4("TstArr2DI4", NumCells, NumVertLvls); @@ -144,8 +162,10 @@ int main(int argc, char *argv[]) { if (icount == 0) std::cout << "Kokkos 2DI4 test: PASS" << std::endl; - else + else { + RetVal += 1; std::cout << "Kokkos 2DI4 test: FAIL" << std::endl; + } // Test for 3DI4 Array3DI4 TstArr3DI4("TstArr3DI4", NumTracers, NumCells, NumVertLvls); @@ -181,8 +201,10 @@ int main(int argc, char *argv[]) { if (icount == 0) std::cout << "Kokkos 3DI4 test: PASS" << std::endl; - else + else { + RetVal += 1; std::cout << "Kokkos 3DI4 test: FAIL" << std::endl; + } // Test for 4DI4 Array4DI4 TstArr4DI4("TstArr4DI4", NumTimeLvls, NumTracers, NumCells, @@ -224,8 +246,10 @@ int main(int argc, char *argv[]) { if (icount == 0) std::cout << "Kokkos 4DI4 test: PASS" << std::endl; - else + else { + RetVal += 1; std::cout << "Kokkos 4DI4 test: FAIL" << std::endl; + } // Test for 5DI4 Array5DI4 TstArr5DI4("TstArr5DI4", NumExtra, NumTimeLvls, NumTracers, @@ -272,8 +296,10 @@ int main(int argc, char *argv[]) { if (icount == 0) std::cout << "Kokkos 5DI4 test: PASS" << std::endl; - else + else { + RetVal += 1; std::cout << "Kokkos 5DI4 test: FAIL" << std::endl; + } // Test for 1DI8 Array1DI8 TstArr1DI8("TstArr1DI8", NumCells); @@ -297,8 +323,10 @@ int main(int argc, char *argv[]) { if (icount == 0) std::cout << "Kokkos 1DI8 test: PASS" << std::endl; - else + else { + RetVal += 1; std::cout << "Kokkos 1DI8 test: FAIL" << std::endl; + } // Test for 2DI8 Array2DI8 TstArr2DI8("TstArr2DI8", NumCells, NumVertLvls); @@ -328,8 +356,10 @@ int main(int argc, char *argv[]) { if (icount == 0) std::cout << "Kokkos 2DI8 test: PASS" << std::endl; - else + else { + RetVal += 1; std::cout << "Kokkos 2DI8 test: FAIL" << std::endl; + } // Test for 3DI8 Array3DI8 TstArr3DI8("TstArr3DI8", NumTracers, NumCells, NumVertLvls); @@ -365,8 +395,10 @@ int main(int argc, char *argv[]) { if (icount == 0) std::cout << "Kokkos 3DI8 test: PASS" << std::endl; - else + else { + RetVal += 1; std::cout << "Kokkos 3DI8 test: FAIL" << std::endl; + } // Test for 4DI8 Array4DI8 TstArr4DI8("TstArr4DI8", NumTimeLvls, NumTracers, NumCells, @@ -408,8 +440,10 @@ int main(int argc, char *argv[]) { if (icount == 0) std::cout << "Kokkos 4DI8 test: PASS" << std::endl; - else + else { + RetVal += 1; std::cout << "Kokkos 4DI8 test: FAIL" << std::endl; + } // Test for 5DI8 Array5DI8 TstArr5DI8("TstArr5DI8", NumExtra, NumTimeLvls, NumTracers, @@ -456,8 +490,10 @@ int main(int argc, char *argv[]) { if (icount == 0) std::cout << "Kokkos 5DI8 test: PASS" << std::endl; - else + else { + RetVal += 1; std::cout << "Kokkos 5DI8 test: FAIL" << std::endl; + } // Test for 1DR4 Array1DR4 TstArr1DR4("TstArr1DR4", NumCells); @@ -481,8 +517,10 @@ int main(int argc, char *argv[]) { if (icount == 0) std::cout << "Kokkos 1DR4 test: PASS" << std::endl; - else + else { + RetVal += 1; std::cout << "Kokkos 1DR4 test: FAIL" << std::endl; + } // Test for 2DR4 Array2DR4 TstArr2DR4("TstArr2DR4", NumCells, NumVertLvls); @@ -512,8 +550,10 @@ int main(int argc, char *argv[]) { if (icount == 0) std::cout << "Kokkos 2DR4 test: PASS" << std::endl; - else + else { + RetVal += 1; std::cout << "Kokkos 2DR4 test: FAIL" << std::endl; + } // Test for 3DR4 Array3DR4 TstArr3DR4("TstArr3DR4", NumTracers, NumCells, NumVertLvls); @@ -549,8 +589,10 @@ int main(int argc, char *argv[]) { if (icount == 0) std::cout << "Kokkos 3DR4 test: PASS" << std::endl; - else + else { + RetVal += 1; std::cout << "Kokkos 3DR4 test: FAIL" << std::endl; + } // Test for 4DR4 Array4DR4 TstArr4DR4("TstArr4DR4", NumTimeLvls, NumTracers, NumCells, @@ -592,8 +634,10 @@ int main(int argc, char *argv[]) { if (icount == 0) std::cout << "Kokkos 4DR4 test: PASS" << std::endl; - else + else { + RetVal += 1; std::cout << "Kokkos 4DR4 test: FAIL" << std::endl; + } // Test for 5DR4 Array5DR4 TstArr5DR4("TstArr5DR4", NumExtra, NumTimeLvls, NumTracers, @@ -640,8 +684,10 @@ int main(int argc, char *argv[]) { if (icount == 0) std::cout << "Kokkos 5DR4 test: PASS" << std::endl; - else + else { + RetVal += 1; std::cout << "Kokkos 5DR4 test: FAIL" << std::endl; + } // Test for 1DR8 Array1DR8 TstArr1DR8("TstArr1DR8", NumCells); @@ -665,8 +711,10 @@ int main(int argc, char *argv[]) { if (icount == 0) std::cout << "Kokkos 1DR8 test: PASS" << std::endl; - else + else { + RetVal += 1; std::cout << "Kokkos 1DR8 test: FAIL" << std::endl; + } // Test for 2DR8 Array2DR8 TstArr2DR8("TstArr2DR8", NumCells, NumVertLvls); @@ -696,8 +744,10 @@ int main(int argc, char *argv[]) { if (icount == 0) std::cout << "Kokkos 2DR8 test: PASS" << std::endl; - else + else { + RetVal += 1; std::cout << "Kokkos 2DR8 test: FAIL" << std::endl; + } // Test for 3DR8 Array3DR8 TstArr3DR8("TstArr3DR8", NumTracers, NumCells, NumVertLvls); @@ -733,8 +783,10 @@ int main(int argc, char *argv[]) { if (icount == 0) std::cout << "Kokkos 3DR8 test: PASS" << std::endl; - else + else { + RetVal += 1; std::cout << "Kokkos 3DR8 test: FAIL" << std::endl; + } // Test for 4DR8 Array4DR8 TstArr4DR8("TstArr4DR8", NumTimeLvls, NumTracers, NumCells, @@ -776,8 +828,10 @@ int main(int argc, char *argv[]) { if (icount == 0) std::cout << "Kokkos 4DR8 test: PASS" << std::endl; - else + else { + RetVal += 1; std::cout << "Kokkos 4DR8 test: FAIL" << std::endl; + } // Test for 5DR8 Array5DR8 TstArr5DR8("TstArr5DR8", NumExtra, NumTimeLvls, NumTracers, @@ -824,8 +878,10 @@ int main(int argc, char *argv[]) { if (icount == 0) std::cout << "Kokkos 5DR8 test: PASS" << std::endl; - else + else { + RetVal += 1; std::cout << "Kokkos 5DR8 test: FAIL" << std::endl; + } // Test for 1DReal Array1DReal TstArr1DReal("TstArr1DReal", NumCells); @@ -849,8 +905,10 @@ int main(int argc, char *argv[]) { if (icount == 0) std::cout << "Kokkos 1DReal test: PASS" << std::endl; - else + else { + RetVal += 1; std::cout << "Kokkos 1DReal test: FAIL" << std::endl; + } // Test for 2DReal Array2DReal TstArr2DReal("TstArr2DReal", NumCells, NumVertLvls); @@ -880,8 +938,10 @@ int main(int argc, char *argv[]) { if (icount == 0) std::cout << "Kokkos 2DReal test: PASS" << std::endl; - else + else { + RetVal += 1; std::cout << "Kokkos 2DReal test: FAIL" << std::endl; + } // Test for 3DReal Array3DReal TstArr3DReal("TstArr3DReal", NumTracers, NumCells, @@ -919,8 +979,10 @@ int main(int argc, char *argv[]) { if (icount == 0) std::cout << "Kokkos 3DReal test: PASS" << std::endl; - else + else { + RetVal += 1; std::cout << "Kokkos 3DReal test: FAIL" << std::endl; + } // Test for 4DReal Array4DReal TstArr4DReal("TstArr4DReal", NumTimeLvls, NumTracers, @@ -962,8 +1024,10 @@ int main(int argc, char *argv[]) { if (icount == 0) std::cout << "Kokkos 4DReal test: PASS" << std::endl; - else + else { + RetVal += 1; std::cout << "Kokkos 4DReal test: FAIL" << std::endl; + } // Test for 5DReal Array5DReal TstArr5DReal("TstArr5DReal", NumExtra, NumTimeLvls, @@ -1010,8 +1074,10 @@ int main(int argc, char *argv[]) { if (icount == 0) std::cout << "Kokkos 5DReal test: PASS" << std::endl; - else + else { + RetVal += 1; std::cout << "Kokkos 5DReal test: FAIL" << std::endl; + } // finalize environments // MPI_Status status; @@ -1019,5 +1085,10 @@ int main(int argc, char *argv[]) { Kokkos::finalize(); MPI_Finalize(); + if (RetVal >= 256) + RetVal = 255; + + return RetVal; + } // end of main //===-----------------------------------------------------------------------===/ diff --git a/components/omega/test/base/DecompTest.cpp b/components/omega/test/base/DecompTest.cpp index b559b62a3759..305f685b9df4 100644 --- a/components/omega/test/base/DecompTest.cpp +++ b/components/omega/test/base/DecompTest.cpp @@ -54,6 +54,8 @@ int initDecompTest() { // int main(int argc, char *argv[]) { + int RetVal = 0; + // Initialize the global MPI environment MPI_Init(&argc, &argv); Kokkos::initialize(); @@ -116,18 +118,21 @@ int main(int argc, char *argv[]) { if (SumCells == RefSumCells) { LOG_INFO("DecompTest: Sum cell ID test PASS"); } else { + RetVal += 1; LOG_INFO("DecompTest: Sum cell ID test FAIL {} {}", SumCells, RefSumCells); } if (SumEdges == RefSumEdges) { LOG_INFO("DecompTest: Sum edge ID test PASS"); } else { + RetVal += 1; LOG_INFO("DecompTest: Sum edge ID test FAIL {} {}", SumEdges, RefSumEdges); } if (SumVertices == RefSumVertices) { LOG_INFO("DecompTest: Sum vertex ID test PASS"); } else { + RetVal += 1; LOG_INFO("DecompTest: Sum vertex ID test FAIL {} {}", SumVertices, RefSumVertices); } @@ -142,5 +147,10 @@ int main(int argc, char *argv[]) { Kokkos::finalize(); MPI_Finalize(); + if (RetVal >= 256) + RetVal = 255; + + return RetVal; + } // end of main //===-----------------------------------------------------------------------===/ diff --git a/components/omega/test/base/HaloTest.cpp b/components/omega/test/base/HaloTest.cpp index 724a51999a1d..67b3fa4994f6 100644 --- a/components/omega/test/base/HaloTest.cpp +++ b/components/omega/test/base/HaloTest.cpp @@ -442,5 +442,10 @@ int main(int argc, char *argv[]) { Kokkos::finalize(); MPI_Finalize(); + if (TotErr >= 256) + TotErr = 255; + + return TotErr; + } // end of main //===-----------------------------------------------------------------------===/ diff --git a/components/omega/test/base/IOTest.cpp b/components/omega/test/base/IOTest.cpp index 3cab49efb6ef..b9cebc260deb 100644 --- a/components/omega/test/base/IOTest.cpp +++ b/components/omega/test/base/IOTest.cpp @@ -53,6 +53,8 @@ int initIOTest() { // int main(int argc, char *argv[]) { + int RetVal = 0; + // Initialize the global MPI environment MPI_Init(&argc, &argv); Kokkos::initialize(); @@ -175,74 +177,97 @@ int main(int argc, char *argv[]) { Err = OMEGA::IO::createDecomp(DecompCellI4, OMEGA::IO::IOTypeI4, 2, CellDims, CellArraySize, OffsetCell, OMEGA::IO::DefaultRearr); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error creating cell decomp I4 FAIL"); + } Err = OMEGA::IO::createDecomp(DecompCellI8, OMEGA::IO::IOTypeI8, 2, CellDims, CellArraySize, OffsetCell, OMEGA::IO::DefaultRearr); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error creating cell decomp I8 FAIL"); + } Err = OMEGA::IO::createDecomp(DecompCellR4, OMEGA::IO::IOTypeR4, 2, CellDims, CellArraySize, OffsetCell, OMEGA::IO::DefaultRearr); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error creating cell decomp R4 FAIL"); + } Err = OMEGA::IO::createDecomp(DecompCellR8, OMEGA::IO::IOTypeR8, 2, CellDims, CellArraySize, OffsetCell, OMEGA::IO::DefaultRearr); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error creating cell decomp R8 FAIL"); - + } Err = OMEGA::IO::createDecomp(DecompEdgeI4, OMEGA::IO::IOTypeI4, 2, EdgeDims, EdgeArraySize, OffsetEdge, OMEGA::IO::DefaultRearr); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error creating edge decomp I4 FAIL"); + } Err = OMEGA::IO::createDecomp(DecompEdgeI8, OMEGA::IO::IOTypeI8, 2, EdgeDims, EdgeArraySize, OffsetEdge, OMEGA::IO::DefaultRearr); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error creating edge decomp I8 FAIL"); + } Err = OMEGA::IO::createDecomp(DecompEdgeR4, OMEGA::IO::IOTypeR4, 2, EdgeDims, EdgeArraySize, OffsetEdge, OMEGA::IO::DefaultRearr); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error creating edge decomp R4 FAIL"); + } Err = OMEGA::IO::createDecomp(DecompEdgeR8, OMEGA::IO::IOTypeR8, 2, EdgeDims, EdgeArraySize, OffsetEdge, OMEGA::IO::DefaultRearr); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error creating edge decomp R8 FAIL"); - + } Err = OMEGA::IO::createDecomp(DecompVrtxI4, OMEGA::IO::IOTypeI4, 2, VrtxDims, VrtxArraySize, OffsetVrtx, OMEGA::IO::DefaultRearr); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error creating vertex decomp I4 FAIL"); + } Err = OMEGA::IO::createDecomp(DecompVrtxI8, OMEGA::IO::IOTypeI8, 2, VrtxDims, VrtxArraySize, OffsetVrtx, OMEGA::IO::DefaultRearr); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error creating vertex decomp I8 FAIL"); + } Err = OMEGA::IO::createDecomp(DecompVrtxR4, OMEGA::IO::IOTypeR4, 2, VrtxDims, VrtxArraySize, OffsetVrtx, OMEGA::IO::DefaultRearr); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error creating vertex decomp R4 FAIL"); + } Err = OMEGA::IO::createDecomp(DecompVrtxR8, OMEGA::IO::IOTypeR8, 2, VrtxDims, VrtxArraySize, OffsetVrtx, OMEGA::IO::DefaultRearr); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error creating vertex decomp R8 FAIL"); + } // Open a file for output int OutFileID; Err = OMEGA::IO::openFile( OutFileID, "IOTest.nc", OMEGA::IO::ModeWrite, OMEGA::IO::FmtDefault, OMEGA::IO::IfExists::Replace, OMEGA::IO::Precision::Double); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error opening file for output FAIL"); - + } // Define array dimensions int DimCellID; int DimEdgeID; @@ -250,18 +275,26 @@ int main(int argc, char *argv[]) { int DimVertID; Err = OMEGA::IO::defineDim(OutFileID, "NVertLevels", NVertLevels, DimVertID); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error defining vertical dimension FAIL"); + } Err = OMEGA::IO::defineDim(OutFileID, "NCells", NCellsGlobal, DimCellID); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error defining Cell dimension FAIL"); + } Err = OMEGA::IO::defineDim(OutFileID, "NEdges", NEdgesGlobal, DimEdgeID); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error defining Edge dimension FAIL"); + } Err = OMEGA::IO::defineDim(OutFileID, "NVertices", NVerticesGlobal, DimVrtxID); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error defining Vertex dimension FAIL"); + } // Write some global file metadata OMEGA::I4 FileMetaI4Ref = 2; @@ -272,24 +305,34 @@ int main(int argc, char *argv[]) { Err = OMEGA::IO::writeMeta("FileMetaI4", FileMetaI4Ref, OutFileID, OMEGA::IO::GlobalID); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error writing global I4 metadata FAIL"); + } Err = OMEGA::IO::writeMeta("FileMetaI8", FileMetaI8Ref, OutFileID, OMEGA::IO::GlobalID); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error writing global I8 metadata FAIL"); + } Err = OMEGA::IO::writeMeta("FileMetaR4", FileMetaR4Ref, OutFileID, OMEGA::IO::GlobalID); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error writing global R4 metadata FAIL"); + } Err = OMEGA::IO::writeMeta("FileMetaR8", FileMetaR8Ref, OutFileID, OMEGA::IO::GlobalID); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error writing global R8 metadata FAIL"); + } Err = OMEGA::IO::writeMeta("FileMetaDescr", FileMetaDescr, OutFileID, OMEGA::IO::GlobalID); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error writing global char metadata FAIL"); + } // Define variables/arrays int VarIDCellI4; @@ -311,54 +354,78 @@ int main(int argc, char *argv[]) { Err = OMEGA::IO::defineVar(OutFileID, "CellI4", OMEGA::IO::IOTypeI4, 2, CellDimIDs, VarIDCellI4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: Error defining CellI4 array FAIL"); + } Err = OMEGA::IO::defineVar(OutFileID, "CellI8", OMEGA::IO::IOTypeI8, 2, CellDimIDs, VarIDCellI8); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: Error defining CellI8 array FAIL"); + } Err = OMEGA::IO::defineVar(OutFileID, "CellR4", OMEGA::IO::IOTypeR4, 2, CellDimIDs, VarIDCellR4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: Error defining CellR4 array FAIL"); + } Err = OMEGA::IO::defineVar(OutFileID, "CellR8", OMEGA::IO::IOTypeR8, 2, CellDimIDs, VarIDCellR8); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: Error defining CellR8 array FAIL"); + } Err = OMEGA::IO::defineVar(OutFileID, "EdgeI4", OMEGA::IO::IOTypeI4, 2, EdgeDimIDs, VarIDEdgeI4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: Error defining EdgeI4 array FAIL"); + } Err = OMEGA::IO::defineVar(OutFileID, "EdgeI8", OMEGA::IO::IOTypeI8, 2, EdgeDimIDs, VarIDEdgeI8); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: Error defining EdgeI8 array FAIL"); + } Err = OMEGA::IO::defineVar(OutFileID, "EdgeR4", OMEGA::IO::IOTypeR4, 2, EdgeDimIDs, VarIDEdgeR4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: Error defining EdgeR4 array FAIL"); + } Err = OMEGA::IO::defineVar(OutFileID, "EdgeR8", OMEGA::IO::IOTypeR8, 2, EdgeDimIDs, VarIDEdgeR8); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: Error defining EdgeR8 array FAIL"); + } Err = OMEGA::IO::defineVar(OutFileID, "VrtxI4", OMEGA::IO::IOTypeI4, 2, VrtxDimIDs, VarIDVrtxI4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: Error defining VrtxI4 array FAIL"); + } Err = OMEGA::IO::defineVar(OutFileID, "VrtxI8", OMEGA::IO::IOTypeI8, 2, VrtxDimIDs, VarIDVrtxI8); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: Error defining VrtxI8 array FAIL"); + } Err = OMEGA::IO::defineVar(OutFileID, "VrtxR4", OMEGA::IO::IOTypeR4, 2, VrtxDimIDs, VarIDVrtxR4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: Error defining VrtxR4 array FAIL"); + } Err = OMEGA::IO::defineVar(OutFileID, "VrtxR8", OMEGA::IO::IOTypeR8, 2, VrtxDimIDs, VarIDVrtxR8); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: Error defining VrtxR8 array FAIL"); + } // Add Variable metadata just for one array OMEGA::I4 VarMetaI4Ref = 3; @@ -369,29 +436,41 @@ int main(int argc, char *argv[]) { Err = OMEGA::IO::writeMeta("VarMetaI4", VarMetaI4Ref, OutFileID, VarIDCellI4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error writing var I4 metadata FAIL"); + } Err = OMEGA::IO::writeMeta("VarMetaI8", VarMetaI8Ref, OutFileID, VarIDCellI4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error writing var I8 metadata FAIL"); + } Err = OMEGA::IO::writeMeta("VarMetaR4", VarMetaR4Ref, OutFileID, VarIDCellI4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error writing var R4 metadata FAIL"); + } Err = OMEGA::IO::writeMeta("VarMetaR8", VarMetaR8Ref, OutFileID, VarIDCellI4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error writing var R8 metadata FAIL"); + } Err = OMEGA::IO::writeMeta("VarMetaDescr", VarMetaDescrRef, OutFileID, VarIDCellI4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error writing var char metadata FAIL"); + } // Exit define mode Err = OMEGA::IO::endDefinePhase(OutFileID); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error ending define mode FAIL"); + } // Write variables OMEGA::I4 FillI4 = -999; @@ -402,76 +481,104 @@ int main(int argc, char *argv[]) { Err = OMEGA::IO::writeArray(RefI4Cell.data(), NCellsSize * NVertLevels, &FillI4, OutFileID, DecompCellI4, VarIDCellI4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error writing I4 array on cells FAIL"); + } Err = OMEGA::IO::writeArray(RefI8Cell.data(), NCellsSize * NVertLevels, &FillI8, OutFileID, DecompCellI8, VarIDCellI8); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error writing I8 array on cells FAIL"); + } Err = OMEGA::IO::writeArray(RefR4Cell.data(), NCellsSize * NVertLevels, &FillR4, OutFileID, DecompCellR4, VarIDCellR4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error writing R4 array on cells FAIL"); + } Err = OMEGA::IO::writeArray(RefR8Cell.data(), NCellsSize * NVertLevels, &FillR8, OutFileID, DecompCellR8, VarIDCellR8); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error writing R8 array on cells FAIL"); + } Err = OMEGA::IO::writeArray(RefI4Edge.data(), NEdgesSize * NVertLevels, &FillI4, OutFileID, DecompEdgeI4, VarIDEdgeI4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error writing I4 array on Edges FAIL"); + } Err = OMEGA::IO::writeArray(RefI8Edge.data(), NEdgesSize * NVertLevels, &FillI8, OutFileID, DecompEdgeI8, VarIDEdgeI8); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error writing I8 array on Edges FAIL"); + } Err = OMEGA::IO::writeArray(RefR4Edge.data(), NEdgesSize * NVertLevels, &FillR4, OutFileID, DecompEdgeR4, VarIDEdgeR4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error writing R4 array on Edges FAIL"); + } Err = OMEGA::IO::writeArray(RefR8Edge.data(), NEdgesSize * NVertLevels, &FillR8, OutFileID, DecompEdgeR8, VarIDEdgeR8); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error writing R8 array on Edges FAIL"); + } Err = OMEGA::IO::writeArray(RefI4Vrtx.data(), NVerticesSize * NVertLevels, &FillI4, OutFileID, DecompVrtxI4, VarIDVrtxI4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error writing I4 array on vertices FAIL"); + } Err = OMEGA::IO::writeArray(RefI8Vrtx.data(), NVerticesSize * NVertLevels, &FillI8, OutFileID, DecompVrtxI8, VarIDVrtxI8); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error writing I8 array on vertices FAIL"); + } Err = OMEGA::IO::writeArray(RefR4Vrtx.data(), NVerticesSize * NVertLevels, &FillR4, OutFileID, DecompVrtxR4, VarIDVrtxR4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error writing R4 array on vertices FAIL"); + } Err = OMEGA::IO::writeArray(RefR8Vrtx.data(), NVerticesSize * NVertLevels, &FillR8, OutFileID, DecompVrtxR8, VarIDVrtxR8); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error writing R8 array on vertices FAIL"); + } // Finished writing, close file Err = OMEGA::IO::closeFile(OutFileID); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error closing output file FAIL"); + } // Open a file for reading to verify read/write int InFileID; Err = OMEGA::IO::openFile(InFileID, "IOTest.nc", OMEGA::IO::ModeRead); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error opening file for reading FAIL"); + } // Get dimension lengths to verify read/write of dimension info OMEGA::I4 NVertLevelsNew = @@ -479,6 +586,7 @@ int main(int argc, char *argv[]) { if (NVertLevelsNew == NVertLevels) { LOG_INFO("IOTest: read/write vert dimension test PASS"); } else { + RetVal += 1; LOG_INFO("IOTest: read/write vert dimension test FAIL"); } @@ -486,6 +594,7 @@ int main(int argc, char *argv[]) { if (NCellsNew == NCellsGlobal) { LOG_INFO("IOTest: read/write cell dimension test PASS"); } else { + RetVal += 1; LOG_INFO("IOTest: read/write cell dimension test FAIL"); } @@ -493,6 +602,7 @@ int main(int argc, char *argv[]) { if (NEdgesNew == NEdgesGlobal) { LOG_INFO("IOTest: read/write edge dimension test PASS"); } else { + RetVal += 1; LOG_INFO("IOTest: read/write edge dimension test FAIL"); } @@ -500,6 +610,7 @@ int main(int argc, char *argv[]) { if (NVerticesNew == NVerticesGlobal) { LOG_INFO("IOTest: read/write vertex dimension test PASS"); } else { + RetVal += 1; LOG_INFO("IOTest: read/write vertex dimension test FAIL"); } @@ -512,51 +623,66 @@ int main(int argc, char *argv[]) { Err = OMEGA::IO::readMeta("FileMetaI4", FileMetaI4New, InFileID, OMEGA::IO::GlobalID); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error reading file I4 metadata FAIL"); + } if (FileMetaI4New == FileMetaI4Ref) { LOG_INFO("IOTest: read/write file metadata I4 test PASS"); } else { + RetVal += 1; LOG_INFO("IOTest: read/write file metadata I4 test FAIL"); } Err = OMEGA::IO::readMeta("FileMetaI8", FileMetaI8New, InFileID, OMEGA::IO::GlobalID); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error reading file I8 metadata FAIL"); + } if (FileMetaI8New == FileMetaI8Ref) { LOG_INFO("IOTest: read/write file metadata I8 test PASS"); } else { + RetVal += 1; LOG_INFO("IOTest: read/write file metadata I8 test FAIL"); } Err = OMEGA::IO::readMeta("FileMetaR4", FileMetaR4New, InFileID, OMEGA::IO::GlobalID); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error reading file R4 metadata FAIL"); + } if (FileMetaR4New == FileMetaR4Ref) { LOG_INFO("IOTest: read/write file metadata R4 test PASS"); } else { + RetVal += 1; LOG_INFO("IOTest: read/write file metadata R4 test FAIL"); } Err = OMEGA::IO::readMeta("FileMetaR8", FileMetaR8New, InFileID, OMEGA::IO::GlobalID); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error reading file R8 metadata FAIL"); + } if (FileMetaR8New == FileMetaR8Ref) { LOG_INFO("IOTest: read/write file metadata R8 test PASS"); } else { + RetVal += 1; LOG_INFO("IOTest: read/write file metadata R8 test FAIL"); } Err = OMEGA::IO::readMeta("FileMetaDescr", FileMetaDescrNew, InFileID, OMEGA::IO::GlobalID); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error reading file string metadata FAIL"); + } if (FileMetaDescrNew == FileMetaDescr) { LOG_INFO("IOTest: read/write file metadata string test PASS"); } else { + RetVal += 1; LOG_INFO("IOTest: read/write file metadata string test FAIL"); } @@ -578,54 +704,78 @@ int main(int argc, char *argv[]) { Err = OMEGA::IO::readArray(NewI4Cell.data(), NCellsSize * NVertLevels, "CellI4", InFileID, DecompCellI4, VarIDCellI4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error writing I4 array on cells FAIL"); + } Err = OMEGA::IO::readArray(NewI8Cell.data(), NCellsSize * NVertLevels, "CellI8", InFileID, DecompCellI8, VarIDCellI8); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error writing I8 array on cells FAIL"); + } Err = OMEGA::IO::readArray(NewR4Cell.data(), NCellsSize * NVertLevels, "CellR4", InFileID, DecompCellR4, VarIDCellR4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error writing R4 array on cells FAIL"); + } Err = OMEGA::IO::readArray(NewR8Cell.data(), NCellsSize * NVertLevels, "CellR8", InFileID, DecompCellR8, VarIDCellR8); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error writing R8 array on cells FAIL"); + } Err = OMEGA::IO::readArray(NewI4Edge.data(), NEdgesSize * NVertLevels, "EdgeI4", InFileID, DecompEdgeI4, VarIDEdgeI4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error writing I4 array on Edges FAIL"); + } Err = OMEGA::IO::readArray(NewI8Edge.data(), NEdgesSize * NVertLevels, "EdgeI8", InFileID, DecompEdgeI8, VarIDEdgeI8); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error writing I8 array on Edges FAIL"); + } Err = OMEGA::IO::readArray(NewR4Edge.data(), NEdgesSize * NVertLevels, "EdgeR4", InFileID, DecompEdgeR4, VarIDEdgeR4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error writing R4 array on Edges FAIL"); + } Err = OMEGA::IO::readArray(NewR8Edge.data(), NEdgesSize * NVertLevels, "EdgeR8", InFileID, DecompEdgeR8, VarIDEdgeR8); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error writing R8 array on Edges FAIL"); + } Err = OMEGA::IO::readArray(NewI4Vrtx.data(), NVerticesSize * NVertLevels, "VrtxI4", InFileID, DecompVrtxI4, VarIDVrtxI4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error writing I4 array on vertices FAIL"); + } Err = OMEGA::IO::readArray(NewI8Vrtx.data(), NVerticesSize * NVertLevels, "VrtxI8", InFileID, DecompVrtxI8, VarIDVrtxI8); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error writing I8 array on vertices FAIL"); + } Err = OMEGA::IO::readArray(NewR4Vrtx.data(), NVerticesSize * NVertLevels, "VrtxR4", InFileID, DecompVrtxR4, VarIDVrtxR4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error writing R4 array on vertices FAIL"); + } Err = OMEGA::IO::readArray(NewR8Vrtx.data(), NVerticesSize * NVertLevels, "VrtxR8", InFileID, DecompVrtxR8, VarIDVrtxR8); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error writing R8 array on vertices FAIL"); + } // Check that arrays match the reference cases that were written // Only check the owned values - these would need to be followed by @@ -650,21 +800,25 @@ int main(int argc, char *argv[]) { if (Err1 == 0) { LOG_INFO("IOTest: read/write array I4 on Cells test PASS"); } else { + RetVal += 1; LOG_INFO("IOTest: read/write array I4 on Cells test FAIL"); } if (Err2 == 0) { LOG_INFO("IOTest: read/write array I8 on Cells test PASS"); } else { + RetVal += 1; LOG_INFO("IOTest: read/write array I8 on Cells test FAIL"); } if (Err3 == 0) { LOG_INFO("IOTest: read/write array R4 on Cells test PASS"); } else { + RetVal += 1; LOG_INFO("IOTest: read/write array R4 on Cells test FAIL"); } if (Err4 == 0) { LOG_INFO("IOTest: read/write array R8 on Cells test PASS"); } else { + RetVal += 1; LOG_INFO("IOTest: read/write array R8 on Cells test FAIL"); } @@ -687,21 +841,25 @@ int main(int argc, char *argv[]) { if (Err1 == 0) { LOG_INFO("IOTest: read/write array I4 on Edges test PASS"); } else { + RetVal += 1; LOG_INFO("IOTest: read/write array I4 on Edges test FAIL"); } if (Err2 == 0) { LOG_INFO("IOTest: read/write array I8 on Edges test PASS"); } else { + RetVal += 1; LOG_INFO("IOTest: read/write array I8 on Edges test FAIL"); } if (Err3 == 0) { LOG_INFO("IOTest: read/write array R4 on Edges test PASS"); } else { + RetVal += 1; LOG_INFO("IOTest: read/write array R4 on Edges test FAIL"); } if (Err4 == 0) { LOG_INFO("IOTest: read/write array R8 on Edges test PASS"); } else { + RetVal += 1; LOG_INFO("IOTest: read/write array R8 on Edges test FAIL"); } @@ -724,21 +882,25 @@ int main(int argc, char *argv[]) { if (Err1 == 0) { LOG_INFO("IOTest: read/write array I4 on Vertices test PASS"); } else { + RetVal += 1; LOG_INFO("IOTest: read/write array I4 on Vertices test FAIL"); } if (Err2 == 0) { LOG_INFO("IOTest: read/write array I8 on Vertices test PASS"); } else { + RetVal += 1; LOG_INFO("IOTest: read/write array I8 on Vertices test FAIL"); } if (Err3 == 0) { LOG_INFO("IOTest: read/write array R4 on Vertices test PASS"); } else { + RetVal += 1; LOG_INFO("IOTest: read/write array R4 on Vertices test FAIL"); } if (Err4 == 0) { LOG_INFO("IOTest: read/write array R8 on Vertices test PASS"); } else { + RetVal += 1; LOG_INFO("IOTest: read/write array R8 on Vertices test FAIL"); } @@ -751,94 +913,135 @@ int main(int argc, char *argv[]) { Err = OMEGA::IO::readMeta("VarMetaI4", VarMetaI4New, InFileID, VarIDCellI4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error reading var I4 metadata FAIL"); + } if (VarMetaI4New == VarMetaI4Ref) { LOG_INFO("IOTest: read/write var metadata I4 test PASS"); } else { + RetVal += 1; LOG_INFO("IOTest: read/write var metadata I4 test FAIL"); } Err = OMEGA::IO::readMeta("VarMetaI8", VarMetaI8New, InFileID, VarIDCellI4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error reading var I8 metadata FAIL"); + } if (VarMetaI8New == VarMetaI8Ref) { LOG_INFO("IOTest: read/write var metadata I8 test PASS"); } else { + RetVal += 1; LOG_INFO("IOTest: read/write var metadata I8 test FAIL"); } Err = OMEGA::IO::readMeta("VarMetaR4", VarMetaR4New, InFileID, VarIDCellI4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error reading var R4 metadata FAIL"); + } if (VarMetaR4New == VarMetaR4Ref) { LOG_INFO("IOTest: read/write var metadata R4 test PASS"); } else { + RetVal += 1; LOG_INFO("IOTest: read/write var metadata R4 test FAIL"); } Err = OMEGA::IO::readMeta("VarMetaR8", VarMetaR8New, InFileID, VarIDCellI4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error reading var R8 metadata FAIL"); + } if (VarMetaR8New == VarMetaR8Ref) { LOG_INFO("IOTest: read/write var metadata R8 test PASS"); } else { + RetVal += 1; LOG_INFO("IOTest: read/write var metadata R8 test FAIL"); } Err = OMEGA::IO::readMeta("VarMetaDescr", VarMetaDescrNew, InFileID, VarIDCellI4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error reading var string metadata FAIL"); + } if (VarMetaDescrNew == VarMetaDescrRef) { LOG_INFO("IOTest: read/write var metadata string test PASS"); } else { + RetVal += 1; LOG_INFO("IOTest: read/write var metadata string test FAIL"); } // Finished reading, close file Err = OMEGA::IO::closeFile(InFileID); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error closing input file FAIL"); + } // Test destruction of Decompositions Err = OMEGA::IO::destroyDecomp(DecompCellI4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error destroying decomp cell I4 FAIL"); + } Err = OMEGA::IO::destroyDecomp(DecompCellI8); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error destroying decomp cell I8 FAIL"); + } Err = OMEGA::IO::destroyDecomp(DecompCellR4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error destroying decomp cell R4 FAIL"); + } Err = OMEGA::IO::destroyDecomp(DecompCellR8); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error destroying decomp cell R8 FAIL"); + } Err = OMEGA::IO::destroyDecomp(DecompEdgeI4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error destroying decomp Edge I4 FAIL"); + } Err = OMEGA::IO::destroyDecomp(DecompEdgeI8); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error destroying decomp Edge I8 FAIL"); + } Err = OMEGA::IO::destroyDecomp(DecompEdgeR4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error destroying decomp Edge R4 FAIL"); + } Err = OMEGA::IO::destroyDecomp(DecompEdgeR8); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error destroying decomp Edge R8 FAIL"); + } Err = OMEGA::IO::destroyDecomp(DecompVrtxI4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error destroying decomp Vrtx I4 FAIL"); + } Err = OMEGA::IO::destroyDecomp(DecompVrtxI8); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error destroying decomp Vrtx I8 FAIL"); + } Err = OMEGA::IO::destroyDecomp(DecompVrtxR4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error destroying decomp Vrtx R4 FAIL"); + } Err = OMEGA::IO::destroyDecomp(DecompVrtxR8); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_ERROR("IOTest: error destroying decomp Vrtx R8 FAIL"); + } // Exit environments OMEGA::Decomp::clear(); @@ -849,5 +1052,9 @@ int main(int argc, char *argv[]) { Kokkos::finalize(); MPI_Finalize(); + if (RetVal >= 256) + RetVal = 255; + + return RetVal; } // end of main //===-----------------------------------------------------------------------===/ diff --git a/components/omega/test/base/MachEnvTest.cpp b/components/omega/test/base/MachEnvTest.cpp index b8a2873392cb..a9bc356cfb1a 100644 --- a/components/omega/test/base/MachEnvTest.cpp +++ b/components/omega/test/base/MachEnvTest.cpp @@ -54,6 +54,8 @@ void InitMachEnvs() { // int main(int argc, char *argv[]) { + int RetVal = 0; + // Initialize the global MPI environment MPI_Init(&argc, &argv); @@ -96,6 +98,7 @@ int main(int argc, char *argv[]) { if (MyTask == WorldTask) std::cout << "DefaultEnv task test: PASS" << std::endl; else { + RetVal += 1; std::cout << "DefaultEnv task test: FAIL " << "MyTask, WorldTask = " << MyTask << WorldTask << std::endl; } @@ -104,6 +107,7 @@ int main(int argc, char *argv[]) { if (MySize == WorldSize) std::cout << "DefaultEnv NumTasks test: PASS" << std::endl; else { + RetVal += 1; std::cout << "DefaultEnv NumTasks test: FAIL " << "MySize, WorldSize = " << MySize << " " << WorldSize << std::endl; @@ -113,6 +117,7 @@ int main(int argc, char *argv[]) { if (MyMaster == WorldMaster) std::cout << "DefaultEnv master task test: PASS" << std::endl; else { + RetVal += 1; std::cout << "DefaultEnv master task test: FAIL " << "MyMaster, WorldMaster = " << MyMaster << " " << WorldMaster << std::endl; @@ -122,12 +127,15 @@ int main(int argc, char *argv[]) { if (MyTask == MyMaster) { if (IsMyMaster) std::cout << "DefaultEnv is master task test: PASS" << std::endl; - else + else { + RetVal += 1; std::cout << "DefaultEnv is master task test: FAIL" << std::endl; + } } else { - if (IsMyMaster) + if (IsMyMaster) { + RetVal += 1; std::cout << "DefaultEnv is master task test: FAIL" << std::endl; - else + } else std::cout << "DefaultEnv is master task test: PASS" << std::endl; } @@ -139,6 +147,7 @@ int main(int argc, char *argv[]) { if (MyMaster == 2) std::cout << "DefaultEnv set master task test: PASS" << std::endl; else { + RetVal += 1; std::cout << "DefaultEnv set master task test: FAIL " << "MyMaster = " << MyMaster << std::endl; } @@ -147,12 +156,15 @@ int main(int argc, char *argv[]) { if (MyTask == 2) { if (IsMyMaster) std::cout << "DefaultEnv isMaster after setMaster: PASS" << std::endl; - else + else { + RetVal += 1; std::cout << "DefaultEnv isMaster after setMaster: FAIL" << std::endl; + } } else { - if (IsMyMaster) + if (IsMyMaster) { + RetVal += 1; std::cout << "DefaultEnv isMaster after setMaster: FAIL" << std::endl; - else + } else std::cout << "DefaultEnv isMaster after setMaster: PASS" << std::endl; } @@ -166,15 +178,17 @@ int main(int argc, char *argv[]) { if (MyTask < 4) { if (ContigEnv->isMember()) std::cout << "contiguous member test: PASS" << std::endl; - else - std::cout << "contiguous member test: FAIL " - << "MyTask " << MyTask << std::endl; - + else { + RetVal += 1; + std::cout << "contiguous member test: FAIL " << "MyTask " << MyTask + << std::endl; + } } else { - if (ContigEnv->isMember()) - std::cout << "contiguous member test: FAIL " - << "MyTask " << MyTask << std::endl; - else + if (ContigEnv->isMember()) { + RetVal += 1; + std::cout << "contiguous member test: FAIL " << "MyTask " << MyTask + << std::endl; + } else std::cout << "contiguous member test: PASS" << std::endl; } @@ -184,6 +198,7 @@ int main(int argc, char *argv[]) { if (ContigTask == WorldTask) std::cout << "contiguous task test: PASS" << std::endl; else { + RetVal += 1; std::cout << "contiguous task test: FAIL " << "ContigTask, WorldTask = " << ContigTask << " " << WorldTask << std::endl; @@ -193,6 +208,7 @@ int main(int argc, char *argv[]) { if (ContigSize == 4) std::cout << "contiguous NumTasks test: PASS " << std::endl; else { + RetVal += 1; std::cout << "contiguous NumTasks test: FAIL " << "ContigSize (should be 4) = " << ContigSize << std::endl; } @@ -201,6 +217,7 @@ int main(int argc, char *argv[]) { if (ContigMaster == WorldMaster) std::cout << "contiguous master task test: PASS" << std::endl; else { + RetVal += 1; std::cout << "contiguous master task test: FAIL " << "MyMaster, WorldMaster = " << MyMaster << " " << WorldMaster << std::endl; @@ -210,12 +227,15 @@ int main(int argc, char *argv[]) { if (ContigTask == ContigMaster) { if (IsContigMaster) std::cout << "contiguous is master task test: PASS" << std::endl; - else + else { + RetVal += 1; std::cout << "contiguous is master task test: FAIL" << std::endl; + } } else { - if (IsContigMaster) + if (IsContigMaster) { + RetVal += 1; std::cout << "contiguous is master task test: FAIL" << std::endl; - else + } else std::cout << "contiguous is master task test: PASS" << std::endl; } @@ -232,15 +252,17 @@ int main(int argc, char *argv[]) { if (MyTask < 4) { if (Contig2Env->isMember()) std::cout << "contiguous2 member test: PASS" << std::endl; - else - std::cout << "contiguous2 member test: FAIL " - << "MyTask " << MyTask << std::endl; - + else { + RetVal += 1; + std::cout << "contiguous2 member test: FAIL " << "MyTask " << MyTask + << std::endl; + } } else { - if (Contig2Env->isMember()) - std::cout << "contiguous2 member test: FAIL " - << "MyTask " << MyTask << std::endl; - else + if (Contig2Env->isMember()) { + RetVal += 1; + std::cout << "contiguous2 member test: FAIL " << "MyTask " << MyTask + << std::endl; + } else std::cout << "contiguous2 member test: PASS" << std::endl; } @@ -250,6 +272,7 @@ int main(int argc, char *argv[]) { if (Contig2Task == WorldTask) std::cout << "contiguous2 task test: PASS" << std::endl; else { + RetVal += 1; std::cout << "contiguous2 task test: FAIL " << "Contig2Task, WorldTask = " << Contig2Task << " " << WorldTask << std::endl; @@ -259,6 +282,7 @@ int main(int argc, char *argv[]) { if (Contig2Size == 4) std::cout << "contiguous2 NumTasks test: PASS " << std::endl; else { + RetVal += 1; std::cout << "contiguous2 NumTasks test: FAIL " << "Contig2Size (should be 4) = " << Contig2Size << std::endl; @@ -268,6 +292,7 @@ int main(int argc, char *argv[]) { if (Contig2Master == 2) std::cout << "contiguous2 master task test: PASS" << std::endl; else { + RetVal += 1; std::cout << "contiguous2 master task test: FAIL " << "MyMaster, WorldMaster = " << MyMaster << " " << WorldMaster << std::endl; @@ -277,12 +302,15 @@ int main(int argc, char *argv[]) { if (Contig2Task == Contig2Master) { if (IsContig2Master) std::cout << "contiguous2 is master task test: PASS" << std::endl; - else + else { + RetVal += 1; std::cout << "contiguous2 is master task test: FAIL" << std::endl; + } } else { - if (IsContig2Master) + if (IsContig2Master) { + RetVal += 1; std::cout << "contiguous2 is master task test: FAIL" << std::endl; - else + } else std::cout << "contiguous2 is master task test: PASS" << std::endl; } @@ -298,15 +326,17 @@ int main(int argc, char *argv[]) { if (MyTask % 2 == 1) { if (StrideEnv->isMember()) std::cout << "strided member test: PASS" << std::endl; - else - std::cout << "strided member test: FAIL " - << "MyTask " << MyTask << std::endl; - + else { + RetVal += 1; + std::cout << "strided member test: FAIL " << "MyTask " << MyTask + << std::endl; + } } else { - if (StrideEnv->isMember()) - std::cout << "strided member test: FAIL " - << "MyTask " << MyTask << std::endl; - else + if (StrideEnv->isMember()) { + RetVal += 1; + std::cout << "strided member test: FAIL " << "MyTask " << MyTask + << std::endl; + } else std::cout << "strided member test: PASS" << std::endl; } @@ -316,6 +346,7 @@ int main(int argc, char *argv[]) { if (StrideTask == WorldTask / 2) std::cout << "strided task test: PASS" << std::endl; else { + RetVal += 1; std::cout << "strided task test: FAIL " << "StrideTask, WorldTask = " << StrideTask << " " << WorldTask << std::endl; @@ -325,6 +356,7 @@ int main(int argc, char *argv[]) { if (StrideSize == 4) std::cout << "strided NumTasks test: PASS" << std::endl; else { + RetVal += 1; std::cout << "strided NumTasks test: FAIL " << "StrideSize (should be 4) = " << StrideSize << std::endl; } @@ -333,6 +365,7 @@ int main(int argc, char *argv[]) { if (StrideMaster == 0) std::cout << "strided master task test: PASS" << std::endl; else { + RetVal += 1; std::cout << "strided master task test: FAIL " << "master = " << StrideMaster << std::endl; } @@ -341,12 +374,15 @@ int main(int argc, char *argv[]) { if (StrideTask == StrideMaster) { if (IsStrideMaster) std::cout << "strided is master task test: PASS" << std::endl; - else + else { + RetVal += 1; std::cout << "strided is master task test: FAIL" << std::endl; + } } else { - if (IsStrideMaster) + if (IsStrideMaster) { + RetVal += 1; std::cout << "strided is master task test: FAIL" << std::endl; - else + } else std::cout << "strided is master task test: PASS" << std::endl; } @@ -377,13 +413,15 @@ int main(int argc, char *argv[]) { if (SubsetEnv->isMember()) std::cout << "subset member test: PASS" << std::endl; else { + RetVal += 1; std::cout << "subset member test: FAIL" << std::endl; } } else { if (SubsetEnv->isMember()) { - std::cout << "subset non-member test: FAIL" - << " MyTask " << MyTask << " InclTasks "; + RetVal += 1; + std::cout << "subset non-member test: FAIL" << " MyTask " << MyTask + << " InclTasks "; for (int i = 0; i < InclSize; ++i) { std::cout << InclTasks[i]; } @@ -399,6 +437,7 @@ int main(int argc, char *argv[]) { if (SubsetTask == NewTask) std::cout << "subset task test: PASS " << std::endl; else { + RetVal += 1; std::cout << "subset task test: FAIL " << "SubsetTask, NewTask = " << SubsetTask << " " << NewTask << std::endl; @@ -408,6 +447,7 @@ int main(int argc, char *argv[]) { if (SubsetSize == InclSize) std::cout << "subset size test: PASS " << std::endl; else { + RetVal += 1; std::cout << "subset size test: FAIL " << "SubsetSize, InclSize = " << SubsetSize << " " << InclSize << std::endl; @@ -417,6 +457,7 @@ int main(int argc, char *argv[]) { if (SubsetMaster == 0) std::cout << "subset master task test: PASS" << std::endl; else { + RetVal += 1; std::cout << "subset master task test: FAIL" << std::endl; std::cout << "master = " << SubsetMaster << std::endl; } @@ -425,12 +466,15 @@ int main(int argc, char *argv[]) { if (SubsetTask == SubsetMaster) { if (IsSubsetMaster) std::cout << "subset is master task test: PASS" << std::endl; - else + else { + RetVal += 1; std::cout << "subset is master task test: FAIL" << std::endl; + } } else { - if (IsSubsetMaster) + if (IsSubsetMaster) { + RetVal += 1; std::cout << "subset is master task test: FAIL" << std::endl; - else + } else std::cout << "subset is master task test: PASS" << std::endl; } @@ -443,6 +487,7 @@ int main(int argc, char *argv[]) { if (OMEGA::VecLength == 16) std::cout << "MPI vector length test: PASS" << std::endl; else { + RetVal += 1; std::cout << "MPI vector length test: FAIL" << std::endl; std::cout << "Was test driver built with -D OMEGA_VECTOR_LENGTH=16 ?" << std::endl; @@ -456,5 +501,9 @@ int main(int argc, char *argv[]) { // MPI_Status status; MPI_Finalize(); + if (RetVal >= 256) + RetVal = 255; + + return RetVal; } // end of main //===-----------------------------------------------------------------------===/ diff --git a/components/omega/test/infra/ConfigTest.cpp b/components/omega/test/infra/ConfigTest.cpp index 765057fda0e6..a2538b9d025c 100644 --- a/components/omega/test/infra/ConfigTest.cpp +++ b/components/omega/test/infra/ConfigTest.cpp @@ -27,7 +27,7 @@ // int main(int argc, char *argv[]) { - int Err = 0; + int Err = 0, RetVal = 0; // Initialize the global MPI environment MPI_Init(&argc, &argv); @@ -113,100 +113,156 @@ int main(int argc, char *argv[]) { OMEGA::Config ConfigVmixRef("Vmix"); Err = ConfigHmixDel2Ref.add("HmixDel2On", RefHmixDel2On); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("Config test {}: adding bool FAIL", MyTask); + } Err = ConfigHmixDel2Ref.add("HmixDel2I4", RefHmixDel2I4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("Config test {}: adding I4 FAIL", MyTask); + } Err = ConfigHmixDel2Ref.add("HmixDel2I8", RefHmixDel2I8); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("Config test {}: adding I8 FAIL", MyTask); + } Err = ConfigHmixDel2Ref.add("HmixDel2R4", RefHmixDel2R4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("Config test {}: adding R4 FAIL", MyTask); + } Err = ConfigHmixDel2Ref.add("HmixDel2R8", RefHmixDel2R8); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("Config test {}: adding R8 FAIL", MyTask); + } Err = ConfigHmixDel2Ref.add("HmixDel2Str", RefHmixDel2Str); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("Config test {}: adding string FAIL", MyTask); + } Err = ConfigHmixRef.add("HmixOn", RefHmixOn); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("Config test {}: adding bool FAIL", MyTask); + } Err = ConfigHmixRef.add("HmixI4", RefHmixI4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("Config test {}: adding I4 FAIL", MyTask); + } Err = ConfigHmixRef.add("HmixI8", RefHmixI8); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("Config test {}: adding I8 FAIL", MyTask); + } Err = ConfigHmixRef.add("HmixR4", RefHmixR4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("Config test {}: adding R4 FAIL", MyTask); + } Err = ConfigHmixRef.add("HmixR8", RefHmixR8); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("Config test {}: adding R8 FAIL", MyTask); + } Err = ConfigHmixRef.add("HmixStr", RefHmixStr); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("Config test {}: adding string FAIL", MyTask); + } Err = ConfigHmixRef.add(ConfigHmixDel2Ref); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("Config test {}: adding sub-config FAIL", MyTask); + } Err = ConfigVmixRef.add("VmixOn", RefVmixOn); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("Config test {}: adding bool FAIL", MyTask); + } Err = ConfigVmixRef.add("VmixI4", RefVmixI4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("Config test {}: adding I4 FAIL", MyTask); + } Err = ConfigVmixRef.add("VmixI8", RefVmixI8); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("Config test {}: adding I8 FAIL", MyTask); + } Err = ConfigVmixRef.add("VmixR4", RefVmixR4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("Config test {}: adding R4 FAIL", MyTask); + } Err = ConfigVmixRef.add("VmixR8", RefVmixR8); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("Config test {}: adding R8 FAIL", MyTask); + } Err = ConfigVmixRef.add("VmixStr", RefVmixStr); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("Config test {}: adding string FAIL", MyTask); + } Err = ConfigOmegaRef.add(ConfigHmixRef); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("Config test {}: adding sub-config FAIL", MyTask); + } Err = ConfigOmegaRef.add(ConfigVmixRef); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("Config test {}: adding sub-config FAIL", MyTask); + } Err = ConfigOmegaRef.add("VectorI4", RefVecI4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("Config test {}: adding I4 vector FAIL", MyTask); + } Err = ConfigOmegaRef.add("VectorI8", RefVecI8); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("Config test {}: adding I8 vector FAIL", MyTask); + } Err = ConfigOmegaRef.add("VectorR4", RefVecR4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("Config test {}: adding R4 vector FAIL", MyTask); + } Err = ConfigOmegaRef.add("VectorR8", RefVecR8); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("Config test {}: adding R8 vector FAIL", MyTask); + } Err = ConfigOmegaRef.add("VectorLog", RefVecLog); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("Config test {}: adding bool vector FAIL", MyTask); + } Err = ConfigOmegaRef.add("StrList", RefList); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("Config test {}: adding string list FAIL", MyTask); + } // create the full root node Err = ConfigOmegaAll.add(ConfigOmegaRef); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("Config test {}: adding sub-config FAIL", MyTask); + } // Test retrievals by getting from the reference config and // checking against reference values. @@ -223,6 +279,7 @@ int main(int argc, char *argv[]) { if (ErrAll == 0) { LOG_INFO("ConfigTest {}: Add/Get of subconfigs - PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: Add/Get of subconfigs - FAIL", MyTask); } @@ -239,6 +296,7 @@ int main(int argc, char *argv[]) { if (ErrAll == 0 && RefTest) { LOG_INFO("ConfigTest {}: Add/Get of boolean vars - PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: Add/Get of boolean vars - FAIL", MyTask); } @@ -255,6 +313,7 @@ int main(int argc, char *argv[]) { if (ErrAll == 0 && RefTest) { LOG_INFO("ConfigTest {}: Add/Get of I4 vars - PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: Add/Get of I4 vars - FAIL", MyTask); } @@ -271,6 +330,7 @@ int main(int argc, char *argv[]) { if (ErrAll == 0 && RefTest) { LOG_INFO("ConfigTest {}: Add/Get of I8 vars - PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: Add/Get of I8 vars - FAIL", MyTask); } @@ -287,6 +347,7 @@ int main(int argc, char *argv[]) { if (ErrAll == 0 && RefTest) { LOG_INFO("ConfigTest {}: Add/Get of R4 vars - PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: Add/Get of R4 vars - FAIL", MyTask); } @@ -303,6 +364,7 @@ int main(int argc, char *argv[]) { if (ErrAll == 0 && RefTest) { LOG_INFO("ConfigTest {}: Add/Get of R8 vars - PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: Add/Get of R8 vars - FAIL", MyTask); } @@ -319,6 +381,7 @@ int main(int argc, char *argv[]) { if (ErrAll == 0 && RefTest) { LOG_INFO("ConfigTest {}: Add/Get of string vars - PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: Add/Get of string vars - FAIL", MyTask); } @@ -332,6 +395,7 @@ int main(int argc, char *argv[]) { if (Err1 == 0 && RefTest) { LOG_INFO("ConfigTest {}: Add/Get of I4 vector - PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: Add/Get of I4 vector - FAIL", MyTask); } @@ -344,6 +408,7 @@ int main(int argc, char *argv[]) { if (Err1 == 0 && RefTest) { LOG_INFO("ConfigTest {}: Add/Get of I8 vector - PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: Add/Get of I8 vector - FAIL", MyTask); } @@ -356,6 +421,7 @@ int main(int argc, char *argv[]) { if (Err1 == 0 && RefTest) { LOG_INFO("ConfigTest {}: Add/Get of R4 vector - PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: Add/Get of R4 vector - FAIL", MyTask); } @@ -368,6 +434,7 @@ int main(int argc, char *argv[]) { if (Err1 == 0 && RefTest) { LOG_INFO("ConfigTest {}: Add/Get of R8 vector - PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: Add/Get of R8 vector - FAIL", MyTask); } @@ -380,6 +447,7 @@ int main(int argc, char *argv[]) { if (Err1 == 0 && RefTest) { LOG_INFO("ConfigTest {}: Add/Get of bool vector - PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: Add/Get of bool vector - FAIL", MyTask); } @@ -392,6 +460,7 @@ int main(int argc, char *argv[]) { if (Err1 == 0 && RefTest) { LOG_INFO("ConfigTest {}: Add/Get of string list - PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: Add/Get of string list - FAIL", MyTask); } @@ -416,61 +485,97 @@ int main(int argc, char *argv[]) { std::string NewVmixStr = "VmixStringNew"; Err = ConfigHmixDel2New.set("HmixDel2On", NewHmixDel2On); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("ConfigTest {}: set bool FAIL", MyTask); + } Err = ConfigHmixDel2New.set("HmixDel2I4", NewHmixDel2I4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("ConfigTest {}: set I4 FAIL", MyTask); + } Err = ConfigHmixDel2New.set("HmixDel2I8", NewHmixDel2I8); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("ConfigTest {}: set I8 FAIL", MyTask); + } Err = ConfigHmixDel2New.set("HmixDel2R4", NewHmixDel2R4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("ConfigTest {}: set R4 FAIL", MyTask); + } Err = ConfigHmixDel2New.set("HmixDel2R8", NewHmixDel2R8); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("ConfigTest {}: set R8 FAIL", MyTask); + } Err = ConfigHmixDel2New.set("HmixDel2Str", NewHmixDel2Str); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("ConfigTest {}: set string FAIL", MyTask); + } Err = ConfigHmixNew.set("HmixOn", NewHmixOn); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("ConfigTest {}: set bool FAIL", MyTask); + } Err = ConfigHmixNew.set("HmixI4", NewHmixI4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("ConfigTest {}: set I4 FAIL", MyTask); + } Err = ConfigHmixNew.set("HmixI8", NewHmixI8); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("ConfigTest {}: set I8 FAIL", MyTask); + } Err = ConfigHmixNew.set("HmixR4", NewHmixR4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("ConfigTest {}: set R4 FAIL", MyTask); + } Err = ConfigHmixNew.set("HmixR8", NewHmixR8); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("ConfigTest {}: set R8 FAIL", MyTask); + } Err = ConfigHmixNew.set("HmixStr", NewHmixStr); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("ConfigTest {}: set string FAIL", MyTask); + } Err = ConfigVmixNew.set("VmixOn", NewVmixOn); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("ConfigTest {}: set bool FAIL", MyTask); + } Err = ConfigVmixNew.set("VmixI4", NewVmixI4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("ConfigTest {}: set I4 FAIL", MyTask); + } Err = ConfigVmixNew.set("VmixI8", NewVmixI8); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("ConfigTest {}: set I8 FAIL", MyTask); + } Err = ConfigVmixNew.set("VmixR4", NewVmixR4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("ConfigTest {}: set R4 FAIL", MyTask); + } Err = ConfigVmixNew.set("VmixR8", NewVmixR8); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("ConfigTest {}: set R8 FAIL", MyTask); + } Err = ConfigVmixNew.set("VmixStr", NewVmixStr); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("ConfigTest {}: set string FAIL", MyTask); + } // Test logical retrievals Err1 = ConfigHmixNew.get("HmixOn", HmixOn); @@ -482,6 +587,7 @@ int main(int argc, char *argv[]) { if (ErrAll == 0 && RefTest) { LOG_INFO("ConfigTest {}: Set/Get of boolean vars - PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: Set/Get of boolean vars - FAIL", MyTask); } @@ -495,6 +601,7 @@ int main(int argc, char *argv[]) { if (ErrAll == 0 && RefTest) { LOG_INFO("ConfigTest {}: Set/Get of I4 vars - PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: Set/Get of I4 vars - FAIL", MyTask); } @@ -508,6 +615,7 @@ int main(int argc, char *argv[]) { if (ErrAll == 0 && RefTest) { LOG_INFO("ConfigTest {}: Set/Get of I8 vars - PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: Set/Get of I8 vars - FAIL", MyTask); } @@ -521,6 +629,7 @@ int main(int argc, char *argv[]) { if (ErrAll == 0 && RefTest) { LOG_INFO("ConfigTest {}: Set/Get of R4 vars - PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: Set/Get of R4 vars - FAIL", MyTask); } @@ -534,6 +643,7 @@ int main(int argc, char *argv[]) { if (ErrAll == 0 && RefTest) { LOG_INFO("ConfigTest {}: Set/Get of R8 vars - PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: Set/Get of R8 vars - FAIL", MyTask); } @@ -547,6 +657,7 @@ int main(int argc, char *argv[]) { if (ErrAll == 0 && RefTest) { LOG_INFO("ConfigTest {}: Set/Get of string vars - PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: Set/Get of string vars - FAIL", MyTask); } @@ -559,28 +670,39 @@ int main(int argc, char *argv[]) { RefList[2] = "junk"; Err = ConfigOmegaRef.set("VectorI4", RefVecI4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("Config test {}: setting I4 vector FAIL", MyTask); - + } Err = ConfigOmegaRef.set("VectorI8", RefVecI8); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("Config test {}: setting I8 vector FAIL", MyTask); + } Err = ConfigOmegaRef.set("VectorR4", RefVecR4); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("Config test {}: setting R4 vector FAIL", MyTask); + } Err = ConfigOmegaRef.set("VectorR8", RefVecR8); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("Config test {}: setting R8 vector FAIL", MyTask); + } Err = ConfigOmegaRef.set("VectorLog", RefVecLog); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("Config test {}: setting bool vector FAIL", MyTask); + } Err = ConfigOmegaRef.set("StrList", RefList); - if (Err != 0) + if (Err != 0) { + RetVal += 1; LOG_INFO("Config test {}: setting string list FAIL", MyTask); + } // Test vector retrievals after set Err1 = ConfigOmegaRef.get("VectorI4", VecI4); @@ -591,6 +713,7 @@ int main(int argc, char *argv[]) { if (Err1 == 0 && RefTest) { LOG_INFO("ConfigTest {}: Set/Get of I4 vector - PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: Set/Get of I4 vector - FAIL", MyTask); } @@ -602,6 +725,7 @@ int main(int argc, char *argv[]) { if (Err1 == 0 && RefTest) { LOG_INFO("ConfigTest {}: Set/Get of I8 vector - PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: Set/Get of I8 vector - FAIL", MyTask); } @@ -613,6 +737,7 @@ int main(int argc, char *argv[]) { if (Err1 == 0 && RefTest) { LOG_INFO("ConfigTest {}: Set/Get of R4 vector - PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: Set/Get of R4 vector - FAIL", MyTask); } @@ -624,6 +749,7 @@ int main(int argc, char *argv[]) { if (Err1 == 0 && RefTest) { LOG_INFO("ConfigTest {}: Set/Get of R8 vector - PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: Set/Get of R8 vector - FAIL", MyTask); } @@ -635,6 +761,7 @@ int main(int argc, char *argv[]) { if (Err1 == 0 && RefTest) { LOG_INFO("ConfigTest {}: Set/Get of bool vector - PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: Set/Get of bool vector - FAIL", MyTask); } @@ -646,6 +773,7 @@ int main(int argc, char *argv[]) { if (Err1 == 0 && RefTest) { LOG_INFO("ConfigTest {}: Set/Get of string list - PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: Set/Get of string list - FAIL", MyTask); } @@ -680,6 +808,7 @@ int main(int argc, char *argv[]) { if (RefTest) { LOG_INFO("ConfigTest {}: SubConfig add/get error modes PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: SubConfig add/get error modes FAIL", MyTask); } @@ -690,6 +819,7 @@ int main(int argc, char *argv[]) { if (RefTest) { LOG_INFO("ConfigTest {}: add/set/get bool error modes PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: add/set/get bool error modes FAIL", MyTask); } @@ -700,6 +830,7 @@ int main(int argc, char *argv[]) { if (RefTest) { LOG_INFO("ConfigTest {}: add/set/get I4 error modes PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: add/set/get I4 error modes FAIL", MyTask); } @@ -710,6 +841,7 @@ int main(int argc, char *argv[]) { if (RefTest) { LOG_INFO("ConfigTest {}: add/set/get I8 error modes PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: add/set/get I8 error modes FAIL", MyTask); } @@ -720,6 +852,7 @@ int main(int argc, char *argv[]) { if (RefTest) { LOG_INFO("ConfigTest {}: add/set/get R4 error modes PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: add/set/get R4 error modes FAIL", MyTask); } @@ -730,6 +863,7 @@ int main(int argc, char *argv[]) { if (RefTest) { LOG_INFO("ConfigTest {}: add/set/get R8 error modes PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: add/set/get R8 error modes FAIL", MyTask); } @@ -740,6 +874,7 @@ int main(int argc, char *argv[]) { if (RefTest) { LOG_INFO("ConfigTest {}: add/set/get string error modes PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: add/set/get string error modes FAIL", MyTask); } @@ -748,6 +883,7 @@ int main(int argc, char *argv[]) { if (Err == 0) { LOG_INFO("ConfigTest {}: write successful PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: write successful FAIL", MyTask); } @@ -756,6 +892,7 @@ int main(int argc, char *argv[]) { if (Err == 0) { LOG_INFO("ConfigTest {}: read successful PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: read successful FAIL", MyTask); } @@ -776,6 +913,7 @@ int main(int argc, char *argv[]) { LOG_INFO("ConfigTest {}: retrieve subgroups from full config PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: retrieve subgroups from full config FAIL", MyTask); } @@ -788,6 +926,7 @@ int main(int argc, char *argv[]) { if (RefTest) { LOG_INFO("ConfigTest {}: retrieve bool from full config PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: retrieve bool from full config FAIL", MyTask); } @@ -799,6 +938,7 @@ int main(int argc, char *argv[]) { if (RefTest) { LOG_INFO("ConfigTest {}: retrieve I4 from full config PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: retrieve I4 from full config FAIL", MyTask); } @@ -810,6 +950,7 @@ int main(int argc, char *argv[]) { if (RefTest) { LOG_INFO("ConfigTest {}: retrieve I8 from full config PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: retrieve I8 from full config FAIL", MyTask); } @@ -821,6 +962,7 @@ int main(int argc, char *argv[]) { if (RefTest) { LOG_INFO("ConfigTest {}: retrieve R4 from full config PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: retrieve R4 from full config FAIL", MyTask); } @@ -832,6 +974,7 @@ int main(int argc, char *argv[]) { if (RefTest) { LOG_INFO("ConfigTest {}: retrieve R8 from full config PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: retrieve R8 from full config FAIL", MyTask); } @@ -843,6 +986,7 @@ int main(int argc, char *argv[]) { if (RefTest) { LOG_INFO("ConfigTest {}: retrieve string from full config PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: retrieve string from full config FAIL", MyTask); } @@ -855,6 +999,7 @@ int main(int argc, char *argv[]) { if (Err1 == 0 && RefTest) { LOG_INFO("ConfigTest {}: Get I4 vector from full config - PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: Get I4 vector from full config - FAIL", MyTask); } @@ -866,6 +1011,7 @@ int main(int argc, char *argv[]) { if (Err1 == 0 && RefTest) { LOG_INFO("ConfigTest {}: Get I8 vector from full config - PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: Get I8 vector from full config - FAIL", MyTask); } @@ -877,6 +1023,7 @@ int main(int argc, char *argv[]) { if (Err1 == 0 && RefTest) { LOG_INFO("ConfigTest {}: Get R4 vector from full config - PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: Get R4 vector from full config - FAIL", MyTask); } @@ -888,6 +1035,7 @@ int main(int argc, char *argv[]) { if (Err1 == 0 && RefTest) { LOG_INFO("ConfigTest {}: Get R8 vector from full config - PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: Get R8 vector from full config - FAIL", MyTask); } @@ -899,6 +1047,7 @@ int main(int argc, char *argv[]) { if (Err1 == 0 && RefTest) { LOG_INFO("ConfigTest {}: Get bool vec from full config - PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: Get bool vec from full config - FAIL", MyTask); } @@ -910,6 +1059,7 @@ int main(int argc, char *argv[]) { if (Err1 == 0 && RefTest) { LOG_INFO("ConfigTest {}: Get string list full config - PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: Get string list full config - FAIL", MyTask); } @@ -945,6 +1095,7 @@ int main(int argc, char *argv[]) { if (Err1 == 0 && RefTest) { LOG_INFO("ConfigTest {}: Get config list using iter - PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: Get config list using iter - FAIL", MyTask); } @@ -965,6 +1116,7 @@ int main(int argc, char *argv[]) { Err6 == 0) { LOG_INFO("ConfigTest {}: removal call PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: removal call FAIL", MyTask); } @@ -984,6 +1136,7 @@ int main(int argc, char *argv[]) { Err6 != 0 && Err == 0) { LOG_INFO("ConfigTest {}: variable removal test PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: variable removal test FAIL", MyTask); } @@ -996,11 +1149,17 @@ int main(int argc, char *argv[]) { if (Err1 == 0 && Err2 == 0 && Err3 != 0) { LOG_INFO("ConfigTest {}: subconfig removal test PASS", MyTask); } else { + RetVal += 1; LOG_INFO("ConfigTest {}: subconfig removal test FAIL", MyTask); } // Finalize environments MPI_Finalize(); + if (RetVal >= 256) + RetVal = 255; + + return RetVal; + } // end of main //===-----------------------------------------------------------------------===/ diff --git a/components/omega/test/infra/IOFieldTest.cpp b/components/omega/test/infra/IOFieldTest.cpp index 71443ac614a7..375bfdfd7881 100644 --- a/components/omega/test/infra/IOFieldTest.cpp +++ b/components/omega/test/infra/IOFieldTest.cpp @@ -335,6 +335,9 @@ int main(int argc, char **argv) { Kokkos::finalize(); MPI_Finalize(); + if (Err >= 256) + Err = 255; + // End of testing return Err; } diff --git a/components/omega/test/infra/LoggingTest.cpp b/components/omega/test/infra/LoggingTest.cpp index 0312063d99e8..0538ea9ff588 100644 --- a/components/omega/test/infra/LoggingTest.cpp +++ b/components/omega/test/infra/LoggingTest.cpp @@ -50,7 +50,7 @@ int outputTestResult(std::string const &TestName, std::string const &Expected, std::cout << TestName << ": PASS" << std::endl; } else { std::cout << TestName << ": FAIL" << std::endl; - RetVal = -1; + RetVal += 1; } } else { std::string Actual = Msgs[0]; @@ -68,7 +68,7 @@ int outputTestResult(std::string const &TestName, std::string const &Expected, std::cout << TestName << ": PASS" << std::endl; } else { std::cout << TestName << ": FAIL" << std::endl; - RetVal = -1; + RetVal += 1; } } @@ -83,13 +83,13 @@ int testDefaultLogLevel() { LOG_DEBUG("This shouldn't be logged."); // check if no debug log - RetVal -= outputTestResult("Default log level 1", std::string(""), EndsWith); + RetVal += outputTestResult("Default log level 1", std::string(""), EndsWith); const std::string TMSG2 = "This should be logged."; LOG_INFO(TMSG2); // check if this is info log - RetVal -= outputTestResult("Default log level 2", TMSG2, EndsWith); + RetVal += outputTestResult("Default log level 2", TMSG2, EndsWith); return RetVal; } @@ -108,13 +108,13 @@ int testKokkosDataTypes() { LOG_INFO("1d var {}", test1d); // check if HostArray1DReal is detected - RetVal -= + RetVal += outputTestResult("Kokkos data type 1", "HostArray1DReal", Contains); LOG_INFO("2d var {}", test2d); // check if HostArray2DReal is detected - RetVal -= + RetVal += outputTestResult("Kokkos data type 2", "HostArray2DReal", Contains); } Kokkos::finalize(); @@ -141,17 +141,17 @@ int main(int argc, char **argv) { initLogging(logger); - RetVal -= testDefaultLogLevel(); - RetVal -= testKokkosDataTypes(); + RetVal += testDefaultLogLevel(); + RetVal += testKokkosDataTypes(); // std::remove(LogFilePath.c_str()); } catch (const std::exception &Ex) { std::cout << Ex.what() << ": FAIL" << std::endl; - RetVal -= -1; + RetVal += 1; } catch (...) { std::cout << "Unknown: FAIL" << std::endl; - RetVal -= -1; + RetVal += 1; } return RetVal; diff --git a/components/omega/test/infra/MetadataTest.cpp b/components/omega/test/infra/MetadataTest.cpp index 6af554c8a990..1e62e16f26a1 100644 --- a/components/omega/test/infra/MetadataTest.cpp +++ b/components/omega/test/infra/MetadataTest.cpp @@ -19,53 +19,67 @@ using namespace OMEGA; const I4 FILL_VALUE = 0; -void printResult(bool result, bool expected, std::string msg_pass, - std::string msg_fail) { +int printResult(bool result, bool expected, std::string msg_pass, + std::string msg_fail) { + + int RetVal = 0; if (result == expected) { std::cout << msg_pass << ": PASS" << std::endl; } else { + RetVal = 1; std::cout << msg_fail << ": FAIL" << std::endl; } + + return RetVal; } -void testMetaDim() { +int testMetaDim() { + + int RetVal = 0; const std::string DimName{"MyDim"}; const I4 DimValue{1}; // test has() - printResult(MetaDim::has(DimName), false, "'" + DimName + "' is not created", - "'" + DimName + "' should not exist"); + RetVal += printResult(MetaDim::has(DimName), false, + "'" + DimName + "' is not created", + "'" + DimName + "' should not exist"); // test create() auto Dim1 = MetaDim::create(DimName, DimValue); - printResult(MetaDim::has(DimName), true, "'" + DimName + "' is created", - "'" + DimName + "' should exist"); + RetVal += + printResult(MetaDim::has(DimName), true, "'" + DimName + "' is created", + "'" + DimName + "' should exist"); // test get() auto Dim2 = MetaDim::get(DimName); - printResult(Dim1 == Dim2, true, "get() returns correct instance.", - "get() returns incorrect instance."); + RetVal += printResult(Dim1 == Dim2, true, "get() returns correct instance.", + "get() returns incorrect instance."); // test getLength() I4 Length; Dim1->getLength(Length); - printResult(DimValue == Length, true, "getLength() returns correct length.", - "getLength() returns incorrect length."); + RetVal += printResult(DimValue == Length, true, + "getLength() returns correct length.", + "getLength() returns incorrect length."); // test destroy() MetaDim::destroy(DimName); - printResult(MetaDim::has(DimName), false, - "'" + DimName + "' is destroyed correctly", - "'" + DimName + "' is not destroyed"); + RetVal += printResult(MetaDim::has(DimName), false, + "'" + DimName + "' is destroyed correctly", + "'" + DimName + "' is not destroyed"); + + return RetVal; } -void testMetaData() { +int testMetaData() { + + int RetVal = 0; const std::string ArrayName{"MyArray"}; const std::string DimName{"MyDim"}; @@ -73,23 +87,25 @@ void testMetaData() { int ret; // test has() - printResult(MetaData::has(CodeMeta), false, - "'" + CodeMeta + "' is not created", - "'" + CodeMeta + "' should not exist"); + RetVal += printResult(MetaData::has(CodeMeta), false, + "'" + CodeMeta + "' is not created", + "'" + CodeMeta + "' should not exist"); // test create() 1 auto Data1 = MetaData::create(CodeMeta); - printResult(MetaData::has(CodeMeta), true, "'" + CodeMeta + "' is created", - "'" + CodeMeta + "' should exist"); + RetVal += printResult(MetaData::has(CodeMeta), true, + "'" + CodeMeta + "' is created", + "'" + CodeMeta + "' should exist"); // test create() 2 auto Data2 = MetaData::create(SimMeta, {std::make_pair("Meta1", 1), std::make_pair("Meta2", 2), std::make_pair("Meta3", 3)}); - printResult(MetaData::has(SimMeta), true, "'" + SimMeta + "' is created", - "'" + SimMeta + "' should exist"); + RetVal += + printResult(MetaData::has(SimMeta), true, "'" + SimMeta + "' is created", + "'" + SimMeta + "' should exist"); std::map *VarMeta = Data2->getAllEntries(); std::string MetaName; @@ -100,13 +116,13 @@ void testMetaData() { MetaName = Pair.first; // retrieve name part of meta pair MetaVal = std::any_cast(Pair.second); // retrieve value part - printResult(MetaName == "Meta" + std::to_string(MetaVal), true, - "'" + SimMeta + "' has correct MetaName", - "'" + SimMeta + "' has wrong MetaName"); + RetVal += printResult(MetaName == "Meta" + std::to_string(MetaVal), true, + "'" + SimMeta + "' has correct MetaName", + "'" + SimMeta + "' has wrong MetaName"); - printResult(MetaVal == Count, true, - "'" + SimMeta + "' has correct MetaVal", - "'" + SimMeta + "' has wrong MetaVal"); + RetVal += printResult(MetaVal == Count, true, + "'" + SimMeta + "' has correct MetaVal", + "'" + SimMeta + "' has wrong MetaVal"); // do whatever needed with metadata // metaVal can be cast into the appropriate type using @@ -130,65 +146,73 @@ void testMetaData() { Dimensions /// dim pointers ); - printResult(MetaData::has(ArrayName), true, "'" + ArrayName + "' is created", - "'" + ArrayName + "' should exist"); + RetVal += printResult(MetaData::has(ArrayName), true, + "'" + ArrayName + "' is created", + "'" + ArrayName + "' should exist"); // test get() auto Data4 = MetaData::get(ArrayName); - printResult(Data3 == Data4, true, "get() returns correct instance.", - "get() returns incorrect instance."); + RetVal += + printResult(Data3 == Data4, true, "get() returns correct instance.", + "get() returns incorrect instance."); // test hasEntry() - printResult(Data4->hasEntry("FillValue"), true, - "'" + ArrayName + "' has a fill value.", - "'" + ArrayName + "' does not have a fill value"); + RetVal += printResult(Data4->hasEntry("FillValue"), true, + "'" + ArrayName + "' has a fill value.", + "'" + ArrayName + "' does not have a fill value"); // test getEntry() I4 FillValue; ret = Data3->getEntry("FillValue", FillValue); - printResult(ret == 0, true, "getEntry() returns zero", - "getEntry() returns non-zero"); + RetVal += printResult(ret == 0, true, "getEntry() returns zero", + "getEntry() returns non-zero"); - printResult(FILL_VALUE == FillValue, true, - "'" + ArrayName + "' has a correct fill value", - "'" + ArrayName + "' has an incorrect fill value"); + RetVal += printResult(FILL_VALUE == FillValue, true, + "'" + ArrayName + "' has a correct fill value", + "'" + ArrayName + "' has an incorrect fill value"); // test addEntry() const R8 NewValue = 2.0; ret = Data3->addEntry("NewMeta", NewValue); - printResult(ret == 0, true, "addEntry() returns zero", - "addEntry() returns non-zero"); + RetVal += printResult(ret == 0, true, "addEntry() returns zero", + "addEntry() returns non-zero"); R8 R8Value; ret = Data3->getEntry("NewMeta", R8Value); - printResult(NewValue == R8Value, true, "getEntry() returns correct value", - "getEntry() returns incorrect value"); + RetVal += printResult(NewValue == R8Value, true, + "getEntry() returns correct value", + "getEntry() returns incorrect value"); // test removeEntry() ret = Data3->removeEntry("NewMeta"); - printResult(ret == 0, true, "removeEntry() returns zero", - "removeEntry() returns non-zero"); + RetVal += printResult(ret == 0, true, "removeEntry() returns zero", + "removeEntry() returns non-zero"); - printResult(Data3->hasEntry("NewMeta"), false, - "'NewMeta' is removed correctly", "'NewMeta' is not removed"); + RetVal += printResult(Data3->hasEntry("NewMeta"), false, + "'NewMeta' is removed correctly", + "'NewMeta' is not removed"); // test destroy() ret = MetaData::destroy(SimMeta); - printResult(ret == 0, true, "destroy() returns zero", - "destroy() returns non-zero"); + RetVal += printResult(ret == 0, true, "destroy() returns zero", + "destroy() returns non-zero"); + + RetVal += printResult(MetaData::has(SimMeta), false, + "'" + SimMeta + "' is correclty removed", + "'" + SimMeta + "' is not removed."); - printResult(MetaData::has(SimMeta), false, - "'" + SimMeta + "' is correclty removed", - "'" + SimMeta + "' is not removed."); + return RetVal; } -void testMetaGroup() { +int testMetaGroup() { + + int RetVal = 0; const std::string GroupName{"MyGroup"}; const std::string FieldName{"MyField"}; @@ -197,39 +221,40 @@ void testMetaGroup() { int ret; // test has() - printResult(MetaGroup::has(GroupName), false, - "'" + GroupName + "' is not created", - "'" + GroupName + "' should not exist"); + RetVal += printResult(MetaGroup::has(GroupName), false, + "'" + GroupName + "' is not created", + "'" + GroupName + "' should not exist"); // test create() auto Group1 = MetaGroup::create(GroupName); - printResult(MetaGroup::has(GroupName), true, - "'" + GroupName + "' is created", - "'" + GroupName + "' should exist"); + RetVal += printResult(MetaGroup::has(GroupName), true, + "'" + GroupName + "' is created", + "'" + GroupName + "' should exist"); // test get() auto Group2 = MetaGroup::get(GroupName); - printResult(Group1 == Group2, true, "get() returns correct instance.", - "get() returns incorrect instance."); + RetVal += + printResult(Group1 == Group2, true, "get() returns correct instance.", + "get() returns incorrect instance."); // test hasField() - printResult(Group1->hasField(FieldName), false, - "'" + FieldName + "' is not in a group", - "'" + FieldName + "' is in a group"); + RetVal += printResult(Group1->hasField(FieldName), false, + "'" + FieldName + "' is not in a group", + "'" + FieldName + "' is in a group"); // test addField() auto Data1 = MetaData::create(FieldName); ret = Group1->addField(FieldName); - printResult(ret == 0, true, "addField() returns zero.", - "addField() returns non-zero."); + RetVal += printResult(ret == 0, true, "addField() returns zero.", + "addField() returns non-zero."); - printResult(Group1->hasField(FieldName), true, - "'" + FieldName + "' is in a group", - "'" + FieldName + "' is not in a group"); + RetVal += printResult(Group1->hasField(FieldName), true, + "'" + FieldName + "' is in a group", + "'" + FieldName + "' is not in a group"); std::map> *Fields; Fields = Group1->getAllFields(); @@ -242,33 +267,36 @@ void testMetaGroup() { FieldNamePart = Pair.first; // retrieve field name part FieldPart = Pair.second; // retrieve field part - printResult(FieldNamePart == FieldName, true, - "Correct FieldName is returned", - "Incorrect FieldName is returned"); + RetVal += printResult(FieldNamePart == FieldName, true, + "Correct FieldName is returned", + "Incorrect FieldName is returned"); } // test getField() auto Data2 = Group1->getField(FieldName); - printResult(Data1 == Data2, true, "getField() returns correct instance.", - "getField() returns incorrect instance."); + RetVal += + printResult(Data1 == Data2, true, "getField() returns correct instance.", + "getField() returns incorrect instance."); // test removeField() ret = Group1->removeField(FieldName); - printResult(ret == 0, true, "removeField() returns zero.", - "removeField() returns non-zero."); + RetVal += printResult(ret == 0, true, "removeField() returns zero.", + "removeField() returns non-zero."); - printResult(Group1->hasField(FieldName), false, - "'" + FieldName + "' is not in a group", - "'" + FieldName + "' is in a group"); + RetVal += printResult(Group1->hasField(FieldName), false, + "'" + FieldName + "' is not in a group", + "'" + FieldName + "' is in a group"); // test destroy() MetaGroup::destroy(GroupName); - printResult(MetaGroup::has(GroupName), false, - "'" + GroupName + "' is destroyed correctly", - "'" + GroupName + "' is not destroyed"); + RetVal += printResult(MetaGroup::has(GroupName), false, + "'" + GroupName + "' is destroyed correctly", + "'" + GroupName + "' is not destroyed"); + + return RetVal; } std::vector> initMetaDim(const std::string DimName, @@ -301,7 +329,9 @@ void initMetaGroup(const std::string GroupName) { auto Group1 = MetaGroup::create(GroupName); } -void testMetaInit() { +int testMetaInit() { + + int RetVal = 0; const std::string GroupName{"MyInitGroup"}; const std::string FieldName{"MyInitField"}; @@ -315,64 +345,67 @@ void testMetaInit() { initMetaGroup(GroupName); - printResult(MetaGroup::has(GroupName), true, - "'" + GroupName + "' is created", - "'" + GroupName + "' should exist"); + RetVal += printResult(MetaGroup::has(GroupName), true, + "'" + GroupName + "' is created", + "'" + GroupName + "' should exist"); // test get() auto Group1 = MetaGroup::get(GroupName); // test hasField() - printResult(Group1->hasField(FieldName), false, - "'" + FieldName + "' is not in a group", - "'" + FieldName + "' is in a group"); + RetVal += printResult(Group1->hasField(FieldName), false, + "'" + FieldName + "' is not in a group", + "'" + FieldName + "' is in a group"); ret = Group1->addField(FieldName); - printResult(ret == 0, true, "addField() returns zero.", - "addField() returns non-zero."); + RetVal += printResult(ret == 0, true, "addField() returns zero.", + "addField() returns non-zero."); - printResult(Group1->hasField(FieldName), true, - "'" + FieldName + "' is in a group", - "'" + FieldName + "' is not in a group"); + RetVal += printResult(Group1->hasField(FieldName), true, + "'" + FieldName + "' is in a group", + "'" + FieldName + "' is not in a group"); // test getField() auto Data1 = MetaData::get(FieldName); auto Data2 = Group1->getField(FieldName); - printResult(Data1 == Data2, true, "getField() returns correct instance.", - "getField() returns incorrect instance."); + RetVal += + printResult(Data1 == Data2, true, "getField() returns correct instance.", + "getField() returns incorrect instance."); // test removeField() ret = Group1->removeField(FieldName); - printResult(ret == 0, true, "removeField() returns zero.", - "removeField() returns non-zero."); + RetVal += printResult(ret == 0, true, "removeField() returns zero.", + "removeField() returns non-zero."); - printResult(Group1->hasField(FieldName), false, - "'" + FieldName + "' is not in a group", - "'" + FieldName + "' is in a group"); + RetVal += printResult(Group1->hasField(FieldName), false, + "'" + FieldName + "' is not in a group", + "'" + FieldName + "' is in a group"); // test MetaGroup::destroy() MetaGroup::destroy(GroupName); - printResult(MetaGroup::has(GroupName), false, - "'" + GroupName + "' is destroyed correctly", - "'" + GroupName + "' is not destroyed"); + RetVal += printResult(MetaGroup::has(GroupName), false, + "'" + GroupName + "' is destroyed correctly", + "'" + GroupName + "' is not destroyed"); // test MetaData::destroy() MetaData::destroy(FieldName); - printResult(MetaData::has(FieldName), false, - "'" + FieldName + "' is destroyed correctly", - "'" + FieldName + "' is not destroyed"); + RetVal += printResult(MetaData::has(FieldName), false, + "'" + FieldName + "' is destroyed correctly", + "'" + FieldName + "' is not destroyed"); // test MetaDim::destroy() MetaDim::destroy(DimName); - printResult(MetaDim::has(DimName), false, - "'" + DimName + "' is destroyed correctly", - "'" + DimName + "' is not destroyed"); + RetVal += printResult(MetaDim::has(DimName), false, + "'" + DimName + "' is destroyed correctly", + "'" + DimName + "' is not destroyed"); + + return RetVal; } int main(int argc, char **argv) { @@ -381,22 +414,25 @@ int main(int argc, char **argv) { try { - testMetaDim(); + RetVal += testMetaDim(); - testMetaData(); + RetVal += testMetaData(); - testMetaGroup(); + RetVal += testMetaGroup(); - testMetaInit(); + RetVal += testMetaInit(); } catch (const std::exception &Ex) { std::cout << Ex.what() << ": FAIL" << std::endl; - RetVal -= -1; + RetVal += 1; } catch (...) { std::cout << "Unknown: FAIL" << std::endl; - RetVal -= -1; + RetVal += 1; } + if (RetVal >= 256) + RetVal = 255; + return RetVal; } diff --git a/components/omega/test/infra/OmegaKokkosTest.cpp b/components/omega/test/infra/OmegaKokkosTest.cpp index 5d1210fca3b7..2b1be48433e8 100644 --- a/components/omega/test/infra/OmegaKokkosTest.cpp +++ b/components/omega/test/infra/OmegaKokkosTest.cpp @@ -101,7 +101,7 @@ int main(int argc, char **argv) { if (result != solution) { std::cout << " FAIL: result( " << result << " ) != solution( " << solution << " )" << std::endl; - RetVal -= -1; + RetVal += 1; } // Calculate time. @@ -128,11 +128,14 @@ int main(int argc, char **argv) { } catch (const std::exception &Ex) { std::cout << Ex.what() << ": FAIL" << std::endl; - RetVal -= -1; + RetVal += 1; } catch (...) { std::cout << "Unknown: FAIL" << std::endl; - RetVal -= -1; + RetVal += 1; } + if (RetVal >= 256) + RetVal = 255; + return RetVal; } diff --git a/components/omega/test/infra/TimeMgrTest.cpp b/components/omega/test/infra/TimeMgrTest.cpp index 98616a95d4c3..d501f762536e 100644 --- a/components/omega/test/infra/TimeMgrTest.cpp +++ b/components/omega/test/infra/TimeMgrTest.cpp @@ -4358,5 +4358,10 @@ int main(int argc, char *argv[]) { LOG_INFO("TimeMgrTest: Failed"); } + if (TotErr >= 256) + TotErr = 255; + + return TotErr; + } // end of main //===-----------------------------------------------------------------------===/ From ef4e02688a061768af8357e03a258d07297fd577 Mon Sep 17 00:00:00 2001 From: Youngsung Kim Date: Sat, 22 Jun 2024 18:26:07 -0400 Subject: [PATCH 2/2] updated remained unit tests on ocn directory --- components/omega/test/ocn/HorzMeshTest.cpp | 33 +++++++++++++++++++ .../omega/test/ocn/HorzOperatorsTest.cpp | 15 +++++++-- 2 files changed, 46 insertions(+), 2 deletions(-) diff --git a/components/omega/test/ocn/HorzMeshTest.cpp b/components/omega/test/ocn/HorzMeshTest.cpp index 9a44b689580f..410715dfabb9 100644 --- a/components/omega/test/ocn/HorzMeshTest.cpp +++ b/components/omega/test/ocn/HorzMeshTest.cpp @@ -129,6 +129,8 @@ OMEGA::R8 coriolis(OMEGA::R8 lat) { // int main(int argc, char *argv[]) { + int RetVal = 0; + // Initialize the global MPI environment MPI_Init(&argc, &argv); Kokkos::initialize(); @@ -154,6 +156,7 @@ int main(int argc, char *argv[]) { if (DefDecomp) { // true if non-null ptr LOG_INFO("HorzMeshTest: Default decomp retrieval PASS"); } else { + RetVal += 1; LOG_INFO("HorzMeshTest: Default decomp retrieval FAIL"); } @@ -172,6 +175,7 @@ int main(int argc, char *argv[]) { if (SumCells == DefDecomp->NCellsGlobal) { LOG_INFO("HorzMeshTest: Sum cell ID test PASS"); } else { + RetVal += 1; LOG_INFO("HorzMeshTest: Sum cell ID test FAIL {} {}", SumCells, DefDecomp->NCellsGlobal); } @@ -192,6 +196,7 @@ int main(int argc, char *argv[]) { } if (count > 0) { + RetVal += 1; LOG_INFO("HorzMeshTest: Cell sphere radius test FAIL"); } else { LOG_INFO("HorzMeshTest: Cell sphere radius test PASS"); @@ -219,6 +224,7 @@ int main(int argc, char *argv[]) { } if (count > 0) { + RetVal += 1; LOG_INFO("HorzMeshTest: Cell lon/lat test FAIL"); } else { LOG_INFO("HorzMeshTest: Cell lon/lat test PASS"); @@ -236,6 +242,7 @@ int main(int argc, char *argv[]) { if (SumEdges == DefDecomp->NEdgesGlobal) { LOG_INFO("HorzMeshTest: Sum edge ID test PASS"); } else { + RetVal += 1; LOG_INFO("HorzMeshTest: Sum edge ID test FAIL {} {}", SumEdges, DefDecomp->NEdgesGlobal); } @@ -255,6 +262,7 @@ int main(int argc, char *argv[]) { } if (count > 0) { + RetVal += 1; LOG_INFO("HorzMeshTest: Edge sphere radius test FAIL"); } else { LOG_INFO("HorzMeshTest: Edge sphere radius test PASS"); @@ -280,6 +288,7 @@ int main(int argc, char *argv[]) { } if (count > 0) { + RetVal += 1; LOG_INFO("HorzMeshTest: Edge lon/lat test FAIL"); } else { LOG_INFO("HorzMeshTest: Edge lon/lat test PASS"); @@ -298,6 +307,7 @@ int main(int argc, char *argv[]) { if (SumVertices == DefDecomp->NVerticesGlobal) { LOG_INFO("HorzMeshTest: Sum vertex ID test PASS"); } else { + RetVal += 1; LOG_INFO("HorzMeshTest: Sum vertex ID test FAIL {} {}", SumVertices, DefDecomp->NVerticesGlobal); } @@ -317,6 +327,7 @@ int main(int argc, char *argv[]) { } if (count > 0) { + RetVal += 1; LOG_INFO("HorzMeshTest: Vertex sphere radius test FAIL"); } else { LOG_INFO("HorzMeshTest: Vertex sphere radius test PASS"); @@ -343,6 +354,7 @@ int main(int argc, char *argv[]) { } if (count > 0) { + RetVal += 1; LOG_INFO("HorzMeshTest: Vertex lon/lat test FAIL"); } else { LOG_INFO("HorzMeshTest: Vertex lon/lat test PASS"); @@ -366,6 +378,7 @@ int main(int argc, char *argv[]) { if ((MinBathy > 0) && (MaxBathy < 11000.0)) { LOG_INFO("HorzMeshTest: Bathy min/max test PASS"); } else { + RetVal += 1; LOG_INFO("HorzMeshTest: Bathy min/max test FAIL"); } @@ -385,6 +398,7 @@ int main(int argc, char *argv[]) { if (abs(SumCellArea - OceanArea) / OceanArea < 0.05) { LOG_INFO("HorzMeshTest: Cell area test PASS"); } else { + RetVal += 1; LOG_INFO("HorzMeshTest: Cell area test FAIL"); } @@ -403,6 +417,7 @@ int main(int argc, char *argv[]) { if (abs(SumTriangleArea - OceanArea) / OceanArea < 0.05) { LOG_INFO("HorzMeshTest: Triangle area test PASS"); } else { + RetVal += 1; LOG_INFO("HorzMeshTest: Triangle area test FAIL"); } @@ -423,6 +438,7 @@ int main(int argc, char *argv[]) { if (abs(SumKiteArea - OceanArea) / OceanArea < 0.05) { LOG_INFO("HorzMeshTest: Kite area test PASS"); } else { + RetVal += 1; LOG_INFO("HorzMeshTest: Kite area test FAIL"); } @@ -451,6 +467,7 @@ int main(int argc, char *argv[]) { if (count == 0) { LOG_INFO("HorzMeshTest: dcEdge test PASS"); } else { + RetVal += 1; LOG_INFO("HorzMeshTest: dcEdge test FAIL"); } @@ -481,6 +498,7 @@ int main(int argc, char *argv[]) { if (count == 0) { LOG_INFO("HorzMeshTest: dvEdge test PASS"); } else { + RetVal += 1; LOG_INFO("HorzMeshTest: dvEdge test FAIL"); } @@ -497,6 +515,7 @@ int main(int argc, char *argv[]) { if (count == 0) { LOG_INFO("HorzMeshTest: angleEdge test PASS"); } else { + RetVal += 1; LOG_INFO("HorzMeshTest: angleEdge test FAIL"); } @@ -516,6 +535,7 @@ int main(int argc, char *argv[]) { if (count == 0) { LOG_INFO("HorzMeshTest: fCell test PASS"); } else { + RetVal += 1; LOG_INFO("HorzMeshTest: fCell test FAIL"); } @@ -536,6 +556,7 @@ int main(int argc, char *argv[]) { if (count == 0) { LOG_INFO("HorzMeshTest: fVertex test PASS"); } else { + RetVal += 1; LOG_INFO("HorzMeshTest: fVertex test FAIL"); } @@ -555,6 +576,7 @@ int main(int argc, char *argv[]) { if (count == 0) { LOG_INFO("HorzMeshTest: fEdge test PASS"); } else { + RetVal += 1; LOG_INFO("HorzMeshTest: fEdge test FAIL"); } @@ -573,6 +595,7 @@ int main(int argc, char *argv[]) { if (count == 0) { LOG_INFO("HorzMeshTest: weightsOnEdge test PASS"); } else { + RetVal += 1; LOG_INFO("HorzMeshTest: weightsOnEdge test FAIL"); } // Test edgeSignOnCell @@ -610,6 +633,7 @@ int main(int argc, char *argv[]) { if (count == 0) { LOG_INFO("HorzMeshTest: edgeSignOnCell test PASS"); } else { + RetVal += 1; LOG_INFO("HorzMeshTest: edgeSignOnCell test FAIL"); } @@ -646,6 +670,7 @@ int main(int argc, char *argv[]) { if (count == 0) { LOG_INFO("HorzMeshTest: edgeSignOnVertex test PASS"); } else { + RetVal += 1; LOG_INFO("HorzMeshTest: edgeSignOnVertex test FAIL"); } @@ -674,6 +699,7 @@ int main(int argc, char *argv[]) { if (count == 0) { LOG_INFO("HorzMeshTest: cell halo exhange PASS"); } else { + RetVal += 1; LOG_INFO("HorzMeshTest: cell halo exhange FAIL"); } @@ -701,6 +727,7 @@ int main(int argc, char *argv[]) { if (count == 0) { LOG_INFO("HorzMeshTest: edge halo exhange PASS"); } else { + RetVal += 1; LOG_INFO("HorzMeshTest: edge halo exhange FAIL"); } @@ -729,6 +756,7 @@ int main(int argc, char *argv[]) { if (count == 0) { LOG_INFO("HorzMeshTest: vertex halo exhange PASS"); } else { + RetVal += 1; LOG_INFO("HorzMeshTest: vertex halo exhange FAIL"); } // Finalize Omega objects @@ -743,5 +771,10 @@ int main(int argc, char *argv[]) { Kokkos::finalize(); MPI_Finalize(); + if (RetVal >= 256) + RetVal = 255; + + return RetVal; + } // end of main //===-----------------------------------------------------------------------===/ diff --git a/components/omega/test/ocn/HorzOperatorsTest.cpp b/components/omega/test/ocn/HorzOperatorsTest.cpp index b82657a17ca3..4c23aaedabc0 100644 --- a/components/omega/test/ocn/HorzOperatorsTest.cpp +++ b/components/omega/test/ocn/HorzOperatorsTest.cpp @@ -429,7 +429,7 @@ void finalizeOperatorsTest() { MachEnv::removeAll(); } -void operatorsTest(const std::string &MeshFile = DefaultMeshFile) { +int operatorsTest(const std::string &MeshFile = DefaultMeshFile) { int Err = initOperatorsTest(MeshFile); if (Err != 0) { LOG_CRITICAL("OperatorsTest: Error initializing"); @@ -446,15 +446,26 @@ void operatorsTest(const std::string &MeshFile = DefaultMeshFile) { LOG_INFO("OperatorsTest: Successful completion"); } finalizeOperatorsTest(); + + return Err; } int main(int argc, char *argv[]) { + + int RetVal = 0; + MPI_Init(&argc, &argv); Kokkos::initialize(argc, argv); - operatorsTest(); + RetVal += operatorsTest(); Kokkos::finalize(); MPI_Finalize(); + + if (RetVal >= 256) + RetVal = 255; + + return RetVal; + } // end of main //===-----------------------------------------------------------------------===/