From 5efd327dd4a638f63396ff22e908f16a8d6b9f20 Mon Sep 17 00:00:00 2001 From: Sergio Losilla <38527108+loximann@users.noreply.github.com> Date: Thu, 2 Jun 2022 17:11:12 +0300 Subject: [PATCH] Fix crash when running with --list-listeners and no registered listeners (#2442) Co-authored-by: Sergio Losilla --- src/catch2/reporters/catch_reporter_combined_tu.cpp | 7 ++++++- tests/ExtraTests/CMakeLists.txt | 5 ++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/catch2/reporters/catch_reporter_combined_tu.cpp b/src/catch2/reporters/catch_reporter_combined_tu.cpp index 0625943310..2d6e112c2b 100644 --- a/src/catch2/reporters/catch_reporter_combined_tu.cpp +++ b/src/catch2/reporters/catch_reporter_combined_tu.cpp @@ -154,6 +154,12 @@ namespace Catch { void defaultListListeners( std::ostream& out, std::vector const& descriptions ) { + out << "Registered listeners:\n"; + + if(descriptions.empty()) { + return; + } + const auto maxNameLen = std::max_element( descriptions.begin(), descriptions.end(), @@ -163,7 +169,6 @@ namespace Catch { } ) ->name.size(); - out << "Registered listeners:\n"; for ( auto const& desc : descriptions ) { out << TextFlow::Column( static_cast( desc.name ) + ':' ) diff --git a/tests/ExtraTests/CMakeLists.txt b/tests/ExtraTests/CMakeLists.txt index e533ad4a44..f33bd7c117 100644 --- a/tests/ExtraTests/CMakeLists.txt +++ b/tests/ExtraTests/CMakeLists.txt @@ -459,7 +459,10 @@ add_test( NAME TestSpecs::OverrideFailureWithEmptySpec COMMAND $ --allow-running-no-tests ) - +add_test( + NAME List::Listeners::WorksWithoutRegisteredListeners + COMMAND $ --list-listeners +) set( EXTRA_TEST_BINARIES PrefixedMacros DisabledMacros