From f42b105f73e69e05ea69c55d838a79555929731e Mon Sep 17 00:00:00 2001 From: Gael Guennebaud Date: Tue, 24 Mar 2015 13:39:14 +0100 Subject: Add the possibility to make VERIFY* checks to output a warning instead of abording. --- test/main.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'test/main.h') diff --git a/test/main.h b/test/main.h index ecf0c6924..3591b57a1 100644 --- a/test/main.h +++ b/test/main.h @@ -95,6 +95,9 @@ namespace Eigen { static std::vector g_test_stack; + // level == 0 <=> abort if test fail + // level >= 1 <=> warning message to std::cerr if test fail + static int g_test_level = 0; static int g_repeat; static unsigned int g_seed; static bool g_has_set_repeat, g_has_set_seed; @@ -229,6 +232,8 @@ inline void verify_impl(bool condition, const char *testname, const char *file, { if (!condition) { + if(Eigen::g_test_level>0) + std::cerr << "WARNING: "; std::cerr << "Test " << testname << " failed in " << file << " (" << line << ")" << std::endl << " " << condition_as_string << std::endl; std::cerr << "Stack:\n"; @@ -236,7 +241,8 @@ inline void verify_impl(bool condition, const char *testname, const char *file, for(int i=test_stack_size-1; i>=0; --i) std::cerr << " - " << Eigen::g_test_stack[i] << "\n"; std::cerr << "\n"; - abort(); + if(Eigen::g_test_level==0) + abort(); } } -- cgit v1.2.3