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;
}
{
if (__expected == NULL)
{
- fatal_message("Expected value was NULL, programmer error");
+ FATAL("Expected value was NULL, programmer error");
}
if (__actual == NULL)
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;
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