Skip to content

Commit

Permalink
v2.13.3
Browse files Browse the repository at this point in the history
  • Loading branch information
horenmar committed Oct 31, 2020
1 parent aca2472 commit ff349a5
Show file tree
Hide file tree
Showing 6 changed files with 79 additions and 15 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Expand Up @@ -14,7 +14,7 @@ if (CMAKE_BINARY_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
endif()


project(Catch2 LANGUAGES CXX VERSION 2.13.2)
project(Catch2 LANGUAGES CXX VERSION 2.13.3)

# Provide path for scripts
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/CMake")
Expand Down
2 changes: 1 addition & 1 deletion README.md
Expand Up @@ -9,7 +9,7 @@
[![Join the chat in Discord: https://discord.gg/4CWS9zD](https://img.shields.io/badge/Discord-Chat!-brightgreen.svg)](https://discord.gg/4CWS9zD)


<a href="https://github.com/catchorg/Catch2/releases/download/v2.13.2/catch.hpp">The latest version of the single header can be downloaded directly using this link</a>
<a href="https://github.com/catchorg/Catch2/releases/download/v2.13.3/catch.hpp">The latest version of the single header can be downloaded directly using this link</a>

## Catch2 is released!

Expand Down
12 changes: 12 additions & 0 deletions docs/release-notes.md
Expand Up @@ -2,6 +2,7 @@

# Release notes
**Contents**<br>
[2.13.3](#2133)<br>
[2.13.2](#2132)<br>
[2.13.1](#2131)<br>
[2.13.0](#2130)<br>
Expand Down Expand Up @@ -43,6 +44,17 @@
[Even Older versions](#even-older-versions)<br>


## 2.13.3

### Fixes
* Fixed possible infinite loop when combining generators with section filter (`-c` option) (#2025)

### Miscellaneous
* Fixed `ParseAndAddCatchTests` not finding `TEST_CASE`s without tags (#2055, #2056)
* `ParseAndAddCatchTests` supports `CMP0110` policy for changing behaviour of `add_test` (#2057)
* This was the shortlived change in CMake 3.18.0 that temporarily broke `ParseAndAddCatchTests`


## 2.13.2

### Improvements
Expand Down
2 changes: 1 addition & 1 deletion include/catch.hpp
Expand Up @@ -11,7 +11,7 @@

#define CATCH_VERSION_MAJOR 2
#define CATCH_VERSION_MINOR 13
#define CATCH_VERSION_PATCH 2
#define CATCH_VERSION_PATCH 3

#ifdef __clang__
# pragma clang system_header
Expand Down
2 changes: 1 addition & 1 deletion include/internal/catch_version.cpp
Expand Up @@ -37,7 +37,7 @@ namespace Catch {
}

Version const& libraryVersion() {
static Version version( 2, 13, 2, "", 0 );
static Version version( 2, 13, 3, "", 0 );
return version;
}

Expand Down
74 changes: 63 additions & 11 deletions single_include/catch2/catch.hpp
@@ -1,6 +1,6 @@
/*
* Catch v2.13.2
* Generated: 2020-10-07 11:32:53.302017
* Catch v2.13.3
* Generated: 2020-10-31 18:20:31.045274
* ----------------------------------------------------------
* This file has been merged from multiple headers. Please don't edit it directly
* Copyright (c) 2020 Two Blue Cubes Ltd. All rights reserved.
Expand All @@ -15,7 +15,7 @@

#define CATCH_VERSION_MAJOR 2
#define CATCH_VERSION_MINOR 13
#define CATCH_VERSION_PATCH 2
#define CATCH_VERSION_PATCH 3

#ifdef __clang__
# pragma clang system_header
Expand Down Expand Up @@ -7602,6 +7602,10 @@ namespace TestCaseTracking {

void addInitialFilters( std::vector<std::string> const& filters );
void addNextFilters( std::vector<std::string> const& filters );
//! Returns filters active in this tracker
std::vector<std::string> const& getFilters() const;
//! Returns whitespace-trimmed name of the tracked section
std::string const& trimmedName() const;
};

} // namespace TestCaseTracking
Expand Down Expand Up @@ -12571,13 +12575,53 @@ namespace Catch {
// `SECTION`s.
// **The check for m_children.empty cannot be removed**.
// doing so would break `GENERATE` _not_ followed by `SECTION`s.
const bool should_wait_for_child =
!m_children.empty() &&
std::find_if( m_children.begin(),
m_children.end(),
[]( TestCaseTracking::ITrackerPtr tracker ) {
return tracker->hasStarted();
} ) == m_children.end();
const bool should_wait_for_child = [&]() {
// No children -> nobody to wait for
if ( m_children.empty() ) {
return false;
}
// If at least one child started executing, don't wait
if ( std::find_if(
m_children.begin(),
m_children.end(),
[]( TestCaseTracking::ITrackerPtr tracker ) {
return tracker->hasStarted();
} ) != m_children.end() ) {
return false;
}

// No children have started. We need to check if they _can_
// start, and thus we should wait for them, or they cannot
// start (due to filters), and we shouldn't wait for them
auto* parent = m_parent;
// This is safe: there is always at least one section
// tracker in a test case tracking tree
while ( !parent->isSectionTracker() ) {
parent = &( parent->parent() );
}
assert( parent &&
"Missing root (test case) level section" );

auto const& parentSection =
static_cast<SectionTracker&>( *parent );
auto const& filters = parentSection.getFilters();
// No filters -> no restrictions on running sections
if ( filters.empty() ) {
return true;
}

for ( auto const& child : m_children ) {
if ( child->isSectionTracker() &&
std::find( filters.begin(),
filters.end(),
static_cast<SectionTracker&>( *child )
.trimmedName() ) !=
filters.end() ) {
return true;
}
}
return false;
}();

// This check is a bit tricky, because m_generator->next()
// has a side-effect, where it consumes generator's current
Expand Down Expand Up @@ -14449,6 +14493,14 @@ namespace TestCaseTracking {
m_filters.insert( m_filters.end(), filters.begin()+1, filters.end() );
}

std::vector<std::string> const& SectionTracker::getFilters() const {
return m_filters;
}

std::string const& SectionTracker::trimmedName() const {
return m_trimmed_name;
}

} // namespace TestCaseTracking

using TestCaseTracking::ITracker;
Expand Down Expand Up @@ -15264,7 +15316,7 @@ namespace Catch {
}

Version const& libraryVersion() {
static Version version( 2, 13, 2, "", 0 );
static Version version( 2, 13, 3, "", 0 );
return version;
}

Expand Down

0 comments on commit ff349a5

Please sign in to comment.