Skip to content

Commit 0b4d7a5

Browse files
committed
JSONReporter's listTests only lists class-name if it is non-empty
1 parent a0eba50 commit 0b4d7a5

12 files changed

Lines changed: 33 additions & 44 deletions

benchmarks/discover_tests/listing_template.json

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"version": 1,
2+
"version": 2,
33
"metadata": {
44
"name": "benchmark-template",
55
"catch2-version": "3.15.2"
@@ -8,7 +8,6 @@
88
"tests": [
99
{
1010
"name": "Comparing function pointers",
11-
"class-name": "",
1211
"tags": [
1312
"function pointer",
1413
"Tricky"
@@ -20,7 +19,6 @@
2019
},
2120
{
2221
"name": "Testing checked-if 4",
23-
"class-name": "",
2422
"tags": [
2523
"!shouldfail",
2624
"checked-if"
@@ -32,7 +30,6 @@
3230
},
3331
{
3432
"name": "count_equidistant_floats - double",
35-
"class-name": "",
3633
"tags": [
3734
"approvals",
3835
"distance",
@@ -45,7 +42,6 @@
4542
},
4643
{
4744
"name": "Usage of AllTrue range matcher",
48-
"class-name": "",
4945
"tags": [
5046
"matchers",
5147
"quantifiers",
@@ -58,7 +54,6 @@
5854
},
5955
{
6056
"name": "Exception matchers that succeed",
61-
"class-name": "",
6257
"tags": [
6358
"!throws",
6459
"exceptions",
@@ -83,7 +78,6 @@
8378
},
8479
{
8580
"name": "Approximate PI",
86-
"class-name": "",
8781
"tags": [
8882
"Approx",
8983
"PI"
@@ -95,7 +89,6 @@
9589
},
9690
{
9791
"name": "TextFlow::Column respects width setting",
98-
"class-name": "",
9992
"tags": [
10093
"approvals",
10194
"column",
@@ -108,7 +101,6 @@
108101
},
109102
{
110103
"name": "Generators internals",
111-
"class-name": "",
112104
"tags": [
113105
"generators",
114106
"internals"
@@ -120,7 +112,6 @@
120112
},
121113
{
122114
"name": "Mayfail test case with nested sections",
123-
"class-name": "",
124115
"tags": [
125116
"!mayfail"
126117
],

extras/CatchAddTests.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -326,7 +326,7 @@ function(catch_discover_tests_impl)
326326

327327
# Parse JSON output for list of tests/class names/tags
328328
string(JSON version GET "${listing_output}" "version")
329-
if(NOT version STREQUAL "1")
329+
if(NOT version STREQUAL "2")
330330
message(FATAL_ERROR "Unsupported catch output version: '${version}'")
331331
endif()
332332

src/catch2/reporters/catch_reporter_json.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616

1717
namespace Catch {
1818
namespace {
19+
static size_t kJsonOutputVersion = 2;
20+
1921
void writeSourceInfo( JsonObjectWriter& writer,
2022
SourceLineInfo const& sourceInfo ) {
2123
auto source_location_writer =
@@ -58,7 +60,7 @@ namespace Catch {
5860
m_writers.emplace( Writer::Object );
5961
auto& writer = m_objectWriters.top();
6062

61-
writer.write( "version"_sr ).write( 1 );
63+
writer.write( "version"_sr ).write( kJsonOutputVersion );
6264

6365
{
6466
auto metadata_writer = writer.write( "metadata"_sr ).writeObject();
@@ -344,7 +346,9 @@ namespace Catch {
344346
auto const& info = test.getTestCaseInfo();
345347

346348
desc_writer.write( "name"_sr ).write( info.name );
347-
desc_writer.write( "class-name"_sr ).write( info.className );
349+
if (!info.className.empty()) {
350+
desc_writer.write( "class-name"_sr ).write( info.className );
351+
}
348352
{
349353
auto tag_writer = desc_writer.write( "tags"_sr ).writeArray();
350354
for ( auto const& tag : info.tags ) {

tests/SelfTest/Baselines/compact.sw.approved.txt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1696,7 +1696,7 @@ Reporters.tests.cpp:<line number>: passed: listingString, ContainsSubstring( "fa
16961696
" ( contains: "fake test name" and contains: "fakeTestTag" ) with 1 message: 'Tested reporter: console'
16971697
Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
16981698
Reporters.tests.cpp:<line number>: passed: listingString, ContainsSubstring("fakeTag"s) for: "{
1699-
"version": 1,
1699+
"version": 2,
17001700
"metadata": {
17011701
"name": "",
17021702
"rng-seed": 1234,
@@ -1713,7 +1713,7 @@ Reporters.tests.cpp:<line number>: passed: listingString, ContainsSubstring("fak
17131713
]" contains: "fakeTag" with 1 message: 'Tested reporter: JSON'
17141714
Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
17151715
Reporters.tests.cpp:<line number>: passed: listingString, ContainsSubstring("fake reporter"s) for: "{
1716-
"version": 1,
1716+
"version": 2,
17171717
"metadata": {
17181718
"name": "",
17191719
"rng-seed": 1234,
@@ -1728,7 +1728,7 @@ Reporters.tests.cpp:<line number>: passed: listingString, ContainsSubstring("fak
17281728
]" contains: "fake reporter" with 1 message: 'Tested reporter: JSON'
17291729
Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
17301730
Reporters.tests.cpp:<line number>: passed: listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s ) for: "{
1731-
"version": 1,
1731+
"version": 2,
17321732
"metadata": {
17331733
"name": "",
17341734
"rng-seed": 1234,
@@ -1738,7 +1738,6 @@ Reporters.tests.cpp:<line number>: passed: listingString, ContainsSubstring( "fa
17381738
"tests": [
17391739
{
17401740
"name": "fake test name",
1741-
"class-name": "",
17421741
"tags": [
17431742
"fakeTestTag"
17441743
],

tests/SelfTest/Baselines/compact.sw.multi.approved.txt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1694,7 +1694,7 @@ Reporters.tests.cpp:<line number>: passed: listingString, ContainsSubstring( "fa
16941694
" ( contains: "fake test name" and contains: "fakeTestTag" ) with 1 message: 'Tested reporter: console'
16951695
Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
16961696
Reporters.tests.cpp:<line number>: passed: listingString, ContainsSubstring("fakeTag"s) for: "{
1697-
"version": 1,
1697+
"version": 2,
16981698
"metadata": {
16991699
"name": "",
17001700
"rng-seed": 1234,
@@ -1711,7 +1711,7 @@ Reporters.tests.cpp:<line number>: passed: listingString, ContainsSubstring("fak
17111711
]" contains: "fakeTag" with 1 message: 'Tested reporter: JSON'
17121712
Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
17131713
Reporters.tests.cpp:<line number>: passed: listingString, ContainsSubstring("fake reporter"s) for: "{
1714-
"version": 1,
1714+
"version": 2,
17151715
"metadata": {
17161716
"name": "",
17171717
"rng-seed": 1234,
@@ -1726,7 +1726,7 @@ Reporters.tests.cpp:<line number>: passed: listingString, ContainsSubstring("fak
17261726
]" contains: "fake reporter" with 1 message: 'Tested reporter: JSON'
17271727
Reporters.tests.cpp:<line number>: passed: !(factories.empty()) for: !false
17281728
Reporters.tests.cpp:<line number>: passed: listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s ) for: "{
1729-
"version": 1,
1729+
"version": 2,
17301730
"metadata": {
17311731
"name": "",
17321732
"rng-seed": 1234,
@@ -1736,7 +1736,6 @@ Reporters.tests.cpp:<line number>: passed: listingString, ContainsSubstring( "fa
17361736
"tests": [
17371737
{
17381738
"name": "fake test name",
1739-
"class-name": "",
17401739
"tags": [
17411740
"fakeTestTag"
17421741
],

tests/SelfTest/Baselines/console.sw.approved.txt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11233,7 +11233,7 @@ Reporters.tests.cpp:<line number>: PASSED:
1123311233
REQUIRE_THAT( listingString, ContainsSubstring("fakeTag"s) )
1123411234
with expansion:
1123511235
"{
11236-
"version": 1,
11236+
"version": 2,
1123711237
"metadata": {
1123811238
"name": "",
1123911239
"rng-seed": 1234,
@@ -11273,7 +11273,7 @@ Reporters.tests.cpp:<line number>: PASSED:
1127311273
REQUIRE_THAT( listingString, ContainsSubstring("fake reporter"s) )
1127411274
with expansion:
1127511275
"{
11276-
"version": 1,
11276+
"version": 2,
1127711277
"metadata": {
1127811278
"name": "",
1127911279
"rng-seed": 1234,
@@ -11311,7 +11311,7 @@ Reporters.tests.cpp:<line number>: PASSED:
1131111311
REQUIRE_THAT( listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s ) )
1131211312
with expansion:
1131311313
"{
11314-
"version": 1,
11314+
"version": 2,
1131511315
"metadata": {
1131611316
"name": "",
1131711317
"rng-seed": 1234,
@@ -11321,7 +11321,6 @@ with expansion:
1132111321
"tests": [
1132211322
{
1132311323
"name": "fake test name",
11324-
"class-name": "",
1132511324
"tags": [
1132611325
"fakeTestTag"
1132711326
],

tests/SelfTest/Baselines/console.sw.multi.approved.txt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11231,7 +11231,7 @@ Reporters.tests.cpp:<line number>: PASSED:
1123111231
REQUIRE_THAT( listingString, ContainsSubstring("fakeTag"s) )
1123211232
with expansion:
1123311233
"{
11234-
"version": 1,
11234+
"version": 2,
1123511235
"metadata": {
1123611236
"name": "",
1123711237
"rng-seed": 1234,
@@ -11271,7 +11271,7 @@ Reporters.tests.cpp:<line number>: PASSED:
1127111271
REQUIRE_THAT( listingString, ContainsSubstring("fake reporter"s) )
1127211272
with expansion:
1127311273
"{
11274-
"version": 1,
11274+
"version": 2,
1127511275
"metadata": {
1127611276
"name": "",
1127711277
"rng-seed": 1234,
@@ -11309,7 +11309,7 @@ Reporters.tests.cpp:<line number>: PASSED:
1130911309
REQUIRE_THAT( listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s ) )
1131011310
with expansion:
1131111311
"{
11312-
"version": 1,
11312+
"version": 2,
1131311313
"metadata": {
1131411314
"name": "",
1131511315
"rng-seed": 1234,
@@ -11319,7 +11319,6 @@ with expansion:
1131911319
"tests": [
1132011320
{
1132111321
"name": "fake test name",
11322-
"class-name": "",
1132311322
"tags": [
1132411323
"fakeTestTag"
1132511324
],

tests/SelfTest/Baselines/tap.sw.approved.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2767,15 +2767,15 @@ ok {test-number} - listingString, ContainsSubstring( "fake test name"s ) && Cont
27672767
# Reporter's write listings to provided stream
27682768
ok {test-number} - !(factories.empty()) for: !false
27692769
# Reporter's write listings to provided stream
2770-
ok {test-number} - listingString, ContainsSubstring("fakeTag"s) for: "{ "version": 1, "metadata": { "name": "", "rng-seed": 1234, "catch2-version": "<version>" }, "listings": { "tags": [ { "aliases": [ "fakeTag" ], "count": 1 } ]" contains: "fakeTag" with 1 message: 'Tested reporter: JSON'
2770+
ok {test-number} - listingString, ContainsSubstring("fakeTag"s) for: "{ "version": 2, "metadata": { "name": "", "rng-seed": 1234, "catch2-version": "<version>" }, "listings": { "tags": [ { "aliases": [ "fakeTag" ], "count": 1 } ]" contains: "fakeTag" with 1 message: 'Tested reporter: JSON'
27712771
# Reporter's write listings to provided stream
27722772
ok {test-number} - !(factories.empty()) for: !false
27732773
# Reporter's write listings to provided stream
2774-
ok {test-number} - listingString, ContainsSubstring("fake reporter"s) for: "{ "version": 1, "metadata": { "name": "", "rng-seed": 1234, "catch2-version": "<version>" }, "listings": { "reporters": [ { "name": "fake reporter", "description": "fake description" } ]" contains: "fake reporter" with 1 message: 'Tested reporter: JSON'
2774+
ok {test-number} - listingString, ContainsSubstring("fake reporter"s) for: "{ "version": 2, "metadata": { "name": "", "rng-seed": 1234, "catch2-version": "<version>" }, "listings": { "reporters": [ { "name": "fake reporter", "description": "fake description" } ]" contains: "fake reporter" with 1 message: 'Tested reporter: JSON'
27752775
# Reporter's write listings to provided stream
27762776
ok {test-number} - !(factories.empty()) for: !false
27772777
# Reporter's write listings to provided stream
2778-
ok {test-number} - listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s ) for: "{ "version": 1, "metadata": { "name": "", "rng-seed": 1234, "catch2-version": "<version>" }, "listings": { "tests": [ { "name": "fake test name", "class-name": "", "tags": [ "fakeTestTag" ], "source-location": { "filename": "fake-file.cpp", "line": 123456789 } } ]" ( contains: "fake test name" and contains: "fakeTestTag" ) with 1 message: 'Tested reporter: JSON'
2778+
ok {test-number} - listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s ) for: "{ "version": 2, "metadata": { "name": "", "rng-seed": 1234, "catch2-version": "<version>" }, "listings": { "tests": [ { "name": "fake test name", "tags": [ "fakeTestTag" ], "source-location": { "filename": "fake-file.cpp", "line": 123456789 } } ]" ( contains: "fake test name" and contains: "fakeTestTag" ) with 1 message: 'Tested reporter: JSON'
27792779
# Reporter's write listings to provided stream
27802780
ok {test-number} - !(factories.empty()) for: !false
27812781
# Reporter's write listings to provided stream

tests/SelfTest/Baselines/tap.sw.multi.approved.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2765,15 +2765,15 @@ ok {test-number} - listingString, ContainsSubstring( "fake test name"s ) && Cont
27652765
# Reporter's write listings to provided stream
27662766
ok {test-number} - !(factories.empty()) for: !false
27672767
# Reporter's write listings to provided stream
2768-
ok {test-number} - listingString, ContainsSubstring("fakeTag"s) for: "{ "version": 1, "metadata": { "name": "", "rng-seed": 1234, "catch2-version": "<version>" }, "listings": { "tags": [ { "aliases": [ "fakeTag" ], "count": 1 } ]" contains: "fakeTag" with 1 message: 'Tested reporter: JSON'
2768+
ok {test-number} - listingString, ContainsSubstring("fakeTag"s) for: "{ "version": 2, "metadata": { "name": "", "rng-seed": 1234, "catch2-version": "<version>" }, "listings": { "tags": [ { "aliases": [ "fakeTag" ], "count": 1 } ]" contains: "fakeTag" with 1 message: 'Tested reporter: JSON'
27692769
# Reporter's write listings to provided stream
27702770
ok {test-number} - !(factories.empty()) for: !false
27712771
# Reporter's write listings to provided stream
2772-
ok {test-number} - listingString, ContainsSubstring("fake reporter"s) for: "{ "version": 1, "metadata": { "name": "", "rng-seed": 1234, "catch2-version": "<version>" }, "listings": { "reporters": [ { "name": "fake reporter", "description": "fake description" } ]" contains: "fake reporter" with 1 message: 'Tested reporter: JSON'
2772+
ok {test-number} - listingString, ContainsSubstring("fake reporter"s) for: "{ "version": 2, "metadata": { "name": "", "rng-seed": 1234, "catch2-version": "<version>" }, "listings": { "reporters": [ { "name": "fake reporter", "description": "fake description" } ]" contains: "fake reporter" with 1 message: 'Tested reporter: JSON'
27732773
# Reporter's write listings to provided stream
27742774
ok {test-number} - !(factories.empty()) for: !false
27752775
# Reporter's write listings to provided stream
2776-
ok {test-number} - listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s ) for: "{ "version": 1, "metadata": { "name": "", "rng-seed": 1234, "catch2-version": "<version>" }, "listings": { "tests": [ { "name": "fake test name", "class-name": "", "tags": [ "fakeTestTag" ], "source-location": { "filename": "fake-file.cpp", "line": 123456789 } } ]" ( contains: "fake test name" and contains: "fakeTestTag" ) with 1 message: 'Tested reporter: JSON'
2776+
ok {test-number} - listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s ) for: "{ "version": 2, "metadata": { "name": "", "rng-seed": 1234, "catch2-version": "<version>" }, "listings": { "tests": [ { "name": "fake test name", "tags": [ "fakeTestTag" ], "source-location": { "filename": "fake-file.cpp", "line": 123456789 } } ]" ( contains: "fake test name" and contains: "fakeTestTag" ) with 1 message: 'Tested reporter: JSON'
27772777
# Reporter's write listings to provided stream
27782778
ok {test-number} - !(factories.empty()) for: !false
27792779
# Reporter's write listings to provided stream

tests/SelfTest/Baselines/xml.sw.approved.txt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13419,7 +13419,7 @@ Approx( 0.98999999999999999 )
1341913419
</Original>
1342013420
<Expanded>
1342113421
"{
13422-
"version": 1,
13422+
"version": 2,
1342313423
"metadata": {
1342413424
"name": "",
1342513425
"rng-seed": 1234,
@@ -13456,7 +13456,7 @@ Approx( 0.98999999999999999 )
1345613456
</Original>
1345713457
<Expanded>
1345813458
"{
13459-
"version": 1,
13459+
"version": 2,
1346013460
"metadata": {
1346113461
"name": "",
1346213462
"rng-seed": 1234,
@@ -13491,7 +13491,7 @@ Approx( 0.98999999999999999 )
1349113491
</Original>
1349213492
<Expanded>
1349313493
"{
13494-
"version": 1,
13494+
"version": 2,
1349513495
"metadata": {
1349613496
"name": "",
1349713497
"rng-seed": 1234,
@@ -13501,7 +13501,6 @@ Approx( 0.98999999999999999 )
1350113501
"tests": [
1350213502
{
1350313503
"name": "fake test name",
13504-
"class-name": "",
1350513504
"tags": [
1350613505
"fakeTestTag"
1350713506
],

0 commit comments

Comments
 (0)