21 #define BOOST_TEST_MODULE libjmmcg_tests
22 #include <boost/test/included/unit_test.hpp>
24 #include "core/syscall_wrapper.hpp"
30 using namespace libjmmcg;
42 extern "C" sighandler_t
52 BOOST_AUTO_TEST_SUITE(syscall_wrapper_tests)
54 BOOST_AUTO_TEST_CASE(malloc_free_default_failure_traits) {
56 BOOST_CHECK_NO_THROW((is=
JMMCG_SYSCALL_WRAPPER(
"Error message.", _T(LIBJMMCG_VERSION_NUMBER), ::malloc, std::size_t(
sizeof(
int)))));
57 BOOST_CHECK_NE(is,
nullptr);
58 BOOST_CHECK_NO_THROW((
JMMCG_SYSCALL_WRAPPER(
"Error message.", _T(LIBJMMCG_VERSION_NUMBER), ::free, is)));
61 BOOST_AUTO_TEST_CASE(int_return_function_succeeds_default_failure_traits) {
63 BOOST_CHECK_NO_THROW((ret=
JMMCG_SYSCALL_WRAPPER(
"Error message.", _T(LIBJMMCG_VERSION_NUMBER), test_fn_int_return, 1, 2L)));
64 BOOST_CHECK_EQUAL(ret, 3);
67 BOOST_AUTO_TEST_CASE(int_return_function_fails_default_failure_traits) {
70 BOOST_CHECK_EQUAL(ret, 0);
73 BOOST_AUTO_TEST_CASE(void_ptr_return_function_succeeds_default_failure_traits) {
75 BOOST_CHECK_NO_THROW((ret=
JMMCG_SYSCALL_WRAPPER(
"Error message.", _T(LIBJMMCG_VERSION_NUMBER), test_fn_void_ptr_return,
reinterpret_cast<
void*>(0x1))));
76 BOOST_CHECK_EQUAL(ret,
reinterpret_cast<
void*>(0x1));
79 BOOST_AUTO_TEST_CASE(void_ptr_return_function_fails_default_failure_traits) {
82 BOOST_CHECK_EQUAL(ret,
nullptr);
85 BOOST_AUTO_TEST_CASE(void_ptr_return_function_succeeds_custom_failure_traits) {
88 BOOST_CHECK_EQUAL(ret,
reinterpret_cast<
void*>(0x1));
91 BOOST_AUTO_TEST_CASE(void_ptr_return_function_fails_custom_failure_traits) {
94 BOOST_CHECK_EQUAL(ret,
nullptr);
97 BOOST_AUTO_TEST_CASE(signal_succeeds) {
98 sighandler_t ret=
nullptr;
99 BOOST_CHECK_NO_THROW((ret=
JMMCG_SYSCALL_WRAPPER(
"Error message.", _T(LIBJMMCG_VERSION_NUMBER), test_fn_sighandler_t,
nullptr)));
100 BOOST_CHECK_EQUAL(ret,
nullptr);
103 BOOST_AUTO_TEST_CASE(signal_fails) {
104 sighandler_t ret=
nullptr;
106 BOOST_CHECK_EQUAL(ret,
nullptr);
132 BOOST_AUTO_TEST_SUITE_END()