Skip to content
Snippets Groups Projects
Commit a24b5701 authored by Stéphane Del Pino's avatar Stéphane Del Pino
Browse files

Improve Catch2 integration

Mainly dealing with outputs
parent 16355237
Branches
Tags
1 merge request!61Feature/mesh based ci
...@@ -33,6 +33,13 @@ main(int argc, char* argv[]) ...@@ -33,6 +33,13 @@ main(int argc, char* argv[])
Catch::Session session; Catch::Session session;
int result = session.applyCommandLine(argc, argv); int result = session.applyCommandLine(argc, argv);
if (result == 0) {
const auto& config = session.config();
if (config.listReporters() or config.listTags() or config.listTestNamesOnly() or config.listTests()) {
if (parallel::rank() == 0) {
session.run();
}
} else {
if (parallel::rank() != 0) { if (parallel::rank() != 0) {
// Disable outputs for ranks != 0 // Disable outputs for ranks != 0
setenv("GCOV_PREFIX", gcov_prefix.string().c_str(), 1); setenv("GCOV_PREFIX", gcov_prefix.string().c_str(), 1);
...@@ -43,7 +50,6 @@ main(int argc, char* argv[]) ...@@ -43,7 +50,6 @@ main(int argc, char* argv[])
session.useConfigData(data); session.useConfigData(data);
} }
if (result == 0) {
// Disable outputs from tested classes to the standard output // Disable outputs from tested classes to the standard output
std::cout.setstate(std::ios::badbit); std::cout.setstate(std::ios::badbit);
...@@ -78,6 +84,7 @@ main(int argc, char* argv[]) ...@@ -78,6 +84,7 @@ main(int argc, char* argv[])
MeshDataManager::destroy(); MeshDataManager::destroy();
SynchronizerManager::destroy(); SynchronizerManager::destroy();
} }
}
Kokkos::finalize(); Kokkos::finalize();
parallel::Messenger::destroy(); parallel::Messenger::destroy();
......
...@@ -21,6 +21,10 @@ main(int argc, char* argv[]) ...@@ -21,6 +21,10 @@ main(int argc, char* argv[])
int result = session.applyCommandLine(argc, argv); int result = session.applyCommandLine(argc, argv);
if (result == 0) { if (result == 0) {
const auto& config = session.config();
if (config.listReporters() or config.listTags() or config.listTestNamesOnly() or config.listTests()) {
result = session.run();
} else {
// Disable outputs from tested classes to the standard output // Disable outputs from tested classes to the standard output
std::cout.setstate(std::ios::badbit); std::cout.setstate(std::ios::badbit);
...@@ -40,9 +44,10 @@ main(int argc, char* argv[]) ...@@ -40,9 +44,10 @@ main(int argc, char* argv[])
MeshDataManager::destroy(); MeshDataManager::destroy();
SynchronizerManager::destroy(); SynchronizerManager::destroy();
} }
}
Kokkos::finalize(); Kokkos::finalize();
parallel::Messenger::destroy(); parallel::Messenger::destroy();
std::cout << "finalizing\n";
return result; return result;
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment