Skip to content

Commit c45e701

Browse files
jameseh96paolococchi
authored andcommitted
MB-42358: Pass path to memory-tracking test plugin on command-line
Using an absolute path, passed on the comand-line bypasses any issues with RPATH/RUNPATH differences. Change-Id: I961548671f280e7fdf6d025c5a82ab7ae9661c3e Reviewed-on: http://review.couchbase.org/c/kv_engine/+/139385 Tested-by: Build Bot <[email protected]> Reviewed-by: Paolo Cocchi <[email protected]> Well-Formed: Build Bot <[email protected]>
1 parent 665e5e3 commit c45e701

File tree

2 files changed

+14
-13
lines changed

2 files changed

+14
-13
lines changed
Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,13 @@
11
IF (NOT MEMORY_ALLOCATOR STREQUAL "system")
2-
# Need to ensure that the directory containing
3-
# memcached_memory_tracking_test is added to the RPATH so we can
4-
# successfully dlopen() the plugin.
5-
LINK_DIRECTORIES(${Memcached_BINARY_DIR})
6-
72
ADD_EXECUTABLE(memcached_memory_tracking_test
83
$<TARGET_OBJECTS:memory_tracking>
94
memory_tracking_test.cc)
105
TARGET_LINK_LIBRARIES(memcached_memory_tracking_test memcached_logger platform gtest ${MALLOC_LIBRARIES})
11-
ADD_TEST(NAME memcached-memory-tracking COMMAND memcached_memory_tracking_test)
6+
ADD_TEST(NAME memcached-memory-tracking
7+
COMMAND memcached_memory_tracking_test $<TARGET_FILE:memcached_memory_tracking_plugin>)
8+
ADD_DEPENDENCIES(memcached_memory_tracking_test memcached_memory_tracking_plugin)
129

1310
ADD_LIBRARY(memcached_memory_tracking_plugin MODULE
1411
memory_tracking_plugin.cc)
1512
TARGET_LINK_LIBRARIES(memcached_memory_tracking_plugin platform)
16-
SET_TARGET_PROPERTIES(memcached_memory_tracking_plugin PROPERTIES PREFIX "")
17-
IF(APPLE)
18-
SET_TARGET_PROPERTIES(memcached_memory_tracking_plugin PROPERTIES
19-
SUFFIX ".dylib")
20-
ENDIF(APPLE)
2113
ENDIF (NOT MEMORY_ALLOCATOR STREQUAL "system")

tests/memory_tracking_test/memory_tracking_test.cc

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@
3434
// via DCE.
3535
char* p;
3636

37+
/// Path to plugin to be loaded via dlopen.
38+
const char* pluginPath = nullptr;
39+
3740
class MemoryTrackerTest : public ::testing::Test {
3841
public:
3942
// callback function for when memory is allocated.
@@ -131,8 +134,7 @@ void MemoryTrackerTest::AccountingTestThread(void* arg) {
131134
// Test memory allocations performed from another shared library loaded
132135
// at runtime.
133136
char* errmsg = nullptr;
134-
cb_dlhandle_t plugin = cb_dlopen("memcached_memory_tracking_plugin",
135-
&errmsg);
137+
cb_dlhandle_t plugin = cb_dlopen(pluginPath, &errmsg);
136138
EXPECT_NE(plugin, nullptr);
137139

138140
// dlopen()ing a plugin can allocate memory. Reset alloc_size.
@@ -219,6 +221,13 @@ TEST_F(MemoryTrackerTest, mallocUsableSize) {
219221
int main(int argc, char** argv) {
220222
::testing::InitGoogleTest(&argc, argv);
221223

224+
if (argc != 2) {
225+
std::cerr << "Usage: <memory_tracking_test> "
226+
"<path_to_memory_tracking_plugin>\n";
227+
return 1;
228+
}
229+
pluginPath = argv[1];
230+
222231
AllocHooks::initialize();
223232

224233
return RUN_ALL_TESTS();

0 commit comments

Comments
 (0)