set(UNITTEST_LIBS gmock_main gmock gtest ${PTHREAD_LIBS} ${CMAKE_DL_LIBS})
set(UNITTEST_CXX_FLAGS "-I${CMAKE_SOURCE_DIR}/src/gmock/include -I${CMAKE_BINARY_DIR}/src/gmock/include -I${CMAKE_SOURCE_DIR}/src/gmock/gtest/include -I${CMAKE_BINARY_DIR}/src/gmock/gtest/include -fno-strict-aliasing")
+add_subdirectory(bench)
add_subdirectory(cls_hello)
add_subdirectory(cls_lock)
add_subdirectory(cls_log)
add_subdirectory(cls_rgw)
add_subdirectory(cls_statelog)
add_subdirectory(cls_version)
+add_subdirectory(common)
add_subdirectory(compressor)
+add_subdirectory(crush)
+add_subdirectory(encoding)
+add_subdirectory(erasure-code)
add_subdirectory(filestore)
+add_subdirectory(fs)
add_subdirectory(journal)
add_subdirectory(libcephfs)
+add_subdirectory(librados)
add_subdirectory(librados_test_stub)
+add_subdirectory(libradosstriper)
add_subdirectory(librbd)
add_subdirectory(messenger)
+add_subdirectory(mds)
+add_subdirectory(mon)
add_subdirectory(msgr)
add_subdirectory(ObjectMap)
+add_subdirectory(objectstore)
+add_subdirectory(os)
+add_subdirectory(osd)
add_subdirectory(osdc)
+add_subdirectory(pybind)
add_subdirectory(rgw)
add_subdirectory(system)
## Benchmarks
-add_subdirectory(bench)
# ceph_omapbench
set(omapbench_srcs
add_test(NAME run-tox-ceph-detect-init COMMAND bash ${CMAKE_SOURCE_DIR}/src/ceph-detect-init/run-tox.sh WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src)
add_dependencies(check run-tox-ceph-disk)
-add_subdirectory(common)
-add_subdirectory(crush)
-add_subdirectory(encoding)
-
-# erasure-code directory
-add_ceph_test(test-erasure-code.sh ${CMAKE_SOURCE_DIR}/src/test/erasure-code/test-erasure-code.sh)
-add_ceph_test(test-erasure-eio.sh ${CMAKE_SOURCE_DIR}/src/test/erasure-code/test-erasure-eio.sh)
-
-add_subdirectory(fs)
-add_subdirectory(libradosstriper)
-add_subdirectory(librados)
-add_subdirectory(mds)
-add_subdirectory(mon)
-add_subdirectory(objectstore)
-add_subdirectory(os)
-add_subdirectory(osd)
-add_subdirectory(pybind)
-
# unittest_admin_socket
add_executable(unittest_admin_socket EXCLUDE_FROM_ALL
admin_socket.cc
add_executable(unittest_pageset EXCLUDE_FROM_ALL test_pageset.cc)
add_ceph_unittest(unittest_pageset ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_pageset)
-add_subdirectory(erasure-code EXCLUDE_FROM_ALL)
-
#make check ends here
-# make check tests for erasure-code directory
+
+add_ceph_test(test-erasure-code.sh ${CMAKE_CURRENT_SOURCE_DIR}/test-erasure-code.sh)
+add_ceph_test(test-erasure-eio.sh ${CMAKE_CURRENT_SOURCE_DIR}/test-erasure-eio.sh)
add_executable(ceph_erasure_code_benchmark
${CMAKE_SOURCE_DIR}/src/erasure-code/ErasureCode.cc
${CMAKE_SOURCE_DIR}/src/erasure-code/ErasureCode.cc
TestErasureCodePlugin.cc
)
+add_ceph_unittest(unittest_erasure_code_plugin ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_erasure_code_plugin)
+target_link_libraries(unittest_erasure_code_plugin
+ global
+ osd
+ dl
+ ec_example
+ common
+ )
add_dependencies(unittest_erasure_code_plugin
ec_example
ec_missing_entry_point
ec_hangs
ec_fail_to_initialize
ec_fail_to_register)
-add_test(NAME unittest_erasure_code_plugin COMMAND unittest_erasure_code_plugin WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src)
-add_dependencies(check unittest_erasure_code_plugin)
-target_link_libraries(unittest_erasure_code_plugin
- global
- osd
- dl
- ec_example
- common
- ${CMAKE_DL_LIBS}
- ${UNITTEST_LIBS})
-set_target_properties(unittest_erasure_code_plugin PROPERTIES COMPILE_FLAGS
- "${EC_LIBS_PATH_FLAG} ${UNITTEST_CXX_FLAGS}")
# unittest_erasure_code
add_executable(unittest_erasure_code EXCLUDE_FROM_ALL
${CMAKE_SOURCE_DIR}/src/erasure-code/ErasureCode.cc
TestErasureCode.cc
)
-add_test(unittest_erasure_code unittest_erasure_code)
-add_dependencies(check unittest_erasure_code)
+add_ceph_unittest(unittest_erasure_code ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_erasure_code)
target_link_libraries(unittest_erasure_code
global
osd
common
- ${CMAKE_DL_LIBS}
- ${UNITTEST_LIBS})
-set_target_properties(unittest_erasure_code PROPERTIES COMPILE_FLAGS
- ${UNITTEST_CXX_FLAGS})
+ )
add_library(ec_test_jerasure_neon SHARED TestJerasurePluginNEON.cc)
add_dependencies(ec_test_jerasure_neon ${CMAKE_SOURCE_DIR}/src/ceph_ver.h)
add_dependencies(ec_test_jerasure_generic ${CMAKE_SOURCE_DIR}/src/ceph_ver.h)
target_link_libraries(ec_test_jerasure_generic pthread ${EXTRA_LIBS})
-# unittest_erasure_code_jerasure_plugin
+# unittest_erasure_code_plugin_jerasure
add_executable(unittest_erasure_code_plugin_jerasure EXCLUDE_FROM_ALL
TestErasureCodePluginJerasure.cc
)
+add_ceph_unittest(unittest_erasure_code_plugin_jerasure ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_erasure_code_plugin_jerasure)
+target_link_libraries(unittest_erasure_code_plugin_jerasure
+ global
+ osd
+ ec_jerasure_generic
+ common)
add_dependencies(unittest_erasure_code_plugin_jerasure
ec_jerasure
ec_jerasure_sse3
ec_test_jerasure_sse4
ec_test_jerasure_sse3
ec_test_jerasure_generic)
-add_test(NAME unittest_erasure_code_plugin_jerasure COMMAND unittest_erasure_code_plugin_jerasure WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src)
-add_dependencies(check unittest_erasure_code_plugin_jerasure)
-target_link_libraries(unittest_erasure_code_plugin_jerasure
- global
- osd
- ec_jerasure_generic
- common
- ${CMAKE_DL_LIBS}
- ${UNITTEST_LIBS})
-set_target_properties(unittest_erasure_code_plugin_jerasure PROPERTIES COMPILE_FLAGS
- "${EC_LIBS_PATH_FLAG} ${UNITTEST_CXX_FLAGS}")
if(HAVE_BETTER_YASM_ELF64)
add_executable(unittest_erasure_code_isa EXCLUDE_FROM_ALL
${CMAKE_SOURCE_DIR}/src/erasure-code/ErasureCode.cc
TestErasureCodeIsa.cc
-)
-add_test(unittest_erasure_code_isa unittest_erasure_code_isa)
-add_dependencies(check unittest_erasure_code_isa)
+ )
+add_ceph_unittest(unittest_erasure_code_isa ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_erasure_code_isa)
target_link_libraries(unittest_erasure_code_isa
global
osd
common
ec_isa
erasure_code
- dl
- ${CMAKE_DL_LIBS}
- ${UNITTEST_LIBS})
-set_target_properties(unittest_erasure_code_isa PROPERTIES COMPILE_FLAGS
-${UNITTEST_CXX_FLAGS})
+ )
#unittest_erasure_code_plugin_isa
add_executable(unittest_erasure_code_plugin_isa EXCLUDE_FROM_ALL
${CMAKE_SOURCE_DIR}/src/erasure-code/ErasureCode.cc
TestErasureCodePluginIsa.cc
-)
-add_test(NAME unittest_erasure_code_plugin_isa COMMAND unittest_erasure_code_plugin_isa WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src)
-add_dependencies(check unittest_erasure_code_plugin_isa)
+ )
+add_ceph_unittest(unittest_erasure_code_plugin_isa ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_erasure_code_plugin_isa)
target_link_libraries(unittest_erasure_code_plugin_isa
global
osd
crush
dl
erasure_code
- ${CMAKE_DL_LIBS}
- ${UNITTEST_LIBS})
-set_target_properties(unittest_erasure_code_plugin_isa PROPERTIES COMPILE_FLAGS
- "${EC_LIBS_PATH_FLAG} ${UNITTEST_CXX_FLAGS}")
+ )
endif(HAVE_BETTER_YASM_ELF64)
# unittest_erasure_code_lrc
TestErasureCodeLrc.cc
${lrc_srcs}
)
-add_dependencies(unittest_erasure_code_lrc ec_jerasure)
-add_test(NAME unittest_erasure_code_lrc COMMAND unittest_erasure_code_lrc WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src)
-add_dependencies(check unittest_erasure_code_lrc)
+add_ceph_unittest(unittest_erasure_code_lrc ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_erasure_code_lrc)
target_link_libraries(unittest_erasure_code_lrc
global
osd
dl
ec_lrc
common
- ${CMAKE_DL_LIBS}
- ${UNITTEST_LIBS})
-set_target_properties(unittest_erasure_code_lrc PROPERTIES COMPILE_FLAGS
- "${EC_LIBS_PATH_FLAG} ${UNITTEST_CXX_FLAGS}")
+ )
# unittest_erasure_code_plugin_lrc
add_executable(unittest_erasure_code_plugin_lrc EXCLUDE_FROM_ALL
TestErasureCodePluginLrc.cc
)
-add_test(NAME unittest_erasure_code_plugin_lrc COMMAND unittest_erasure_code_plugin_lrc WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src)
-add_dependencies(check unittest_erasure_code_plugin_lrc)
+add_ceph_unittest(unittest_erasure_code_plugin_lrc ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_erasure_code_plugin_lrc)
add_dependencies(unittest_erasure_code_plugin_lrc
ec_lrc
ec_jerasure
dl
ec_lrc
ec_jerasure_generic
- common
- ${CMAKE_DL_LIBS}
- ${UNITTEST_LIBS})
-set_target_properties(unittest_erasure_code_plugin_lrc PROPERTIES COMPILE_FLAGS
- "${EC_LIBS_PATH_FLAG} ${UNITTEST_CXX_FLAGS}")
+ common)
add_library(ec_test_shec_neon SHARED TestShecPluginNEON.cc)
add_dependencies(ec_test_shec_neon ${CMAKE_SOURCE_DIR}/src/ceph_ver.h)
add_executable(unittest_erasure_code_plugin_shec EXCLUDE_FROM_ALL
TestErasureCodePluginShec.cc
)
-add_test(NAME unittest_erasure_code_plugin_shec COMMAND unittest_erasure_code_plugin_shec WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src)
-add_dependencies(check unittest_erasure_code_plugin_shec)
+add_ceph_unittest(unittest_erasure_code_plugin_shec ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_erasure_code_plugin_shec)
+target_link_libraries(unittest_erasure_code_plugin_shec
+ global
+ osd
+ dl
+ common
+ ec_shec_generic)
add_dependencies(unittest_erasure_code_plugin_shec
ec_shec
ec_shec_sse3
ec_test_shec_sse3
ec_test_shec_sse4
ec_test_shec_generic)
-target_link_libraries(unittest_erasure_code_plugin_shec
- global
- osd
- dl
- common
- ec_shec_generic
- ${CMAKE_DL_LIBS}
- ${UNITTEST_LIBS})
-set_target_properties(unittest_erasure_code_plugin_shec PROPERTIES COMPILE_FLAGS
- "${EC_LIBS_PATH_FLAG} ${UNITTEST_CXX_FLAGS}")
-
# unittest_erasure_code_example
add_executable(unittest_erasure_code_example EXCLUDE_FROM_ALL
${CMAKE_SOURCE_DIR}/src/erasure-code/ErasureCode.cc
TestErasureCodeExample.cc
)
-add_test(unittest_erasure_code_example unittest_erasure_code_example)
-add_dependencies(check unittest_erasure_code_example)
+add_ceph_unittest(unittest_erasure_code_example ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_erasure_code_example)
target_link_libraries(unittest_erasure_code_example
global
osd
dl
common
erasure_code
- ${CMAKE_DL_LIBS}
- ${UNITTEST_LIBS})
-set_target_properties(unittest_erasure_code_example PROPERTIES COMPILE_FLAGS
- ${UNITTEST_CXX_FLAGS})
+ ${UNITTEST_LIBS}
+ )
+set_target_properties(unittest_erasure_code_example PROPERTIES COMPILE_FLAGS ${UNITTEST_CXX_FLAGS})
include_directories(${CMAKE_SOURCE_DIR}/src/erasure-code/jerasure/jerasure/include)
include_directories(${CMAKE_SOURCE_DIR}/src/erasure-code//jerasure/gf-complete/include)
add_executable(unittest_erasure_code_jerasure EXCLUDE_FROM_ALL
TestErasureCodeJerasure.cc
)
-add_test(unittest_erasure_code_jerasure unittest_erasure_code_jerasure)
-add_dependencies(check unittest_erasure_code_jerasure)
+add_ceph_unittest(unittest_erasure_code_jerasure ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_erasure_code_jerasure)
target_link_libraries(unittest_erasure_code_jerasure
global
osd
common
ec_jerasure_generic
- ${CMAKE_DL_LIBS}
- ${UNITTEST_LIBS})
-set_target_properties(unittest_erasure_code_jerasure PROPERTIES COMPILE_FLAGS
- ${UNITTEST_CXX_FLAGS})
+ )
include_directories(${CMAKE_SOURCE_DIR}/src/erasure-code/jerasure)
include_directories(${CMAKE_SOURCE_DIR}/src/erasure-code/shec)
# unittest_erasure_code_shec
-add_executable(unittest_erasure_code_shec
+add_executable(unittest_erasure_code_shec EXCLUDE_FROM_ALL
TestErasureCodeShec.cc
)
-add_test(unittest_erasure_code_shec unittest_erasure_code_shec)
-add_dependencies(check unittest_erasure_code_shec)
+add_ceph_unittest(unittest_erasure_code_shec ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_erasure_code_shec)
target_link_libraries(unittest_erasure_code_shec
global
osd
dl
common
ec_shec_generic
- ${CMAKE_DL_LIBS}
- ${UNITTEST_LIBS})
-set_target_properties(unittest_erasure_code_shec PROPERTIES COMPILE_FLAGS
- ${UNITTEST_CXX_FLAGS})
+ )
# unittest_erasure_code_shec_all
add_executable(unittest_erasure_code_shec_all EXCLUDE_FROM_ALL
TestErasureCodeShec_all.cc
)
-add_test(unittest_erasure_code_shec_all unittest_erasure_code_shec_all)
-add_dependencies(check unittest_erasure_code_shec_all)
+add_ceph_unittest(unittest_erasure_code_shec_all ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_erasure_code_shec_all)
target_link_libraries(unittest_erasure_code_shec_all
global
osd
dl
common
ec_shec_generic
- ${CMAKE_DL_LIBS}
- ${UNITTEST_LIBS})
-set_target_properties(unittest_erasure_code_shec_all PROPERTIES COMPILE_FLAGS
- ${UNITTEST_CXX_FLAGS})
+ )
# unittest_erasure_code_shec_thread
add_executable(unittest_erasure_code_shec_thread EXCLUDE_FROM_ALL
TestErasureCodeShec_thread.cc
)
-add_test(unittest_erasure_code_shec_thread unittest_erasure_code_shec_thread)
-add_dependencies(check unittest_erasure_code_shec_thread)
+add_ceph_unittest(unittest_erasure_code_shec_thread ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_erasure_code_shec_thread)
target_link_libraries(unittest_erasure_code_shec_thread
global
osd
dl
common
ec_shec_generic
- ${CMAKE_DL_LIBS}
- ${UNITTEST_LIBS})
-set_target_properties(unittest_erasure_code_shec_thread PROPERTIES COMPILE_FLAGS
- ${UNITTEST_CXX_FLAGS})
+ )
+
# unittest_erasure_code_shec_arguments
add_executable(unittest_erasure_code_shec_arguments EXCLUDE_FROM_ALL
TestErasureCodeShec_arguments.cc
)
-add_test(unittest_erasure_code_shec_arguments unittest_erasure_code_shec_arguments)
-add_dependencies(check unittest_erasure_code_shec_arguments)
+add_ceph_unittest(unittest_erasure_code_shec_arguments ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_erasure_code_shec_arguments)
target_link_libraries(unittest_erasure_code_shec_arguments
global
osd
dl
common
ec_shec_generic
- ${CMAKE_DL_LIBS}
- ${UNITTEST_LIBS})
-set_target_properties(unittest_erasure_code_shec_arguments PROPERTIES COMPILE_FLAGS
- ${UNITTEST_CXX_FLAGS})
+ )
*/
#include <errno.h>
+#include <stdlib.h>
#include "global/global_init.h"
#include "erasure-code/ErasureCode.h"
global_init(NULL, args, CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_UTILITY, 0);
common_init_finish(g_ceph_context);
- g_conf->set_val("erasure_code_dir", ".libs", false, false);
+ string directory = getenv("CEPH_LIB");
+ g_conf->set_val("erasure_code_dir", directory, false, false);
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
* version 2.1 of the License, or (at your option) any later version.
*
*/
+#include <stdlib.h>
#include "include/stringify.h"
#include "global/global_init.h"
global_init(NULL, args, CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_UTILITY, 0);
common_init_finish(g_ceph_context);
- g_conf->set_val("erasure_code_dir", ".libs", false, false);
+ char *CEPH_LIB = getenv("CEPH_LIB");
+ g_conf->set_val("erasure_code_dir", CEPH_LIB, false, false);
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
*/
#include <errno.h>
+#include <stdlib.h>
#include "crush/CrushWrapper.h"
#include "include/stringify.h"
global_init(NULL, args, CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_UTILITY, 0);
common_init_finish(g_ceph_context);
- g_conf->set_val("erasure_code_dir", ".libs", false, false);
+ string directory = getenv("CEPH_LIB");
+ g_conf->set_val("erasure_code_dir", directory, false, false);
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
*/
#include <errno.h>
+#include <stdlib.h>
#include "crush/CrushWrapper.h"
#include "include/stringify.h"
global_init(NULL, args, CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_UTILITY, 0);
common_init_finish(g_ceph_context);
- g_conf->set_val("erasure_code_dir", ".libs", false, false);
+ string directory = getenv("CEPH_LIB");
+ g_conf->set_val("erasure_code_dir", directory, false, false);
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
*/
#include <errno.h>
+#include <stdlib.h>
#include "crush/CrushWrapper.h"
#include "common/config.h"
ErasureCodeLrc lrc(g_conf->erasure_code_dir);
ErasureCodeProfile profile;
- const char *description_string =
- "[ "
- " [ \"_cDDD_cDD_\", \"directory=.libs\" ],"
+ string directory = getenv("CEPH_LIB");
+ string description_string =
+ "[ "
+ " [ \"_cDDD_cDD_\", \"directory=" + directory + "\" ],"
"]";
profile["layers"] = description_string;
json_spirit::mArray description;
global_init(NULL, args, CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_UTILITY, 0);
common_init_finish(g_ceph_context);
- g_conf->set_val("erasure_code_dir", ".libs", false, false);
+ string directory = getenv("CEPH_LIB");
+ g_conf->set_val("erasure_code_dir", directory, false, false);
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
#include <errno.h>
#include <signal.h>
+#include <stdlib.h>
#include "common/Thread.h"
#include "global/global_init.h"
#include "erasure-code/ErasureCodePlugin.h"
TEST_F(ErasureCodePluginRegistryTest, all)
{
ErasureCodeProfile profile;
- string directory(".libs");
+ string directory = getenv("CEPH_LIB");
ErasureCodeInterfaceRef erasure_code;
ErasureCodePluginRegistry &instance = ErasureCodePluginRegistry::instance();
EXPECT_FALSE(erasure_code);
global_init(NULL, args, CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_UTILITY, 0);
common_init_finish(g_ceph_context);
- g_conf->set_val("erasure_code_dir", ".libs", false, false);
+ string directory = getenv("CEPH_LIB");
+ g_conf->set_val("erasure_code_dir", directory, false, false);
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
*/
#include <errno.h>
+#include <stdlib.h>
#include "arch/probe.h"
#include "arch/intel.h"
#include "global/global_init.h"
global_init(NULL, args, CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_UTILITY, 0);
common_init_finish(g_ceph_context);
- g_conf->set_val("erasure_code_dir", ".libs", false, false);
+ string directory = getenv("CEPH_LIB");
+ g_conf->set_val("erasure_code_dir", directory, false, false);
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
*/
#include <errno.h>
+#include <stdlib.h>
#include "arch/probe.h"
#include "arch/intel.h"
#include "arch/arm.h"
global_init(NULL, args, CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_UTILITY, 0);
common_init_finish(g_ceph_context);
- g_conf->set_val("erasure_code_dir", ".libs", false, false);
+ string directory = getenv("CEPH_LIB");
+ g_conf->set_val("erasure_code_dir", directory, false, false);
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
*/
#include <errno.h>
+#include <stdlib.h>
#include "arch/probe.h"
#include "arch/intel.h"
#include "global/global_init.h"
global_init(NULL, args, CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_UTILITY, 0);
common_init_finish(g_ceph_context);
- g_conf->set_val("erasure_code_dir", ".libs", false, false);
+ string directory = getenv("CEPH_LIB");
+ g_conf->set_val("erasure_code_dir", directory, false, false);
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
*/
#include <errno.h>
+#include <stdlib.h>
#include "arch/probe.h"
#include "arch/intel.h"
#include "arch/arm.h"
global_init(NULL, args, CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_UTILITY, 0);
common_init_finish(g_ceph_context);
- g_conf->set_val("erasure_code_dir", ".libs", false, false);
+ string directory = getenv("CEPH_LIB");
+ g_conf->set_val("erasure_code_dir", directory, false, false);
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
#include <errno.h>
#include <pthread.h>
+#include <stdlib.h>
#include "crush/CrushWrapper.h"
#include "osd/osd_types.h"
global_init(NULL, args, CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_UTILITY, 0);
common_init_finish(g_ceph_context);
- g_conf->set_val("erasure_code_dir", ".libs", false, false);
+ string directory = getenv("CEPH_LIB");
+ g_conf->set_val("erasure_code_dir", directory, false, false);
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
// SUMMARY: TestErasureCodeShec combination of k,m,c by 301 patterns
#include <errno.h>
+#include <stdlib.h>
#include "crush/CrushWrapper.h"
#include "osd/osd_types.h"
global_init(NULL, args, CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_UTILITY, 0);
common_init_finish(g_ceph_context);
- g_conf->set_val("erasure_code_dir", ".libs", false, false);
+ string directory = getenv("CEPH_LIB");
+ g_conf->set_val("erasure_code_dir", directory, false, false);
::testing::InitGoogleTest(&argc, argv);
// SUMMARY: shec's gtest for each argument of minimum_to_decode()/decode()
#include <errno.h>
+#include <stdlib.h>
#include "crush/CrushWrapper.h"
#include "osd/osd_types.h"
global_init(NULL, args, CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_UTILITY, 0);
common_init_finish(g_ceph_context);
- g_conf->set_val("erasure_code_dir", ".libs", false, false);
+ char *CEPH_LIB = getenv("CEPH_LIB");
+ g_conf->set_val("erasure_code_dir", CEPH_LIB, false, false);
::testing::InitGoogleTest(&argc, argv);
#include <errno.h>
#include <pthread.h>
+#include <stdlib.h>
#include "crush/CrushWrapper.h"
#include "osd/osd_types.h"
global_init(NULL, args, CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_UTILITY, 0);
common_init_finish(g_ceph_context);
- g_conf->set_val("erasure_code_dir", ".libs", false, false);
+ char *CEPH_LIB = getenv("CEPH_LIB");
+ g_conf->set_val("erasure_code_dir", CEPH_LIB, false, false);
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
CINIT_FLAG_NO_DEFAULT_CONFIG_FILE);
common_init_finish(g_ceph_context);
g_ceph_context->_conf->apply_changes(NULL);
- g_conf->set_val("erasure_code_dir", ".libs", false, false);
+ string directory = getenv("CEPH_LIB");
+ g_conf->set_val("erasure_code_dir", directory, false, false);
if (vm.count("help")) {
cout << desc << std::endl;
CINIT_FLAG_NO_DEFAULT_CONFIG_FILE);
common_init_finish(g_ceph_context);
g_ceph_context->_conf->apply_changes(NULL);
- g_conf->set_val("erasure_code_dir", ".libs", false, false);
+ string directory = getenv("CEPH_LIB");
+ g_conf->set_val("erasure_code_dir", directory, false, false);
if (vm.count("help")) {
cout << desc << std::endl;
# GNU Library Public License for more details.
#
-source ../qa/workunits/ceph-helpers.sh
+source $CEPH_ROOT/qa/workunits/ceph-helpers.sh
function run() {
local dir=$1
setup $dir || return 1
run_mon $dir a || return 1
# check that erasure code plugins are preloaded
- CEPH_ARGS='' ./ceph --admin-daemon $dir/ceph-mon.a.asok log flush || return 1
+ CEPH_ARGS='' ceph --admin-daemon $dir/ceph-mon.a.asok log flush || return 1
grep 'load: jerasure.*lrc' $dir/mon.a.log || return 1
for id in $(seq 0 10) ; do
run_osd $dir $id || return 1
done
wait_for_clean || return 1
# check that erasure code plugins are preloaded
- CEPH_ARGS='' ./ceph --admin-daemon $dir/ceph-osd.0.asok log flush || return 1
+ CEPH_ARGS='' ceph --admin-daemon $dir/ceph-osd.0.asok log flush || return 1
grep 'load: jerasure.*lrc' $dir/osd.0.log || return 1
create_erasure_coded_pool ecpool || return 1
function create_erasure_coded_pool() {
local poolname=$1
- ./ceph osd erasure-code-profile set myprofile \
+ ceph osd erasure-code-profile set myprofile \
ruleset-failure-domain=osd || return 1
- ./ceph osd pool create $poolname 12 12 erasure myprofile \
+ ceph osd pool create $poolname 12 12 erasure myprofile \
|| return 1
wait_for_clean || return 1
}
function delete_pool() {
local poolname=$1
- ./ceph osd pool delete $poolname $poolname --yes-i-really-really-mean-it
+ ceph osd pool delete $poolname $poolname --yes-i-really-really-mean-it
}
function rados_put_get() {
#
# get and put an object, compare they are equal
#
- ./rados --pool $poolname put $objname $dir/ORIGINAL || return 1
- ./rados --pool $poolname get $objname $dir/COPY || return 1
+ rados --pool $poolname put $objname $dir/ORIGINAL || return 1
+ rados --pool $poolname get $objname $dir/COPY || return 1
diff $dir/ORIGINAL $dir/COPY || return 1
rm $dir/COPY
#
local -a initial_osds=($(get_osds $poolname $objname))
local last=$((${#initial_osds[@]} - 1))
- ./ceph osd out ${initial_osds[$last]} || return 1
+ ceph osd out ${initial_osds[$last]} || return 1
! get_osds $poolname $objname | grep '\<'${initial_osds[$last]}'\>' || return 1
- ./rados --pool $poolname get $objname $dir/COPY || return 1
+ rados --pool $poolname get $objname $dir/COPY || return 1
diff $dir/ORIGINAL $dir/COPY || return 1
- ./ceph osd in ${initial_osds[$last]} || return 1
+ ceph osd in ${initial_osds[$last]} || return 1
rm $dir/ORIGINAL
}
#
# get and put an object, compare they are equal
#
- ./rados --pool $poolname put $objname $dir/ORIGINAL || return 1
- ./rados --pool $poolname get $objname $dir/COPY || return 1
+ rados --pool $poolname put $objname $dir/ORIGINAL || return 1
+ rados --pool $poolname get $objname $dir/COPY || return 1
diff $dir/ORIGINAL $dir/COPY || return 1
rm $dir/COPY
local osds_list=$(get_osds $poolname $objname)
local -a osds=($osds_list)
for osd in 0 1 ; do
- ./ceph osd out ${osds[$osd]} || return 1
+ ceph osd out ${osds[$osd]} || return 1
done
wait_for_clean || return 1
#
for osd in 0 1 ; do
! get_osds $poolname $objname | grep '\<'${osds[$osd]}'\>' || return 1
done
- ./rados --pool $poolname get $objname $dir/COPY || return 1
+ rados --pool $poolname get $objname $dir/COPY || return 1
diff $dir/ORIGINAL $dir/COPY || return 1
#
# bring the osds back in, , wait for the cluster
# implies the PG go back to using the same osds as before
#
for osd in 0 1 ; do
- ./ceph osd in ${osds[$osd]} || return 1
+ ceph osd in ${osds[$osd]} || return 1
done
wait_for_clean || return 1
test "$osds_list" = "$(get_osds $poolname $objname)" || return 1
local poolname=pool-lrc-a
local profile=profile-lrc-a
- ./ceph osd erasure-code-profile set $profile \
+ ceph osd erasure-code-profile set $profile \
plugin=lrc \
mapping=DD_ \
ruleset-steps='[ [ "chooseleaf", "osd", 0 ] ]' \
layers='[ [ "DDc", "" ] ]' || return 1
- ./ceph osd pool create $poolname 12 12 erasure $profile \
+ ceph osd pool create $poolname 12 12 erasure $profile \
|| return 1
rados_put_get $dir $poolname || return 1
delete_pool $poolname
- ./ceph osd erasure-code-profile rm $profile
+ ceph osd erasure-code-profile rm $profile
}
function TEST_rados_put_get_lrc_kml() {
local poolname=pool-lrc
local profile=profile-lrc
- ./ceph osd erasure-code-profile set $profile \
+ ceph osd erasure-code-profile set $profile \
plugin=lrc \
k=4 m=2 l=3 \
ruleset-failure-domain=osd || return 1
- ./ceph osd pool create $poolname 12 12 erasure $profile \
+ ceph osd pool create $poolname 12 12 erasure $profile \
|| return 1
rados_put_get $dir $poolname || return 1
delete_pool $poolname
- ./ceph osd erasure-code-profile rm $profile
+ ceph osd erasure-code-profile rm $profile
}
function TEST_rados_put_get_isa() {
local dir=$1
local poolname=pool-isa
- ./ceph osd erasure-code-profile set profile-isa \
+ ceph osd erasure-code-profile set profile-isa \
plugin=isa \
ruleset-failure-domain=osd || return 1
- ./ceph osd pool create $poolname 1 1 erasure profile-isa \
+ ceph osd pool create $poolname 1 1 erasure profile-isa \
|| return 1
rados_put_get $dir $poolname || return 1
local poolname=pool-jerasure
local profile=profile-jerasure
- ./ceph osd erasure-code-profile set $profile \
+ ceph osd erasure-code-profile set $profile \
plugin=jerasure \
k=4 m=2 \
ruleset-failure-domain=osd || return 1
- ./ceph osd pool create $poolname 12 12 erasure $profile \
+ ceph osd pool create $poolname 12 12 erasure $profile \
|| return 1
rados_put_get $dir $poolname || return 1
rados_osds_out_in $dir $poolname || return 1
delete_pool $poolname
- ./ceph osd erasure-code-profile rm $profile
+ ceph osd erasure-code-profile rm $profile
}
function TEST_rados_put_get_shec() {
local poolname=pool-shec
local profile=profile-shec
- ./ceph osd erasure-code-profile set $profile \
+ ceph osd erasure-code-profile set $profile \
plugin=shec \
k=2 m=1 c=1 \
ruleset-failure-domain=osd || return 1
- ./ceph osd pool create $poolname 12 12 erasure $profile \
+ ceph osd pool create $poolname 12 12 erasure $profile \
|| return 1
rados_put_get $dir $poolname || return 1
delete_pool $poolname
- ./ceph osd erasure-code-profile rm $profile
+ ceph osd erasure-code-profile rm $profile
}
function TEST_alignment_constraints() {
# imposed by the stripe width
# See http://tracker.ceph.com/issues/8622
#
- local stripe_width=$(./ceph-conf --show-config-value osd_pool_erasure_code_stripe_width)
+ local stripe_width=$(ceph-conf --show-config-value osd_pool_erasure_code_stripe_width)
local block_size=$((stripe_width - 1))
dd if=/dev/zero of=$dir/ORIGINAL bs=$block_size count=2
- ./rados --block-size=$block_size \
+ rados --block-size=$block_size \
--pool ecpool put UNALIGNED $dir/ORIGINAL || return 1
rm $dir/ORIGINAL
}
function chunk_size() {
- local stripe_width=$(./ceph-conf --show-config-value osd_pool_erasure_code_stripe_width)
- eval local $(./ceph osd erasure-code-profile get default | grep k=)
+ local stripe_width=$(ceph-conf --show-config-value osd_pool_erasure_code_stripe_width)
+ eval local $(ceph osd erasure-code-profile get default | grep k=)
echo $(($stripe_width / $k))
}
local payload=$(printf '%*s' $(chunk_size) FIRST$poolname ; printf '%*s' $(chunk_size) SECOND$poolname)
echo -n "$payload" > $dir/ORIGINAL
- ./rados --pool $poolname put SOMETHING$poolname $dir/ORIGINAL || return 1
- ./rados --pool $poolname get SOMETHING$poolname $dir/COPY || return 1
+ rados --pool $poolname put SOMETHING$poolname $dir/ORIGINAL || return 1
+ rados --pool $poolname get SOMETHING$poolname $dir/COPY || return 1
local -a osds=($(get_osds $poolname SOMETHING$poolname))
for (( i = 0; i < ${#osds[@]}; i++ )) ; do
- ./ceph daemon osd.${osds[$i]} flush_journal
+ ceph daemon osd.${osds[$i]} flush_journal
done
diff $dir/ORIGINAL $dir/COPY || return 1
rm $dir/COPY
#
verify_chunk_mapping $dir ecpool 0 1 || return 1
- ./ceph osd erasure-code-profile set remap-profile \
+ ceph osd erasure-code-profile set remap-profile \
plugin=lrc \
layers='[ [ "_DD", "" ] ]' \
mapping='_DD' \
ruleset-steps='[ [ "choose", "osd", 0 ] ]' || return 1
- ./ceph osd erasure-code-profile get remap-profile
- ./ceph osd pool create remap-pool 12 12 erasure remap-profile \
+ ceph osd erasure-code-profile get remap-profile
+ ceph osd pool create remap-pool 12 12 erasure remap-profile \
|| return 1
#
verify_chunk_mapping $dir remap-pool 1 2 || return 1
delete_pool remap-pool
- ./ceph osd erasure-code-profile rm remap-profile
+ ceph osd erasure-code-profile rm remap-profile
}
main test-erasure-code "$@"
# GNU Library Public License for more details.
#
-source ../qa/workunits/ceph-helpers.sh
+source $CEPH_ROOT/qa/workunits/ceph-helpers.sh
function run() {
local dir=$1
setup $dir || return 1
run_mon $dir a || return 1
# check that erasure code plugins are preloaded
- CEPH_ARGS='' ./ceph --admin-daemon $dir/ceph-mon.a.asok log flush || return 1
+ CEPH_ARGS='' ceph --admin-daemon $dir/ceph-mon.a.asok log flush || return 1
grep 'load: jerasure.*lrc' $dir/mon.a.log || return 1
$func $dir || return 1
teardown $dir || return 1
wait_for_clean || return 1
# check that erasure code plugins are preloaded
- CEPH_ARGS='' ./ceph --admin-daemon $dir/ceph-osd.0.asok log flush || return 1
+ CEPH_ARGS='' ceph --admin-daemon $dir/ceph-osd.0.asok log flush || return 1
grep 'load: jerasure.*lrc' $dir/osd.0.log || return 1
}
function create_erasure_coded_pool() {
local poolname=$1
- ./ceph osd erasure-code-profile set myprofile \
+ ceph osd erasure-code-profile set myprofile \
plugin=jerasure \
k=2 m=1 \
ruleset-failure-domain=osd || return 1
- ./ceph osd pool create $poolname 1 1 erasure myprofile \
+ ceph osd pool create $poolname 1 1 erasure myprofile \
|| return 1
wait_for_clean || return 1
}
function delete_pool() {
local poolname=$1
- ./ceph osd pool delete $poolname $poolname --yes-i-really-really-mean-it
- ./ceph osd erasure-code-profile rm myprofile
+ ceph osd pool delete $poolname $poolname --yes-i-really-really-mean-it
+ ceph osd erasure-code-profile rm myprofile
}
function rados_put() {
#
# get and put an object, compare they are equal
#
- ./rados --pool $poolname put $objname $dir/ORIGINAL || return 1
+ rados --pool $poolname put $objname $dir/ORIGINAL || return 1
}
function rados_get() {
#
if [ $expect = "1" ];
then
- ! ./rados --pool $poolname get $objname $dir/COPY
+ ! rados --pool $poolname get $objname $dir/COPY
return
fi
#
# get an object, compare with $dir/ORIGINAL
#
- ./rados --pool $poolname get $objname $dir/COPY || return 1
+ rados --pool $poolname get $objname $dir/COPY || return 1
diff $dir/ORIGINAL $dir/COPY || return 1
rm $dir/COPY
}
#
local -a initial_osds=($(get_osds $poolname $objname))
local last=$((${#initial_osds[@]} - 1))
- ./ceph osd out ${initial_osds[$last]} || return 1
+ ceph osd out ${initial_osds[$last]} || return 1
! get_osds $poolname $objname | grep '\<'${initial_osds[$last]}'\>' || return 1
rados_get $dir $poolname $objname $expect || return 1
- ./ceph osd in ${initial_osds[$last]} || return 1
+ ceph osd in ${initial_osds[$last]} || return 1
fi
rm $dir/ORIGINAL
local -a initial_osds=($(get_osds $poolname $objname))
local osd_id=${initial_osds[$shard_id]}
set_config osd $osd_id filestore_debug_inject_read_err true || return 1
- CEPH_ARGS='' ./ceph --admin-daemon $dir/ceph-osd.$osd_id.asok \
+ CEPH_ARGS='' ceph --admin-daemon $dir/ceph-osd.$osd_id.asok \
injectdataerr $poolname $objname $shard_id || return 1
}