Avoid adding a default test spec when none was provided

This commit is contained in:
Martin Hořeňovský 2019-04-09 11:50:59 +02:00
parent b9dd1936e5
commit e99f1efd28
No known key found for this signature in database
GPG Key ID: DE48307B8B0D381A
3 changed files with 11 additions and 8 deletions

View File

@ -16,10 +16,7 @@ namespace Catch {
m_stream( openStream() ) m_stream( openStream() )
{ {
TestSpecParser parser(ITagAliasRegistry::get()); TestSpecParser parser(ITagAliasRegistry::get());
if (data.testsOrTags.empty()) { if (!data.testsOrTags.empty()) {
parser.parse("~[.]"); // All not hidden tests
}
else {
m_hasTestFilters = true; m_hasTestFilters = true;
for( auto const& testOrTags : data.testsOrTags ) for( auto const& testOrTags : data.testsOrTags )
parser.parse( testOrTags ); parser.parse( testOrTags );

View File

@ -72,7 +72,10 @@ namespace Catch {
auto const& allTestCases = getAllTestCasesSorted(*config); auto const& allTestCases = getAllTestCasesSorted(*config);
for (auto const& testCase : allTestCases) { for (auto const& testCase : allTestCases) {
if (!context.aborting() && matchTest(testCase, testSpec, *config)) bool matching = (!testSpec.hasFilters() && !testCase.isHidden()) ||
(testSpec.hasFilters() && matchTest(testCase, testSpec, *config));
if (!context.aborting() && matching)
totals += context.runTest(testCase); totals += context.runTest(testCase);
else else
context.reporter().skipTest(testCase); context.reporter().skipTest(testCase);

View File

@ -54,9 +54,12 @@ namespace Catch {
std::vector<TestCase> filterTests( std::vector<TestCase> const& testCases, TestSpec const& testSpec, IConfig const& config ) { std::vector<TestCase> filterTests( std::vector<TestCase> const& testCases, TestSpec const& testSpec, IConfig const& config ) {
std::vector<TestCase> filtered; std::vector<TestCase> filtered;
filtered.reserve( testCases.size() ); filtered.reserve( testCases.size() );
for( auto const& testCase : testCases ) for (auto const& testCase : testCases) {
if( matchTest( testCase, testSpec, config ) ) if ((!testSpec.hasFilters() && !testCase.isHidden()) ||
filtered.push_back( testCase ); (testSpec.hasFilters() && matchTest(testCase, testSpec, config))) {
filtered.push_back(testCase);
}
}
return filtered; return filtered;
} }
std::vector<TestCase> const& getAllTestCasesSorted( IConfig const& config ) { std::vector<TestCase> const& getAllTestCasesSorted( IConfig const& config ) {