aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/main.h
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2015-03-24 13:39:14 +0100
committerGravatar Gael Guennebaud <g.gael@free.fr>2015-03-24 13:39:14 +0100
commitf42b105f73e69e05ea69c55d838a79555929731e (patch)
tree83596aa84c52bc217fa37bb803418ce641202c2e /test/main.h
parentd27968eb7ef3d2c7f9db17184850cf2071403ced (diff)
Add the possibility to make VERIFY* checks to output a warning instead of abording.
Diffstat (limited to 'test/main.h')
-rw-r--r--test/main.h8
1 files changed, 7 insertions, 1 deletions
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<std::string> 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();
}
}