Make reporter lookup case insensitive, registration case preserving

Previously registration was case preserving, but lookup used
lowercased reporter name, so a reporter whose name contained
upper case character could not be requested by the user.
This commit is contained in:
Martin Hořeňovský
2021-11-07 23:31:44 +01:00
parent 7800fe9708
commit 8780425385
6 changed files with 84 additions and 4 deletions

View File

@@ -140,11 +140,10 @@ namespace Catch {
auto const setReporter = [&]( std::string const& reporter ) {
IReporterRegistry::FactoryMap const& factories = getRegistryHub().getReporterRegistry().getFactories();
auto lcReporter = toLower( reporter );
auto result = factories.find( lcReporter );
auto result = factories.find( reporter );
if( factories.end() != result )
config.reporterName = lcReporter;
config.reporterName = reporter;
else
return ParserResult::runtimeError( "Unrecognized reporter, '" + reporter + "'. Check available with --list-reporters" );
return ParserResult::ok( ParseResultType::Matched );