Skip to content

Commit

Permalink
Sections no longer save their description
Browse files Browse the repository at this point in the history
Users can still write a description for their sections, but it will
no longer be saved as part of the `SectionInfo` struct. This ability
has also been added to the documentation.

Closes #1319
  • Loading branch information
horenmar committed Nov 3, 2019
1 parent 2c6ace0 commit ae10e4e
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 5 deletions.
3 changes: 3 additions & 0 deletions docs/release-notes.md
Expand Up @@ -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
Expand Down
12 changes: 10 additions & 2 deletions docs/test-cases-and-sections.md
Expand Up @@ -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)

Expand Down
8 changes: 5 additions & 3 deletions include/internal/catch_section_info.h
Expand Up @@ -9,6 +9,7 @@
#define TWOBLUECUBES_CATCH_SECTION_INFO_H_INCLUDED

#include "catch_common.h"
#include "catch_stringref.h"
#include "catch_totals.h"

#include <string>
Expand All @@ -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;
};

Expand Down

0 comments on commit ae10e4e

Please sign in to comment.