From fd83de802d05a227cc00489f66ea70fccb4dda05 Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Fri, 20 Nov 2020 08:39:04 +0100 Subject: Make unit-test assertion function public static on the uUnit class, so they can be called from outside the scope of the test-classes. --- uunit.h | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/uunit.h b/uunit.h index f11fa1c..4532ef8 100644 --- a/uunit.h +++ b/uunit.h @@ -168,18 +168,8 @@ public: static std::function status_cb; -protected: - template - void registerTest(O* obj, const F& fn, const char* name, const char* file) - { - tests.push_back({std::bind(fn, obj), name, file}); - } - #define uUNIT_TEST(func) \ - registerTest(this, &func, #func, __FILE__) - #define uTEST(...) uUNIT_TEST(__VA_ARGS__) - - void u_assert(bool value, const char* expr, - const char* file, std::size_t line) + static void u_assert(bool value, const char* expr, + const char* file, std::size_t line) { if(!value) { @@ -191,11 +181,11 @@ protected: } //! Convenience macro to pass along filename and linenumber #define uUNIT_ASSERT(value) \ - u_assert(value, #value, __FILE__, __LINE__) + uUnit::u_assert(value, #value, __FILE__, __LINE__) #define uASSERT(...) uUNIT_ASSERT(__VA_ARGS__) - void assert_equal(double expected, double value, - const char* file, std::size_t line) + static void assert_equal(double expected, double value, + const char* file, std::size_t line) { if(std::fabs(expected - value) > 0.0000001) { @@ -208,8 +198,8 @@ protected: } template - void assert_equal(const T& expected, const U& value, - const char* file, std::size_t line) + static void assert_equal(const T& expected, const U& value, + const char* file, std::size_t line) { if(expected != value) { @@ -222,12 +212,12 @@ protected: } //! Convenience macro to pass along filename and linenumber #define uUNIT_ASSERT_EQUAL(expected, value) \ - assert_equal(expected, value, __FILE__, __LINE__) + uUnit::assert_equal(expected, value, __FILE__, __LINE__) #define uASSERT_EQUAL(...) uUNIT_ASSERT_EQUAL(__VA_ARGS__) template - void assert_throws(const char* expected, std::function expr, - const char* file, std::size_t line) + static void assert_throws(const char* expected, std::function expr, + const char* file, std::size_t line) { try { @@ -252,9 +242,19 @@ protected: } } #define uUNIT_ASSERT_THROWS(expected, expr) \ - assert_throws(#expected, [&](){ expr; }, __FILE__, __LINE__) + uUnit::assert_throws(#expected, [&](){expr;}, __FILE__, __LINE__) #define uASSERT_THROWS(...) uUNIT_ASSERT_THROWS(__VA_ARGS__) +protected: + template + void registerTest(O* obj, const F& fn, const char* name, const char* file) + { + tests.push_back({std::bind(fn, obj), name, file}); + } + #define uUNIT_TEST(func) \ + registerTest(this, &func, #func, __FILE__) + #define uTEST(...) uUNIT_TEST(__VA_ARGS__) + private: static std::string sanitize(const std::string& input) { -- cgit v1.2.3