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
No related branches found
No related tags found
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