35 #include <gtest/gtest.h>    42 #include <boost/thread.hpp>    44 #if __unix__ && !APPLE    48 using namespace rosrt;
    61 TEST(MallocWrappers, statsMainThread)
    68   for (uint32_t i = 1; i <= 1000; ++i)
    76     ASSERT_EQ(info.
frees, i);
    88   for (uint32_t i = 1; i <= 1000; ++i)
   111 TEST(MallocWrappers, statsNewThread)
   114   boost::thread t(boost::bind(
statsThread, boost::ref(failed)));
   117   ASSERT_FALSE(failed.load());
   121 #if __unix__ && !APPLE   122 TEST(MallocWrappers, sharedObjectDynamicallyOpened)
   124   void* handle = dlopen(
"libtest_malloc_wrappers_so.so", RTLD_LAZY|RTLD_GLOBAL);
   126   void*(*alloc_func)(size_t) = (
void*(*)(size_t))dlsym(handle, 
"myTestMalloc");
   128   void(*free_func)(
void*) = (
void(*)(
void*))dlsym(handle, 
"myTestFree");
   129   ASSERT_TRUE(free_func);
   132   void* mem = alloc_func(500);
   137   ASSERT_EQ(info.
frees, 1U);
   151 TEST(MallocWrappersDeathTest, breakOnAllocFree)
   159 int main(
int argc, 
char** argv)
   161   testing::InitGoogleTest(&argc, argv);
   162   ::testing::FLAGS_gtest_death_test_style = 
"threadsafe";
   163   return RUN_ALL_TESTS();
 void setThreadBreakOnAllocOrFree(bool b)
AllocInfo getThreadAllocInfo()
void * malloc(size_t size)
void allocateThread(const atomic< bool > &done)
void resetThreadAllocInfo()
void statsThread(atomic< bool > &failed)
TEST(MallocWrappers, statsMainThread)
#define ROS_ERROR_STREAM(args)
int main(int argc, char **argv)