]> git.tdb.fi Git - libs/test.git/blobdiff - source/test.cpp
Better output for exception tests
[libs/test.git] / source / test.cpp
index 0c2081bf0303c68f4306e5ccce65dfdfafa50bb2..b4693b294ea57cfaa54194ebf33e79fd0335813a 100644 (file)
@@ -88,14 +88,26 @@ void Test::run(bool verbose)
                }
                catch(const exception &e)
                {
-                       if(exc_check && exc_check->check(e))
+                       if(exc_check)
                        {
-                               pass_test();
-                               debug(Debug::demangle(typeid(e).name()));
-                               debug(e.what());
+                               if(exc_check->check(e))
+                               {
+                                       pass_test();
+                                       debug(Debug::demangle(typeid(e).name()));
+                                       debug(e.what());
+                               }
+                               else
+                               {
+                                       fail_test("Exception of incorrect type thrown");
+                                       debug(format("%s (expected %s)", Debug::demangle(typeid(e).name()), Debug::demangle(exc_check->get_type_info().name())));
+                                       debug(e.what());
+                               }
                        }
                        else
+                       {
+                               debug(Debug::demangle(typeid(e).name()));
                                fail_test(e.what());
+                       }
                }
                catch(...)
                {