From 940dc7ea1ff424372cac84c869d597661db191a8 Mon Sep 17 00:00:00 2001 From: HÃ¥vard Pettersen Date: Tue, 20 Apr 2021 07:35:59 +0000 Subject: print diff of mismatching tensors also stop using vespalib testkit --- vespalib/src/tests/require/require_test.cpp | 15 +++++++++++++++ vespalib/src/vespa/vespalib/util/require.h | 7 +++++++ 2 files changed, 22 insertions(+) (limited to 'vespalib') diff --git a/vespalib/src/tests/require/require_test.cpp b/vespalib/src/tests/require/require_test.cpp index 65f4d049843..b31cbd33723 100644 --- a/vespalib/src/tests/require/require_test.cpp +++ b/vespalib/src/tests/require/require_test.cpp @@ -156,4 +156,19 @@ TEST(RequireTest, uncomment_to_manually_check_uncompilable_code) { //----------------------------------------------------------------------------- +TEST(RequireTest, explicit_require_failure) { + EXPECT_THROW( + { + try { REQUIRE_FAILED("this is my message"); } + catch(const E &e) { + fprintf(stderr, "e.getMessage() is >>>%s<<<\n", e.getMessage().c_str()); + fprintf(stderr, "e.getLocation() is >>>%s<<<\n", e.getLocation().c_str()); + fprintf(stderr, "e.what() is >>>%s<<<\n", e.what()); + throw; + } + }, E); +} + +//----------------------------------------------------------------------------- + GTEST_MAIN_RUN_ALL_TESTS() diff --git a/vespalib/src/vespa/vespalib/util/require.h b/vespalib/src/vespa/vespalib/util/require.h index a4283520314..1d2069aa226 100644 --- a/vespalib/src/vespa/vespalib/util/require.h +++ b/vespalib/src/vespa/vespalib/util/require.h @@ -131,4 +131,11 @@ void handle_require_eq_failure [[noreturn]] (const A& a, const B& b, const char VESPA_STRINGIZE(a) " == " VESPA_STRINGIZE(b), \ __FILE__, __LINE__) +/** + * Signal the failure of some requirement with a message. + * Can be used instead of abort() + **/ +#define REQUIRE_FAILED(msg) \ + vespalib::handle_require_failure(msg, __FILE__, __LINE__) + } // namespace -- cgit v1.2.3