diff --git a/docs/release-notes.md b/docs/release-notes.md index c9bc2f70..3939e5af 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -46,6 +46,9 @@ * Previously, a `TEST_CASE("A", "[.foo]")` would be included by asking for `~[bar]`. * `PredicateMatcher` is no longer type erased. * This means that the type of the provided predicate is part of the `PredicateMatcher`'s type +* `SectionInfo` no longer contains section description as a member (#1319) + * You can still write `SECTION("ShortName", "Long and wordy description")`, but the description is thrown away + * The description type now must be a `const char*` or implicitly convertible to it ### Fixes diff --git a/docs/test-cases-and-sections.md b/docs/test-cases-and-sections.md index 53f9e150..c30f9f50 100644 --- a/docs/test-cases-and-sections.md +++ b/docs/test-cases-and-sections.md @@ -15,9 +15,17 @@ Instead Catch provides a powerful mechanism for nesting test case sections withi Test cases and sections are very easy to use in practice: * **TEST_CASE(** _test name_ \[, _tags_ \] **)** -* **SECTION(** _section name_ **)** +* **SECTION(** _section name_, \[, _section description_ \] **)** -_test name_ and _section name_ are free form, quoted, strings. The optional _tags_ argument is a quoted string containing one or more tags enclosed in square brackets. Tags are discussed below. Test names must be unique within the Catch executable. + +_test name_ and _section name_ are free form, quoted, strings. +The optional _tags_ argument is a quoted string containing one or more +tags enclosed in square brackets, and are discussed below. +_section description_ can be used to provide long form description +of a section while keeping the _section name_ short for use with the +[`-c` command line parameter](command-line.md#specify-the-section-to-run). + +**Test names must be unique within the Catch executable.** For examples see the [Tutorial](tutorial.md#top) diff --git a/include/internal/catch_section_info.h b/include/internal/catch_section_info.h index 9cf792e8..7215c744 100644 --- a/include/internal/catch_section_info.h +++ b/include/internal/catch_section_info.h @@ -9,6 +9,7 @@ #define TWOBLUECUBES_CATCH_SECTION_INFO_H_INCLUDED #include "catch_common.h" +#include "catch_stringref.h" #include "catch_totals.h" #include @@ -20,14 +21,15 @@ namespace Catch { ( SourceLineInfo const& _lineInfo, std::string const& _name ); - // Deprecated + // The last argument is ignored, so that people can write + // SECTION("ShortName", "Proper description that is long") and + // still use the `-c` flag comfortably. SectionInfo ( SourceLineInfo const& _lineInfo, std::string const& _name, - std::string const& ) : SectionInfo( _lineInfo, _name ) {} + const char* const ) : SectionInfo( _lineInfo, _name ) {} std::string name; - std::string description; // !Deprecated: this will always be empty SourceLineInfo lineInfo; };