set_target_properties(cephfstool PROPERTIES OUTPUT_NAME cephfs)
install(TARGETS cephfstool DESTINATION bin)
-set(compressor_srcs
- compressor/Compressor.cc
- compressor/AsyncCompressor.cc)
-add_library(compressor STATIC ${compressor_srcs})
-target_link_libraries(compressor common snappy)
+add_subdirectory(compressor)
add_executable(ceph-client-debug tools/ceph-client-debug.cc)
target_link_libraries(ceph-client-debug cephfs librados global common)
+
+set(compressor_srcs
+ Compressor.cc
+ AsyncCompressor.cc)
+add_library(compressor STATIC ${compressor_srcs})
+target_link_libraries(compressor common snappy ${CMAKE_DL_LIBS})
+
## compressor plugins
set(compressorlibdir ${LIBRARY_OUTPUT_PATH}/compressor)
# snappy
+# absolute path because $snappy_sources used outside of this directory
set(snappy_sources
- CompressionPluginSnappy.cc
+ ${CMAKE_SOURCE_DIR}/src/compressor/snappy/CompressionPluginSnappy.cc
$<TARGET_OBJECTS:compressor_objs>
)
add_subdirectory(cls_rgw)
add_subdirectory(cls_statelog)
add_subdirectory(cls_version)
+add_subdirectory(compressor)
# test_timers
add_executable(ceph_test_timers
ceph-monstore-tool
osdmaptool
rbd
- radosgw-admin)
+ radosgw-admin
+ ceph_example
+ ceph_snappy)
add_ceph_test(test-ceph-helpers.sh ${CMAKE_CURRENT_SOURCE_DIR}/test-ceph-helpers.sh)
add_ceph_test(erasure-decode-non-regression.sh ${CMAKE_SOURCE_DIR}/qa/workunits/erasure-code/encode-decode-non-regression.sh)
--- /dev/null
+add_library(ceph_example SHARED
+ compressor_plugin_example.cc
+ ${CMAKE_SOURCE_DIR}/src/compressor/Compressor.cc
+ )
+target_link_libraries(ceph_example crush pthread ${EXTRA_LIBS})
+
+# unittest_compression_plugin
+add_executable(unittest_compression_plugin EXCLUDE_FROM_ALL
+ test_compression_plugin.cc
+ ${CMAKE_SOURCE_DIR}/src/compressor/Compressor.cc
+ )
+add_ceph_unittest(unittest_compression_plugin ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_compression_plugin)
+target_link_libraries(unittest_compression_plugin
+ osd
+ common
+ global
+ dl
+ )
+
+# unittest_compression_snappy
+add_executable(unittest_compression_snappy EXCLUDE_FROM_ALL
+ test_compression_snappy.cc
+ ${snappy_sources}
+ )
+add_ceph_unittest(unittest_compression_snappy ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_compression_snappy)
+target_link_libraries(unittest_compression_snappy
+ osd
+ common
+ global
+ dl
+ snappy
+ )
+
+# unittest_compression_plugin_snappy
+add_executable(unittest_compression_plugin_snappy EXCLUDE_FROM_ALL
+ test_compression_plugin_snappy.cc
+ ${snappy_sources}
+ )
+add_ceph_unittest(unittest_compression_plugin_snappy ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_compression_plugin_snappy)
+target_link_libraries(unittest_compression_plugin_snappy
+ osd
+ common
+ global
+ compressor
+ dl
+ snappy
+ )
+
+# unittest_compression_zlib
+add_executable(unittest_compression_zlib EXCLUDE_FROM_ALL
+ test_compression_zlib.cc
+ ${CMAKE_SOURCE_DIR}/src/compressor/zlib/CompressionZlib.cc
+ )
+add_ceph_unittest(unittest_compression_zlib ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_compression_zlib)
+target_link_libraries(unittest_compression_zlib
+ z
+ osd
+ common
+ global
+ )
+
+# unittest_compression_plugin_zlib
+add_executable(unittest_compression_plugin_zlib EXCLUDE_FROM_ALL
+ test_compression_plugin_zlib.cc
+ ${zlib_sources}
+ )
+add_ceph_unittest(unittest_compression_plugin_zlib ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_compression_plugin_zlib)
+target_link_libraries(unittest_compression_plugin_zlib
+ osd
+ common
+ global
+ compressor
+ dl
+ z
+ )
+
#include <errno.h>
#include <signal.h>
#include <stdlib.h>
+#include <string.h>
#include <gtest/gtest.h>
#include "global/global_init.h"
#include "compressor/CompressionPlugin.h"
TEST(CompressionPlugin, all)
{
- string directory(".libs");
+ string directory = getenv("CEPH_LIB");
CompressorRef compressor;
PluginRegistry *reg = g_ceph_context->get_plugin_registry();
EXPECT_TRUE(reg);
global_init(NULL, args, CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_UTILITY, 0);
common_init_finish(g_ceph_context);
- int r = system("mkdir -p .libs/compressor");
+ string directory = getenv("CEPH_LIB");
+ string mkdir_compressor = "mkdir -p " + directory + "/compressor";
+ int r = system(mkdir_compressor.c_str());
(void)r;
- r = system("cp .libs/libceph_example.so* .libs/compressor/");
+
+ string cp_libceph_example = "cp " + directory + "/libceph_example.so* " + directory + "/compressor/";
+ r = system(cp_libceph_example.c_str());
(void)r;
- g_conf->set_val("plugin_dir", ".libs", false, false);
+
+ g_conf->set_val("plugin_dir", directory, false, false);
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
global_init(NULL, args, CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_UTILITY, 0);
common_init_finish(g_ceph_context);
- int r = system("mkdir -p .libs/compressor");
+ string directory = getenv("CEPH_LIB");
+ string mkdir_compressor = "mkdir -p " + directory + "/compressor";
+ int r = system(mkdir_compressor.c_str());
(void)r;
- r = system("cp .libs/libceph_snappy.so* .libs/compressor/");
+
+ string cp_libceph_snappy = "cp " + directory + "/libceph_snappy.so* " + directory + "/compressor/";
+ r = system(cp_libceph_snappy.c_str());
(void)r;
- g_conf->set_val("plugin_dir", ".libs", false, false);
+ g_conf->set_val("plugin_dir", directory, false, false);
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
global_init(NULL, args, CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_UTILITY, 0);
common_init_finish(g_ceph_context);
- g_conf->set_val("compression_dir", ".libs", false, false);
+ string directory = getenv("CEPH_LIB");
+ g_conf->set_val("plugin_dir", directory, false, false);
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
TEST(CompressionZlib, compress_decompress)
{
CompressionZlib sp;
- EXPECT_EQ(sp.get_method_name(), "zlib");
+ EXPECT_STREQ(sp.get_method_name(), "zlib");
const char* test = "This is test text";
int len = strlen(test);
bufferlist in, out;
TEST(CompressionZlib, compress_decompress_chunk)
{
CompressionZlib sp;
- EXPECT_EQ(sp.get_method_name(), "zlib");
+ EXPECT_STREQ(sp.get_method_name(), "zlib");
const char* test = "This is test text";
buffer::ptr test2 ("1234567890", 10);
int len = strlen(test);