#include <valgrind/memcheck.h>
#include "gtest/gtest.h"
Go to the source code of this file.
◆ PRINT_FAILURE_MESSAGE
Value: const ::testing::TestInfo *const test_info = \
::testing::UnitTest::GetInstance()->current_test_info(); \
const ::testing::TestResult *res = test_info->result(); \
for (int i = 0; i < res->total_part_count(); i++) { \
const testing::TestPartResult part_res = res->GetTestPartResult(i); \
std::cout << part_res.file_name() << ":" << part_res.line_number() \
<< " Failure" << std::endl; \
std::cout << part_res.summary() << std::endl; \
}
◆ RVM_LAUNCH_IN_INSTANCE
#define RVM_LAUNCH_IN_INSTANCE |
( |
|
function | ) |
|
Value: ASSERT_EXIT(({ \
TEST_FOR_MEMORY_LEAKS_SETUP \
function(); \
VALGRIND_DO_LEAK_CHECK; \
VALGRIND_COUNT_LEAKS(leaked, dubious, reachable, \
suppressed); \
TEST_FOR_MEMORY_LEAKS_CHECK \
::testing::Test::TearDownTestCase(); \
if (::testing::Test::HasFailure()) { \
PRINT_FAILURE_MESSAGE \
} \
exit(::testing::Test::HasFailure() ? 1 : 0); \
}), \
::testing::ExitedWithCode(0), ".*");
◆ RVM_TEST
#define RVM_TEST |
( |
|
test_case_name, |
|
|
|
test |
|
) |
| |
Value: static void test_case_name##_##test##_RvmTest(); \
TEST(test_case_name, test) \
{ \
RVM_LAUNCH_IN_INSTANCE(test_case_name##_##test##_RvmTest) \
} \
static void test_case_name##_##test##_RvmTest()
◆ RVM_TEST_F
#define RVM_TEST_F |
( |
|
test_case_name, |
|
|
|
test |
|
) |
| |
Value: static void test_case_name##_##test##_RvmTest(); \
TEST_F(test_case_name, test) \
{ \
RVM_LAUNCH_IN_INSTANCE(test_case_name##_##test##_RvmTest) \
} \
static void test_case_name##_##test##_RvmTest()
◆ TEST_FOR_MEMORY_LEAKS_CHECK
#define TEST_FOR_MEMORY_LEAKS_CHECK |
Value: VALGRIND_DO_LEAK_CHECK; \
VALGRIND_COUNT_LEAKS(leaked, dubious, reachable, suppressed); \
EXPECT_EQ(base_definite, leaked) << "Memory Leak found"; \
EXPECT_EQ(base_dubious, dubious) << "Memory Leak found"; \
EXPECT_EQ(base_reachable, reachable) << "Memory Leak found"; \
EXPECT_EQ(base_suppressed, suppressed) << "Memory Leak found";
◆ TEST_FOR_MEMORY_LEAKS_SETUP
#define TEST_FOR_MEMORY_LEAKS_SETUP |
Value: unsigned long base_definite, base_dubious, base_reachable, \
base_suppressed; \
unsigned long leaked, dubious, reachable, suppressed; \
VALGRIND_DO_LEAK_CHECK; \
VALGRIND_COUNT_LEAKS(base_definite, base_dubious, base_reachable, \
base_suppressed);