summaryrefslogtreecommitdiffstats
path: root/vespalib
diff options
context:
space:
mode:
authorHåvard Pettersen <havardpe@oath.com>2021-04-20 07:35:59 +0000
committerHåvard Pettersen <havardpe@oath.com>2021-04-20 12:50:51 +0000
commit940dc7ea1ff424372cac84c869d597661db191a8 (patch)
tree9164584c9387387809a1bc5ec8bf55870e147fd3 /vespalib
parent24a32dbdd32503c08cb1d75dfb180b4402405160 (diff)
print diff of mismatching tensors
also stop using vespalib testkit
Diffstat (limited to 'vespalib')
-rw-r--r--vespalib/src/tests/require/require_test.cpp15
-rw-r--r--vespalib/src/vespa/vespalib/util/require.h7
2 files changed, 22 insertions, 0 deletions
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