Coda Distributed File System
Macros
memory.h File Reference
#include <valgrind/memcheck.h>
#include "gtest/gtest.h"
Include dependency graph for memory.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define PRINT_FAILURE_MESSAGE
 
#define TEST_FOR_MEMORY_LEAKS_SETUP
 
#define TEST_FOR_MEMORY_LEAKS_CHECK
 
#define RVM_LAUNCH_IN_INSTANCE(function)
 
#define RVM_TEST(test_case_name, test)
 
#define RVM_TEST_F(test_case_name, test)
 

Macro Definition Documentation

◆ PRINT_FAILURE_MESSAGE

#define 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);