Fix tests
This commit is contained in:
parent
21d6076f5c
commit
cad2590bc7
3 changed files with 11 additions and 7 deletions
|
|
@ -81,20 +81,20 @@ test_case(util_heterogeneous__container_get)
|
|||
auto c0 = c.insert('0');
|
||||
expect_equal(c.get<char>(c0), '0');
|
||||
expect_equal(c.get(c0).index(), 0);
|
||||
expect_equal(std::get<0>(c.get(c0)), '0');
|
||||
expect_equal(std::get<char>(c.get(c0)), '0');
|
||||
expect_equal_deref(std::get<0>(c.get(c0)), '0');
|
||||
expect_equal_deref(std::get<char *>(c.get(c0)), '0');
|
||||
|
||||
auto c1 = c.insert('1');
|
||||
expect_equal(c.get<char>(c1), '1');
|
||||
expect_equal(c.get(c1).index(), 0);
|
||||
expect_equal(std::get<0>(c.get(c1)), '1');
|
||||
expect_equal(std::get<char>(c.get(c1)), '1');
|
||||
expect_equal_deref(std::get<0>(c.get(c1)), '1');
|
||||
expect_equal_deref(std::get<char *>(c.get(c1)), '1');
|
||||
|
||||
auto f0 = c.insert(3.14f);
|
||||
expect_equal(c.get<float>(f0), 3.14f);
|
||||
expect_equal(c.get(f0).index(), 2);
|
||||
expect_equal(std::get<2>(c.get(f0)), 3.14f);
|
||||
expect_equal(std::get<float>(c.get(f0)), 3.14f);
|
||||
expect_equal_deref(std::get<2>(c.get(f0)), 3.14f);
|
||||
expect_equal_deref(std::get<float *>(c.get(f0)), 3.14f);
|
||||
|
||||
expect_throw(c.get<float>(c0), std::bad_any_cast);
|
||||
expect_throw(c.get<float>(c1), std::bad_any_cast);
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
option(PSEMEK_BUILD_TESTS "Build tests" OFF)
|
||||
|
||||
cmake_policy(SET CMP0079 NEW)
|
||||
|
||||
if(PSEMEK_BUILD_TESTS)
|
||||
|
||||
add_executable(psemek-run-tests source/main.cpp include/psemek/test/test.hpp)
|
||||
|
|
@ -7,7 +9,7 @@ if(PSEMEK_BUILD_TESTS)
|
|||
target_include_directories(psemek-run-tests PUBLIC "${PSEMEK_TESTS_INCLUDE_DIR}")
|
||||
|
||||
function(psemek_glob_tests lib dir)
|
||||
file(GLOB_RECURSE _PSEMEK_ADD_TESTS_SOURCES RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "${dir}/*.cpp")
|
||||
file(GLOB_RECURSE _PSEMEK_ADD_TESTS_SOURCES "${dir}/*.cpp")
|
||||
list(LENGTH _PSEMEK_ADD_TESTS_SOURCES _PSEMEK_ADD_TESTS_SOURCES_LENGTH)
|
||||
if(_PSEMEK_ADD_TESTS_SOURCES_LENGTH EQUAL 0)
|
||||
message(WARNING "No tests found in ${dir}")
|
||||
|
|
|
|||
|
|
@ -90,6 +90,8 @@ void name ## _test_case ([[maybe_unused]] ::psemek::test::context & _ctx)
|
|||
|
||||
#define expect_equal_ptr(expr1, expr2) if ((expr1) != (expr2)) psemek_test_fail(#expr1, " (", (void*)(expr1), ") != ", #expr2, " (", (void*)(expr2), ")")
|
||||
|
||||
#define expect_equal_deref(expr_ptr, expr_val) if (!(expr_ptr)) psemek_test_fail(#expr_ptr, " == nullptr"); else expect_equal(*expr_ptr, expr_val)
|
||||
|
||||
#define expect_different(expr1, expr2) if ((expr1) == (expr2)) psemek_test_fail(#expr1, " (", (expr1), ") == ", #expr2, " (", (expr2), ")")
|
||||
|
||||
#define expect_different_ptr(expr1, expr2) if ((expr1) == (expr2)) psemek_test_fail(#expr1, " (", (void*)(expr1), ") == ", #expr2, " (", (void*)(expr2), ")")
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue