Import/Merge of libtest latest.
[m6w6/libmemcached] / libtest / comparison.hpp
index aecf05f0c694632224e2adb4f9e8fa1bdb414b77..32dc22fa1ab77fa5546be224f29658fb4f68aade 100644 (file)
@@ -59,12 +59,12 @@ bool valgrind_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)
+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;
   }
 
@@ -122,26 +122,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 +138,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