c++: references cannot be NULL
[awesomized/libmemcached] / libtest / comparison.hpp
index aecf05f0c694632224e2adb4f9e8fa1bdb414b77..9a7d81c0413a5abb8c02b9dcad7d8cd7d65ec28f 100644 (file)
 namespace libtest {
 
 LIBTEST_API
-bool gdb_is_caller(void);
+bool jenkins_is_caller(void);
 
 LIBTEST_API
-bool valgrind_is_caller(void);
+bool gdb_is_caller(void);
 
 LIBTEST_API
 bool _in_valgrind(const char *file, int line, const char *func);
 
-template <class T_comparable, class T_hint>
-bool _compare_truth_hint(const char *file, int line, const char *func, T_comparable __expected, const char *assertation_label,  T_hint __hint)
+LIBTEST_API
+bool helgrind_is_caller(void);
+
+template <class T_comparable>
+bool _compare_truth(const char *file, int line, const char *func, T_comparable __expected, const char *assertation_label)
 {
   if (__expected == false)
   {
-    libtest::stream::make_cerr(file, line, func) << "Assertation  \"" << assertation_label << "\" failed, hint: " << __hint;
+    libtest::stream::make_cerr(file, line, func) << "Assertation  \"" << assertation_label << "\"";
     return false;
   }
 
@@ -88,11 +91,11 @@ bool _compare(const char *file, int line, const char *func, const T1_comparable&
 }
 
 template <class T1_comparable, class T2_comparable>
-bool _compare_strcmp(const char *file, int line, const char *func, const T1_comparable& __expected, const T2_comparable& __actual)
+bool _compare_strcmp(const char *file, int line, const char *func, const T1_comparable *__expected, const T2_comparable *__actual)
 {
   if (__expected == NULL)
   {
-    fatal_message("Expected value was NULL, programmer error");
+    FATAL("Expected value was NULL, programmer error");
   }
 
   if (__actual == NULL)
@@ -122,26 +125,14 @@ bool _compare_zero(const char *file, int line, const char *func, T_comparable __
   return true;
 }
 
-template <class T_comparable>
-bool _truth(const char *file, int line, const char *func, T_comparable __truth)
-{
-  if (bool(__truth))
-  {
-    libtest::stream::make_cerr(file, line, func) << "Assertion failed for " << func << "() with \"" << __truth << "\"";
-    return false;
-  }
-
-  return true;
-}
-
-template <class T1_comparable, class T2_comparable, class T_hint>
-bool _compare_hint(const char *file, int line, const char *func, T1_comparable __expected, T2_comparable __actual, T_hint __hint, bool io_error= true)
+template <class T1_comparable, class T2_comparable>
+bool _ne_compare(const char *file, int line, const char *func, T1_comparable __expected, T2_comparable __actual, bool io_error= true)
 {
-  if (__expected != __actual)
+  if (__expected == __actual)
   {
     if (io_error)
     {
-      libtest::stream::make_cerr(file, line, func) << "Expected \"" << __expected << "\" got \"" << __actual << "\"" << " Additionally: \"" << __hint << "\"";
+      libtest::stream::make_cerr(file, line, func) << "Expected \"" << __expected << "\" got \"" << __actual << "\"";
     }
 
     return false;
@@ -150,20 +141,20 @@ bool _compare_hint(const char *file, int line, const char *func, T1_comparable _
   return true;
 }
 
-template <class T1_comparable, class T2_comparable, class T_hint>
-bool _ne_compare_hint(const char *file, int line, const char *func, T1_comparable __expected, T2_comparable __actual, T_hint __hint, bool io_error= true)
+template <class T_comparable, class T_expression_string>
+bool _assert_truth(const char *file, int line, const char *func, T_comparable __truth, T_expression_string __expression, const char* __explain= NULL)
 {
-  if (__expected == __actual)
+  if (__truth)
   {
-    if (io_error)
-    {
-      libtest::stream::make_cerr(file, line, func) << "Expected \"" << __expected << "\" got \"" << __actual << "\"" << " Additionally: \"" << __hint << "\"";
-    }
+    return true;
+  }
 
-    return false;
+  if (__explain)
+  {
+    libtest::stream::make_cerr(file, line, func) << "Assertion \"" << __expression << "\" warning:" << __explain;
   }
 
-  return true;
+  return false;
 }
 
 } // namespace libtest