From 451afe857ba3f0be7671616d3dc3d249d754a2c5 Mon Sep 17 00:00:00 2001 From: Jochen Topf Date: Thu, 21 May 2026 10:44:37 +0200 Subject: [PATCH] Check return codes of ParseFromArray calls in tests Some versions of the protobuf library mark the as [[nodiscard]]. Disabling the nullability warning is needed on MacOS due to some issue in the ABSL library. --- .github/workflows/ci.yml | 1 + test/t/bool/writer_test_cases.cpp | 4 ++-- test/t/bytes/writer_test_cases.cpp | 8 ++++---- test/t/double/writer_test_cases.cpp | 6 +++--- test/t/enum/writer_test_cases.cpp | 10 +++++----- test/t/fixed32/writer_test_cases.cpp | 6 +++--- test/t/int32/writer_test_cases.cpp | 10 +++++----- test/t/message/writer_test_cases.cpp | 2 +- test/t/nested/writer_test_cases.cpp | 2 +- test/t/repeated/writer_test_cases.cpp | 4 ++-- test/t/repeated_packed_fixed32/writer_test_cases.cpp | 6 +++--- test/t/string/writer_test_cases.cpp | 6 +++--- 12 files changed, 33 insertions(+), 32 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f3cc2a197..5f71a5780 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -135,6 +135,7 @@ jobs: env: CC: clang CXX: clang++ + CXXFLAGS: -Wno-nullability-extension BUILD_TYPE: ${{ matrix.build_type }} steps: - run: brew install doxygen graphviz protobuf diff --git a/test/t/bool/writer_test_cases.cpp b/test/t/bool/writer_test_cases.cpp index 805d45e20..74aa8bc75 100644 --- a/test/t/bool/writer_test_cases.cpp +++ b/test/t/bool/writer_test_cases.cpp @@ -16,7 +16,7 @@ TEMPLATE_TEST_CASE("write bool field and check with libprotobuf", "", SECTION("false") { pw.add_bool(1, false); - msg.ParseFromArray(buffer.data(), buffer.size()); + REQUIRE(msg.ParseFromArray(buffer.data(), buffer.size())); REQUIRE_FALSE(msg.b()); } @@ -24,7 +24,7 @@ TEMPLATE_TEST_CASE("write bool field and check with libprotobuf", "", SECTION("true") { pw.add_bool(1, true); - msg.ParseFromArray(buffer.data(), buffer.size()); + REQUIRE(msg.ParseFromArray(buffer.data(), buffer.size())); REQUIRE(msg.b()); } diff --git a/test/t/bytes/writer_test_cases.cpp b/test/t/bytes/writer_test_cases.cpp index cd19d471b..f590a6a0c 100644 --- a/test/t/bytes/writer_test_cases.cpp +++ b/test/t/bytes/writer_test_cases.cpp @@ -14,7 +14,7 @@ TEMPLATE_TEST_CASE("write bytes field and check with libprotobuf", "", SECTION("empty") { pw.add_string(1, ""); - msg.ParseFromArray(buffer.data(), buffer.size()); + REQUIRE(msg.ParseFromArray(buffer.data(), buffer.size())); REQUIRE(msg.s().empty()); } @@ -22,7 +22,7 @@ TEMPLATE_TEST_CASE("write bytes field and check with libprotobuf", "", SECTION("one") { pw.add_string(1, "x"); - msg.ParseFromArray(buffer.data(), buffer.size()); + REQUIRE(msg.ParseFromArray(buffer.data(), buffer.size())); REQUIRE(msg.s() == "x"); } @@ -30,7 +30,7 @@ TEMPLATE_TEST_CASE("write bytes field and check with libprotobuf", "", SECTION("string") { pw.add_string(1, "foobar"); - msg.ParseFromArray(buffer.data(), buffer.size()); + REQUIRE(msg.ParseFromArray(buffer.data(), buffer.size())); REQUIRE(msg.s() == "foobar"); } @@ -43,7 +43,7 @@ TEMPLATE_TEST_CASE("write bytes field and check with libprotobuf", "", pw.add_string(1, data); - msg.ParseFromArray(buffer.data(), buffer.size()); + REQUIRE(msg.ParseFromArray(buffer.data(), buffer.size())); REQUIRE(msg.s().size() == 3); REQUIRE(msg.s()[1] == static_cast(2)); diff --git a/test/t/double/writer_test_cases.cpp b/test/t/double/writer_test_cases.cpp index ba855c5ee..86cad1986 100644 --- a/test/t/double/writer_test_cases.cpp +++ b/test/t/double/writer_test_cases.cpp @@ -14,7 +14,7 @@ TEMPLATE_TEST_CASE("write double field and check with libprotobuf", "", SECTION("zero") { pw.add_double(1, 0.0); - msg.ParseFromArray(buffer.data(), buffer.size()); + REQUIRE(msg.ParseFromArray(buffer.data(), buffer.size())); REQUIRE(msg.x() == Approx(0.0)); } @@ -22,7 +22,7 @@ TEMPLATE_TEST_CASE("write double field and check with libprotobuf", "", SECTION("positive") { pw.add_double(1, 4.893); - msg.ParseFromArray(buffer.data(), buffer.size()); + REQUIRE(msg.ParseFromArray(buffer.data(), buffer.size())); REQUIRE(msg.x() == Approx(4.893)); } @@ -30,7 +30,7 @@ TEMPLATE_TEST_CASE("write double field and check with libprotobuf", "", SECTION("negative") { pw.add_double(1, -9232.33); - msg.ParseFromArray(buffer.data(), buffer.size()); + REQUIRE(msg.ParseFromArray(buffer.data(), buffer.size())); REQUIRE(msg.x() == Approx(-9232.33)); } diff --git a/test/t/enum/writer_test_cases.cpp b/test/t/enum/writer_test_cases.cpp index 775e0fd7c..dd3877aef 100644 --- a/test/t/enum/writer_test_cases.cpp +++ b/test/t/enum/writer_test_cases.cpp @@ -14,7 +14,7 @@ TEMPLATE_TEST_CASE("write enum field and check with libprotobuf", "", SECTION("zero") { pw.add_enum(1, 0L); - msg.ParseFromArray(buffer.data(), buffer.size()); + REQUIRE(msg.ParseFromArray(buffer.data(), buffer.size())); REQUIRE(msg.color() == TestEnum::Color::BLACK); } @@ -22,7 +22,7 @@ TEMPLATE_TEST_CASE("write enum field and check with libprotobuf", "", SECTION("positive") { pw.add_enum(1, 3L); - msg.ParseFromArray(buffer.data(), buffer.size()); + REQUIRE(msg.ParseFromArray(buffer.data(), buffer.size())); REQUIRE(msg.color() == TestEnum::Color::BLUE); } @@ -30,7 +30,7 @@ TEMPLATE_TEST_CASE("write enum field and check with libprotobuf", "", SECTION("negative") { pw.add_enum(1, -1L); - msg.ParseFromArray(buffer.data(), buffer.size()); + REQUIRE(msg.ParseFromArray(buffer.data(), buffer.size())); REQUIRE(msg.color() == TestEnum::Color::NEG); } @@ -38,7 +38,7 @@ TEMPLATE_TEST_CASE("write enum field and check with libprotobuf", "", SECTION("max") { pw.add_enum(1, std::numeric_limits::max() - 1); - msg.ParseFromArray(buffer.data(), buffer.size()); + REQUIRE(msg.ParseFromArray(buffer.data(), buffer.size())); REQUIRE(msg.color() == TestEnum::Color::MAX); } @@ -46,7 +46,7 @@ TEMPLATE_TEST_CASE("write enum field and check with libprotobuf", "", SECTION("min") { pw.add_enum(1, std::numeric_limits::min() + 1); - msg.ParseFromArray(buffer.data(), buffer.size()); + REQUIRE(msg.ParseFromArray(buffer.data(), buffer.size())); REQUIRE(msg.color() == TestEnum::Color::MIN); } diff --git a/test/t/fixed32/writer_test_cases.cpp b/test/t/fixed32/writer_test_cases.cpp index 82c041e6c..cfb90b60b 100644 --- a/test/t/fixed32/writer_test_cases.cpp +++ b/test/t/fixed32/writer_test_cases.cpp @@ -14,7 +14,7 @@ TEMPLATE_TEST_CASE("write fixed32 field and check with libprotobuf", "", SECTION("zero") { pw.add_fixed32(1, 0); - msg.ParseFromArray(buffer.data(), buffer.size()); + REQUIRE(msg.ParseFromArray(buffer.data(), buffer.size())); REQUIRE(msg.i() == 0); } @@ -22,7 +22,7 @@ TEMPLATE_TEST_CASE("write fixed32 field and check with libprotobuf", "", SECTION("max") { pw.add_fixed32(1, std::numeric_limits::max()); - msg.ParseFromArray(buffer.data(), buffer.size()); + REQUIRE(msg.ParseFromArray(buffer.data(), buffer.size())); REQUIRE(msg.i() == std::numeric_limits::max()); } @@ -30,7 +30,7 @@ TEMPLATE_TEST_CASE("write fixed32 field and check with libprotobuf", "", SECTION("min") { pw.add_fixed32(1, std::numeric_limits::min()); - msg.ParseFromArray(buffer.data(), buffer.size()); + REQUIRE(msg.ParseFromArray(buffer.data(), buffer.size())); REQUIRE(msg.i() == std::numeric_limits::min()); } diff --git a/test/t/int32/writer_test_cases.cpp b/test/t/int32/writer_test_cases.cpp index 9629bfa4c..12d951757 100644 --- a/test/t/int32/writer_test_cases.cpp +++ b/test/t/int32/writer_test_cases.cpp @@ -14,7 +14,7 @@ TEMPLATE_TEST_CASE("write int32 field and check with libprotobuf", "", SECTION("zero") { pw.add_int32(1, 0L); - msg.ParseFromArray(buffer.data(), buffer.size()); + REQUIRE(msg.ParseFromArray(buffer.data(), buffer.size())); REQUIRE(msg.i() == 0L); } @@ -22,7 +22,7 @@ TEMPLATE_TEST_CASE("write int32 field and check with libprotobuf", "", SECTION("positive") { pw.add_int32(1, 1L); - msg.ParseFromArray(buffer.data(), buffer.size()); + REQUIRE(msg.ParseFromArray(buffer.data(), buffer.size())); REQUIRE(msg.i() == 1L); } @@ -30,7 +30,7 @@ TEMPLATE_TEST_CASE("write int32 field and check with libprotobuf", "", SECTION("negative") { pw.add_int32(1, -1L); - msg.ParseFromArray(buffer.data(), buffer.size()); + REQUIRE(msg.ParseFromArray(buffer.data(), buffer.size())); REQUIRE(msg.i() == -1L); } @@ -38,7 +38,7 @@ TEMPLATE_TEST_CASE("write int32 field and check with libprotobuf", "", SECTION("max") { pw.add_int32(1, std::numeric_limits::max()); - msg.ParseFromArray(buffer.data(), buffer.size()); + REQUIRE(msg.ParseFromArray(buffer.data(), buffer.size())); REQUIRE(msg.i() == std::numeric_limits::max()); } @@ -46,7 +46,7 @@ TEMPLATE_TEST_CASE("write int32 field and check with libprotobuf", "", SECTION("min") { pw.add_int32(1, std::numeric_limits::min()); - msg.ParseFromArray(buffer.data(), buffer.size()); + REQUIRE(msg.ParseFromArray(buffer.data(), buffer.size())); REQUIRE(msg.i() == std::numeric_limits::min()); } diff --git a/test/t/message/writer_test_cases.cpp b/test/t/message/writer_test_cases.cpp index 97c845a00..d0e490e61 100644 --- a/test/t/message/writer_test_cases.cpp +++ b/test/t/message/writer_test_cases.cpp @@ -23,7 +23,7 @@ TEMPLATE_TEST_CASE("write message field and check with libprotobuf", "", } TestMessage::Test msg; - msg.ParseFromArray(buffer.data(), buffer.size()); + REQUIRE(msg.ParseFromArray(buffer.data(), buffer.size())); REQUIRE(msg.submessage().s() == "foobar"); } diff --git a/test/t/nested/writer_test_cases.cpp b/test/t/nested/writer_test_cases.cpp index 014634a5d..58ae0f1a4 100644 --- a/test/t/nested/writer_test_cases.cpp +++ b/test/t/nested/writer_test_cases.cpp @@ -36,7 +36,7 @@ TEMPLATE_TEST_CASE("write nested message fields and check with libprotobuf", "", pw.add_int32(2, 77); TestNested::Test msg; - msg.ParseFromArray(buffer.data(), buffer.size()); + REQUIRE(msg.ParseFromArray(buffer.data(), buffer.size())); REQUIRE(msg.i() == 77); REQUIRE(msg.sub().i() == 88); diff --git a/test/t/repeated/writer_test_cases.cpp b/test/t/repeated/writer_test_cases.cpp index 032a47850..3f723ef5c 100644 --- a/test/t/repeated/writer_test_cases.cpp +++ b/test/t/repeated/writer_test_cases.cpp @@ -14,7 +14,7 @@ TEMPLATE_TEST_CASE("write repeated fields and check with libprotobuf", "", SECTION("one") { pw.add_int32(1, 0L); - msg.ParseFromArray(buffer.data(), buffer.size()); + REQUIRE(msg.ParseFromArray(buffer.data(), buffer.size())); REQUIRE(msg.i().size() == 1); REQUIRE(msg.i(0) == 0L); @@ -27,7 +27,7 @@ TEMPLATE_TEST_CASE("write repeated fields and check with libprotobuf", "", pw.add_int32(1, std::numeric_limits::max()); pw.add_int32(1, std::numeric_limits::min()); - msg.ParseFromArray(buffer.data(), buffer.size()); + REQUIRE(msg.ParseFromArray(buffer.data(), buffer.size())); REQUIRE(msg.i().size() == 5); REQUIRE(msg.i(0) == 0L); diff --git a/test/t/repeated_packed_fixed32/writer_test_cases.cpp b/test/t/repeated_packed_fixed32/writer_test_cases.cpp index 63bb6ca98..894eaee90 100644 --- a/test/t/repeated_packed_fixed32/writer_test_cases.cpp +++ b/test/t/repeated_packed_fixed32/writer_test_cases.cpp @@ -23,7 +23,7 @@ TEMPLATE_TEST_CASE("write repeated packed fixed32 field and check with libprotob const std::array data = {{ 17UL }}; pw.add_packed_fixed32(1, std::begin(data), std::end(data)); - msg.ParseFromArray(buffer.data(), buffer.size()); + REQUIRE(msg.ParseFromArray(buffer.data(), buffer.size())); REQUIRE(msg.i().size() == 1); REQUIRE(msg.i(0) == 17UL); @@ -33,7 +33,7 @@ TEMPLATE_TEST_CASE("write repeated packed fixed32 field and check with libprotob const std::array data = {{ 17UL, 0UL, 1UL, std::numeric_limits::max() }}; pw.add_packed_fixed32(1, std::begin(data), std::end(data)); - msg.ParseFromArray(buffer.data(), buffer.size()); + REQUIRE(msg.ParseFromArray(buffer.data(), buffer.size())); REQUIRE(msg.i().size() == 4); REQUIRE(msg.i(0) == 17UL); @@ -67,7 +67,7 @@ TEMPLATE_TEST_CASE("write from different types of iterators and check with libpr pw.template add_packed_fixed(1, it, eod); } - msg.ParseFromArray(buffer.data(), buffer.size()); + REQUIRE(msg.ParseFromArray(buffer.data(), buffer.size())); REQUIRE(msg.i().size() == 5); REQUIRE(msg.i(0) == 1); diff --git a/test/t/string/writer_test_cases.cpp b/test/t/string/writer_test_cases.cpp index ff6f21a5d..bea97470c 100644 --- a/test/t/string/writer_test_cases.cpp +++ b/test/t/string/writer_test_cases.cpp @@ -14,7 +14,7 @@ TEMPLATE_TEST_CASE("write string field and check with libprotobuf", "", SECTION("empty") { pw.add_string(1, ""); - msg.ParseFromArray(buffer.data(), buffer.size()); + REQUIRE(msg.ParseFromArray(buffer.data(), buffer.size())); REQUIRE(msg.s().empty()); } @@ -22,7 +22,7 @@ TEMPLATE_TEST_CASE("write string field and check with libprotobuf", "", SECTION("one") { pw.add_string(1, "x"); - msg.ParseFromArray(buffer.data(), buffer.size()); + REQUIRE(msg.ParseFromArray(buffer.data(), buffer.size())); REQUIRE(msg.s() == "x"); } @@ -30,7 +30,7 @@ TEMPLATE_TEST_CASE("write string field and check with libprotobuf", "", SECTION("string") { pw.add_string(1, "foobar"); - msg.ParseFromArray(buffer.data(), buffer.size()); + REQUIRE(msg.ParseFromArray(buffer.data(), buffer.size())); REQUIRE(msg.s() == "foobar"); }