From: Kefu Chai Date: Thu, 24 Nov 2016 18:16:40 +0000 (+0800) Subject: test,cmake: turn unit.h into unit.cc to speed up compilation X-Git-Tag: v11.1.0~115^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=5af29540675b674c1985ff98b28a783ed124acf6;p=ceph.git test,cmake: turn unit.h into unit.cc to speed up compilation Signed-off-by: Kefu Chai --- diff --git a/src/test/CMakeLists.txt b/src/test/CMakeLists.txt index 42229f652ad5..2628f999d444 100644 --- a/src/test/CMakeLists.txt +++ b/src/test/CMakeLists.txt @@ -3,6 +3,10 @@ include(AddCephTest) set(UNITTEST_LIBS gmock_main gmock gtest ${CMAKE_THREAD_LIBS_INIT} ${CMAKE_DL_LIBS}) set(UNITTEST_CXX_FLAGS "-I${CMAKE_SOURCE_DIR}/src/googletest/googlemock/include -I${CMAKE_BINARY_DIR}/src/googletest/googlemock/include -I${CMAKE_SOURCE_DIR}/src/googletest/googletest/include -I${CMAKE_BINARY_DIR}/src/googletest/googletest/include -fno-strict-aliasing") +add_library(unit-main OBJECT unit.cc) +set_source_files_properties(unit.cc PROPERTIES + COMPILE_FLAGS ${UNITTEST_CXX_FLAGS}) + add_subdirectory(bench) add_subdirectory(cls_hello) add_subdirectory(cls_lock) @@ -437,6 +441,7 @@ target_link_libraries(ceph_test_keys mon global ${CMAKE_DL_LIBS}) # ceph_test_snap_mapper add_executable(ceph_test_snap_mapper test_snap_mapper.cc + $ ) target_link_libraries(ceph_test_snap_mapper osd global ${BLKID_LIBRARIES} ${UNITTEST_LIBS}) set_target_properties(ceph_test_snap_mapper PROPERTIES COMPILE_FLAGS ${UNITTEST_CXX_FLAGS}) @@ -575,6 +580,7 @@ set_property(TEST # unittest_admin_socket add_executable(unittest_admin_socket admin_socket.cc + $ ) add_ceph_unittest(unittest_admin_socket ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_admin_socket) target_link_libraries(unittest_admin_socket global) @@ -596,6 +602,7 @@ target_link_libraries(unittest_addrs common librados ${XIO_LIBRARY} pthread rt m # unittest_workqueue add_executable(unittest_workqueue test_workqueue.cc + $ ) add_ceph_unittest(unittest_workqueue ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_workqueue) target_link_libraries(unittest_workqueue global ${BLKID_LIBRARIES}) @@ -603,6 +610,7 @@ target_link_libraries(unittest_workqueue global ${BLKID_LIBRARIES}) # unittest_striper add_executable(unittest_striper test_striper.cc + $ ) add_ceph_unittest(unittest_striper ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_striper) target_link_libraries(unittest_striper global ${BLKID_LIBRARIES}) @@ -652,6 +660,7 @@ target_link_libraries(unittest_ceph_compatset global) # unittest_gather add_executable(unittest_gather gather.cc + $ ) add_ceph_unittest(unittest_gather ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_gather) target_link_libraries(unittest_gather global) @@ -666,6 +675,7 @@ target_link_libraries(unittest_run_cmd global) # signals add_executable(unittest_signals signals.cc + $ ) add_ceph_unittest(unittest_signals ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_signals) target_link_libraries(unittest_signals global) @@ -694,6 +704,7 @@ target_link_libraries(unittest_xlist common ${XIO_LIBRARY}) # unittest_arch add_executable(unittest_arch test_arch.cc + $ ) add_ceph_unittest(unittest_arch ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_arch) target_link_libraries(unittest_arch global) @@ -715,6 +726,7 @@ target_link_libraries(unittest_mempool global) # unittest_crypto add_executable(unittest_crypto crypto.cc + $ ) add_ceph_unittest(unittest_crypto ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_crypto) target_link_libraries(unittest_crypto global) @@ -736,6 +748,7 @@ target_link_libraries(unittest_perf_counters global) # unittest_ceph_crypto add_executable(unittest_ceph_crypto ceph_crypto.cc + $ ) add_ceph_unittest(unittest_ceph_crypto ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_ceph_crypto) target_link_libraries(unittest_ceph_crypto global) @@ -778,6 +791,7 @@ target_link_libraries(unittest_confutils global) # unittest_heartbeatmap add_executable(unittest_heartbeatmap heartbeat_map.cc + $ ) add_ceph_unittest(unittest_heartbeatmap ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_heartbeatmap) target_link_libraries(unittest_heartbeatmap common global) @@ -786,6 +800,7 @@ if(${WITH_RADOSGW}) # unittest_formatter add_executable(unittest_formatter formatter.cc + $ ) add_ceph_unittest(unittest_formatter ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_formatter) target_link_libraries(unittest_formatter global) @@ -794,6 +809,7 @@ endif(${WITH_RADOSGW}) # unittest_daemon_config add_executable(unittest_daemon_config daemon_config.cc + $ ) add_ceph_unittest(unittest_daemon_config ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_daemon_config) target_link_libraries(unittest_daemon_config diff --git a/src/test/admin_socket.cc b/src/test/admin_socket.cc index b6777de9dd17..3f9fc0c5260d 100644 --- a/src/test/admin_socket.cc +++ b/src/test/admin_socket.cc @@ -17,7 +17,7 @@ #include "common/admin_socket.h" #include "common/admin_socket_client.h" #include "common/ceph_argparse.h" -#include "test/unit.h" +#include "gtest/gtest.h" #include #include diff --git a/src/test/ceph_crypto.cc b/src/test/ceph_crypto.cc index 893f332b073f..478260168d51 100644 --- a/src/test/ceph_crypto.cc +++ b/src/test/ceph_crypto.cc @@ -1,6 +1,6 @@ +#include "gtest/gtest.h" #include "common/ceph_crypto.h" - -#include "test/unit.h" +#include "global/global_context.h" class CryptoEnvironment: public ::testing::Environment { public: diff --git a/src/test/common/CMakeLists.txt b/src/test/common/CMakeLists.txt index 4ee6e62508ca..2b2325693b15 100644 --- a/src/test/common/CMakeLists.txt +++ b/src/test/common/CMakeLists.txt @@ -52,6 +52,7 @@ target_link_libraries(unittest_str_map common global ${BLKID_LIBRARIES}) # unittest_sharedptr_registry add_executable(unittest_sharedptr_registry test_sharedptr_registry.cc + $ ) add_ceph_unittest(unittest_sharedptr_registry ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_sharedptr_registry) target_link_libraries(unittest_sharedptr_registry global ${BLKID_LIBRARIES}) @@ -59,6 +60,7 @@ target_link_libraries(unittest_sharedptr_registry global ${BLKID_LIBRARIES}) # unittest_shared_cache add_executable(unittest_shared_cache test_shared_cache.cc + $ ) add_ceph_unittest(unittest_shared_cache ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_shared_cache) target_link_libraries(unittest_shared_cache global ${BLKID_LIBRARIES}) @@ -89,6 +91,7 @@ target_link_libraries(unittest_util global ${BLKID_LIBRARIES}) # unittest_throttle add_executable(unittest_throttle Throttle.cc + $ ) add_ceph_unittest(unittest_throttle ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_throttle) target_link_libraries(unittest_throttle global) diff --git a/src/test/common/Throttle.cc b/src/test/common/Throttle.cc index eda25a91f369..16c2456845d6 100644 --- a/src/test/common/Throttle.cc +++ b/src/test/common/Throttle.cc @@ -21,11 +21,11 @@ #include #include +#include "gtest/gtest.h" #include "common/Mutex.h" #include "common/Thread.h" #include "common/Throttle.h" #include "common/ceph_argparse.h" -#include "test/unit.h" #include #include diff --git a/src/test/common/dns_messages.h b/src/test/common/dns_messages.h index d0b5a13d98ff..1b282688ab8c 100644 --- a/src/test/common/dns_messages.h +++ b/src/test/common/dns_messages.h @@ -15,7 +15,6 @@ #define CEPH_TEST_DNS_MESSAGES_H #include "common/dns_resolve.h" -#include "test/unit.h" #include "gmock/gmock.h" u_char ns_search_msg_ok_payload[] = { diff --git a/src/test/common/dns_resolve.cc b/src/test/common/dns_resolve.cc index 3cf5586e00f8..1cf86087e0c9 100644 --- a/src/test/common/dns_resolve.cc +++ b/src/test/common/dns_resolve.cc @@ -14,7 +14,6 @@ #include "common/dns_resolve.h" #include "test/common/dns_messages.h" -#include "test/unit.h" #include "common/debug.h" #include "gmock/gmock.h" diff --git a/src/test/common/test_shared_cache.cc b/src/test/common/test_shared_cache.cc index 1d12800c85f4..d0a907d31644 100644 --- a/src/test/common/test_shared_cache.cc +++ b/src/test/common/test_shared_cache.cc @@ -22,10 +22,9 @@ #include #include +#include "gtest/gtest.h" #include "common/Thread.h" #include "common/shared_cache.hpp" -#include "common/ceph_argparse.h" -#include "test/unit.h" class SharedLRUTest : public SharedLRU { public: diff --git a/src/test/common/test_sharedptr_registry.cc b/src/test/common/test_sharedptr_registry.cc index 88486251a33a..925395aa099b 100644 --- a/src/test/common/test_sharedptr_registry.cc +++ b/src/test/common/test_sharedptr_registry.cc @@ -21,10 +21,10 @@ #include #include +#include "gtest/gtest.h" #include "common/Thread.h" #include "common/sharedptr_registry.hpp" #include "common/ceph_argparse.h" -#include "test/unit.h" class SharedPtrRegistryTest : public SharedPtrRegistry { public: diff --git a/src/test/compressor/CMakeLists.txt b/src/test/compressor/CMakeLists.txt index bf63e7e2eaf4..d296cdf0bea4 100644 --- a/src/test/compressor/CMakeLists.txt +++ b/src/test/compressor/CMakeLists.txt @@ -3,6 +3,7 @@ add_library(ceph_example SHARED compressor_plugin_example.cc) # unittest_compression add_executable(unittest_compression test_compression.cc + $ ) add_ceph_unittest(unittest_compression ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_compression) target_link_libraries(unittest_compression global) diff --git a/src/test/compressor/test_compression.cc b/src/test/compressor/test_compression.cc index 6dbdfacd1cdf..1b9782a04672 100644 --- a/src/test/compressor/test_compression.cc +++ b/src/test/compressor/test_compression.cc @@ -17,12 +17,11 @@ #include #include #include -#include "compressor/Compressor.h" -#include "common/ceph_argparse.h" -#include "global/global_context.h" +#include "gtest/gtest.h" #include "common/config.h" +#include "compressor/Compressor.h" #include "compressor/CompressionPlugin.h" -#include "test/unit.h" +#include "global/global_context.h" class CompressorTest : public ::testing::Test, public ::testing::WithParamInterface { diff --git a/src/test/crush/CMakeLists.txt b/src/test/crush/CMakeLists.txt index b3095cf3e36d..fc96c9a271c3 100644 --- a/src/test/crush/CMakeLists.txt +++ b/src/test/crush/CMakeLists.txt @@ -8,6 +8,7 @@ target_link_libraries(unittest_crush_wrapper global crush ${BLKID_LIBRARIES}) # unittest_crush add_executable(unittest_crush crush.cc + $ ) add_ceph_unittest(unittest_crush ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_crush) target_link_libraries(unittest_crush global m ${BLKID_LIBRARIES}) diff --git a/src/test/crush/crush.cc b/src/test/crush/crush.cc index 778323b4736c..5010cb4d8c97 100644 --- a/src/test/crush/crush.cc +++ b/src/test/crush/crush.cc @@ -15,7 +15,6 @@ #include "crush/CrushWrapper.h" #include "osd/osd_types.h" -#include "test/unit.h" #include diff --git a/src/test/crypto.cc b/src/test/crypto.cc index 25c01ba20d2e..03530c18168a 100644 --- a/src/test/crypto.cc +++ b/src/test/crypto.cc @@ -1,6 +1,7 @@ #include #include +#include "gtest/gtest.h" #include "include/types.h" #include "auth/Crypto.h" #include "common/Clock.h" @@ -8,8 +9,6 @@ #include "common/ceph_context.h" #include "global/global_context.h" -#include "test/unit.h" - class CryptoEnvironment: public ::testing::Environment { public: void SetUp() { diff --git a/src/test/daemon_config.cc b/src/test/daemon_config.cc index 6187ee56b624..3db9500e253c 100644 --- a/src/test/daemon_config.cc +++ b/src/test/daemon_config.cc @@ -12,11 +12,12 @@ * */ +#include "gtest/gtest.h" #include "common/ceph_argparse.h" #include "common/config.h" +#include "global/global_context.h" #include "include/cephfs/libcephfs.h" #include "include/rados/librados.h" -#include "test/unit.h" #include #include diff --git a/src/test/erasure-code/CMakeLists.txt b/src/test/erasure-code/CMakeLists.txt index f135dbbe4273..9c6082a72147 100644 --- a/src/test/erasure-code/CMakeLists.txt +++ b/src/test/erasure-code/CMakeLists.txt @@ -48,6 +48,7 @@ target_link_libraries(ec_fail_to_register pthread ${EXTRALIBS}) add_executable(unittest_erasure_code_plugin ${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 @@ -68,6 +69,7 @@ add_dependencies(unittest_erasure_code_plugin add_executable(unittest_erasure_code ${CMAKE_SOURCE_DIR}/src/erasure-code/ErasureCode.cc TestErasureCode.cc + $ ) add_ceph_unittest(unittest_erasure_code ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_erasure_code) target_link_libraries(unittest_erasure_code @@ -78,6 +80,7 @@ target_link_libraries(unittest_erasure_code # unittest_erasure_code_plugin_jerasure add_executable(unittest_erasure_code_plugin_jerasure 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 @@ -92,6 +95,7 @@ if(HAVE_BETTER_YASM_ELF64) add_executable(unittest_erasure_code_isa ${CMAKE_SOURCE_DIR}/src/erasure-code/ErasureCode.cc TestErasureCodeIsa.cc + $ ) add_ceph_unittest(unittest_erasure_code_isa ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_erasure_code_isa) target_link_libraries(unittest_erasure_code_isa @@ -105,6 +109,7 @@ target_link_libraries(unittest_erasure_code_isa add_executable(unittest_erasure_code_plugin_isa ${CMAKE_SOURCE_DIR}/src/erasure-code/ErasureCode.cc TestErasureCodePluginIsa.cc + $ ) 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 @@ -120,7 +125,8 @@ endif(HAVE_BETTER_YASM_ELF64) # unittest_erasure_code_lrc add_executable(unittest_erasure_code_lrc - TestErasureCodeLrc.cc) + TestErasureCodeLrc.cc + $) add_ceph_unittest(unittest_erasure_code_lrc ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_erasure_code_lrc) target_link_libraries(unittest_erasure_code_lrc global @@ -132,6 +138,7 @@ target_link_libraries(unittest_erasure_code_lrc # unittest_erasure_code_plugin_lrc add_executable(unittest_erasure_code_plugin_lrc TestErasureCodePluginLrc.cc + $ ) add_ceph_unittest(unittest_erasure_code_plugin_lrc ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_erasure_code_plugin_lrc) add_dependencies(unittest_erasure_code_plugin_lrc @@ -145,6 +152,7 @@ target_link_libraries(unittest_erasure_code_plugin_lrc # unittest_erasure_code_plugin_shec add_executable(unittest_erasure_code_plugin_shec TestErasureCodePluginShec.cc + $ ) 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 @@ -158,6 +166,7 @@ add_dependencies(unittest_erasure_code_plugin_shec add_executable(unittest_erasure_code_example ${CMAKE_SOURCE_DIR}/src/erasure-code/ErasureCode.cc TestErasureCodeExample.cc + $ ) add_ceph_unittest(unittest_erasure_code_example ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_erasure_code_example) target_link_libraries(unittest_erasure_code_example @@ -175,6 +184,7 @@ include_directories(${CMAKE_SOURCE_DIR}/src/erasure-code//jerasure/gf-complete/i # unittest_erasure_code_jerasure add_executable(unittest_erasure_code_jerasure TestErasureCodeJerasure.cc + $ ) add_ceph_unittest(unittest_erasure_code_jerasure ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_erasure_code_jerasure) target_link_libraries(unittest_erasure_code_jerasure @@ -189,6 +199,7 @@ include_directories(${CMAKE_SOURCE_DIR}/src/erasure-code/shec) # unittest_erasure_code_shec add_executable(unittest_erasure_code_shec TestErasureCodeShec.cc + $ ) add_ceph_unittest(unittest_erasure_code_shec ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_erasure_code_shec) target_link_libraries(unittest_erasure_code_shec @@ -213,6 +224,7 @@ target_link_libraries(unittest_erasure_code_shec_all # unittest_erasure_code_shec_thread add_executable(unittest_erasure_code_shec_thread TestErasureCodeShec_thread.cc + $ ) 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 diff --git a/src/test/erasure-code/TestErasureCode.cc b/src/test/erasure-code/TestErasureCode.cc index add9c671ce7f..55b12818f3e4 100644 --- a/src/test/erasure-code/TestErasureCode.cc +++ b/src/test/erasure-code/TestErasureCode.cc @@ -21,7 +21,6 @@ #include "global/global_context.h" #include "common/config.h" #include "gtest/gtest.h" -#include "test/unit.h" class ErasureCodeTest : public ErasureCode { public: diff --git a/src/test/erasure-code/TestErasureCodeExample.cc b/src/test/erasure-code/TestErasureCodeExample.cc index cabf0765380a..dab2dd700ae4 100644 --- a/src/test/erasure-code/TestErasureCodeExample.cc +++ b/src/test/erasure-code/TestErasureCodeExample.cc @@ -17,10 +17,8 @@ #include "include/stringify.h" #include "ErasureCodeExample.h" -#include "common/ceph_argparse.h" #include "global/global_context.h" #include "gtest/gtest.h" -#include "test/unit.h" TEST(ErasureCodeExample, chunk_size) { diff --git a/src/test/erasure-code/TestErasureCodeIsa.cc b/src/test/erasure-code/TestErasureCodeIsa.cc index 03fb3e9077bd..57773adc09dd 100644 --- a/src/test/erasure-code/TestErasureCodeIsa.cc +++ b/src/test/erasure-code/TestErasureCodeIsa.cc @@ -22,11 +22,9 @@ #include "include/stringify.h" #include "erasure-code/isa/ErasureCodeIsa.h" #include "erasure-code/isa/xor_op.h" -#include "common/ceph_argparse.h" #include "global/global_context.h" #include "common/config.h" #include "gtest/gtest.h" -#include "test/unit.h" ErasureCodeIsaTableCache tcache; diff --git a/src/test/erasure-code/TestErasureCodeJerasure.cc b/src/test/erasure-code/TestErasureCodeJerasure.cc index 180466e35247..4bb11d181f0a 100644 --- a/src/test/erasure-code/TestErasureCodeJerasure.cc +++ b/src/test/erasure-code/TestErasureCodeJerasure.cc @@ -24,7 +24,6 @@ #include "global/global_context.h" #include "common/config.h" #include "gtest/gtest.h" -#include "test/unit.h" template diff --git a/src/test/erasure-code/TestErasureCodeLrc.cc b/src/test/erasure-code/TestErasureCodeLrc.cc index 2d4d74f3c1e9..4acfd9ed9698 100644 --- a/src/test/erasure-code/TestErasureCodeLrc.cc +++ b/src/test/erasure-code/TestErasureCodeLrc.cc @@ -19,13 +19,11 @@ #include #include "crush/CrushWrapper.h" -#include "common/config.h" #include "include/stringify.h" #include "erasure-code/lrc/ErasureCodeLrc.h" #include "global/global_context.h" #include "common/config.h" #include "gtest/gtest.h" -#include "test/unit.h" TEST(ErasureCodeLrc, parse_ruleset) diff --git a/src/test/erasure-code/TestErasureCodePlugin.cc b/src/test/erasure-code/TestErasureCodePlugin.cc index 947d9f11889b..d86545b33b16 100644 --- a/src/test/erasure-code/TestErasureCodePlugin.cc +++ b/src/test/erasure-code/TestErasureCodePlugin.cc @@ -23,7 +23,6 @@ #include "global/global_context.h" #include "common/config.h" #include "gtest/gtest.h" -#include "test/unit.h" class ErasureCodePluginRegistryTest : public ::testing::Test { diff --git a/src/test/erasure-code/TestErasureCodePluginIsa.cc b/src/test/erasure-code/TestErasureCodePluginIsa.cc index b469596abc9e..13a617173113 100644 --- a/src/test/erasure-code/TestErasureCodePluginIsa.cc +++ b/src/test/erasure-code/TestErasureCodePluginIsa.cc @@ -16,13 +16,10 @@ #include #include "arch/probe.h" #include "arch/intel.h" -#include "global/global_init.h" #include "erasure-code/ErasureCodePlugin.h" -#include "common/ceph_argparse.h" #include "global/global_context.h" #include "common/config.h" #include "gtest/gtest.h" -#include "test/unit.h" TEST(ErasureCodePlugin, factory) { diff --git a/src/test/erasure-code/TestErasureCodePluginJerasure.cc b/src/test/erasure-code/TestErasureCodePluginJerasure.cc index 148f348d6797..70b6c48373d1 100644 --- a/src/test/erasure-code/TestErasureCodePluginJerasure.cc +++ b/src/test/erasure-code/TestErasureCodePluginJerasure.cc @@ -22,7 +22,6 @@ #include "global/global_context.h" #include "common/config.h" #include "gtest/gtest.h" -#include "test/unit.h" TEST(ErasureCodePlugin, factory) { diff --git a/src/test/erasure-code/TestErasureCodePluginLrc.cc b/src/test/erasure-code/TestErasureCodePluginLrc.cc index 5c2e618372ba..a52f3633510e 100644 --- a/src/test/erasure-code/TestErasureCodePluginLrc.cc +++ b/src/test/erasure-code/TestErasureCodePluginLrc.cc @@ -23,7 +23,6 @@ #include "global/global_context.h" #include "common/config.h" #include "gtest/gtest.h" -#include "test/unit.h" TEST(ErasureCodePlugin, factory) diff --git a/src/test/erasure-code/TestErasureCodePluginShec.cc b/src/test/erasure-code/TestErasureCodePluginShec.cc index fc4b1ac128b4..5c9020fe63c7 100644 --- a/src/test/erasure-code/TestErasureCodePluginShec.cc +++ b/src/test/erasure-code/TestErasureCodePluginShec.cc @@ -20,8 +20,8 @@ #include #include "erasure-code/ErasureCodePlugin.h" #include "global/global_context.h" +#include "gtest/gtest.h" #include "common/config.h" -#include "test/unit.h" TEST(ErasureCodePlugin, factory) { diff --git a/src/test/erasure-code/TestErasureCodeShec.cc b/src/test/erasure-code/TestErasureCodeShec.cc index b48fe2a82a53..8b2c8aa4eba5 100644 --- a/src/test/erasure-code/TestErasureCodeShec.cc +++ b/src/test/erasure-code/TestErasureCodeShec.cc @@ -25,13 +25,10 @@ #include "crush/CrushWrapper.h" #include "osd/osd_types.h" #include "include/stringify.h" -#include "global/global_init.h" #include "erasure-code/shec/ErasureCodeShec.h" #include "erasure-code/ErasureCodePlugin.h" -#include "common/ceph_argparse.h" #include "global/global_context.h" #include "gtest/gtest.h" -#include "test/unit.h" void* thread1(void* pParam); void* thread2(void* pParam); diff --git a/src/test/erasure-code/TestErasureCodeShec_thread.cc b/src/test/erasure-code/TestErasureCodeShec_thread.cc index 6060fb7c24ab..aa2e89daeb5c 100644 --- a/src/test/erasure-code/TestErasureCodeShec_thread.cc +++ b/src/test/erasure-code/TestErasureCodeShec_thread.cc @@ -29,7 +29,6 @@ #include "erasure-code/ErasureCodePlugin.h" #include "global/global_context.h" #include "gtest/gtest.h" -#include "test/unit.h" void* thread1(void* pParam); diff --git a/src/test/formatter.cc b/src/test/formatter.cc index 3913cc6f1542..35ec1d652b29 100644 --- a/src/test/formatter.cc +++ b/src/test/formatter.cc @@ -12,7 +12,7 @@ * */ -#include "test/unit.h" +#include "gtest/gtest.h" #include "common/Formatter.h" #include "common/HTMLFormatter.h" diff --git a/src/test/gather.cc b/src/test/gather.cc index e067ceed8f98..5df344f23cdb 100644 --- a/src/test/gather.cc +++ b/src/test/gather.cc @@ -12,7 +12,7 @@ * */ #include "include/Context.h" -#include "test/unit.h" +#include "gtest/gtest.h" class C_Checker : public Context { public: diff --git a/src/test/heartbeat_map.cc b/src/test/heartbeat_map.cc index 41e2dc38d50a..97be94d9d6ca 100644 --- a/src/test/heartbeat_map.cc +++ b/src/test/heartbeat_map.cc @@ -15,8 +15,9 @@ #include "common/Mutex.h" #include "common/HeartbeatMap.h" #include "common/ceph_context.h" -#include "test/unit.h" #include "common/config.h" +#include "global/global_context.h" +#include "gtest/gtest.h" using namespace ceph; diff --git a/src/test/librados/CMakeLists.txt b/src/test/librados/CMakeLists.txt index 17483c1608e6..aef20ba34b21 100644 --- a/src/test/librados/CMakeLists.txt +++ b/src/test/librados/CMakeLists.txt @@ -54,6 +54,7 @@ target_link_libraries(ceph_test_rados_api_aio # ceph_test_rados_api_list add_executable(ceph_test_rados_api_list list.cc + $ ) set_target_properties(ceph_test_rados_api_list PROPERTIES COMPILE_FLAGS ${UNITTEST_CXX_FLAGS}) @@ -109,6 +110,7 @@ target_link_libraries(ceph_test_rados_api_cls # ceph_test_rados_api_misc add_executable(ceph_test_rados_api_misc misc.cc + $ ) set_target_properties(ceph_test_rados_api_misc PROPERTIES COMPILE_FLAGS ${UNITTEST_CXX_FLAGS}) @@ -127,6 +129,7 @@ target_link_libraries(ceph_test_rados_api_lock # ceph_test_rados_api_tier add_executable(ceph_test_rados_api_tier tier.cc + $ ) set_target_properties(ceph_test_rados_api_tier PROPERTIES COMPILE_FLAGS ${UNITTEST_CXX_FLAGS}) diff --git a/src/test/librados/list.cc b/src/test/librados/list.cc index b1d09a36a6e7..a90c7d3214b0 100644 --- a/src/test/librados/list.cc +++ b/src/test/librados/list.cc @@ -6,7 +6,6 @@ #include "test/librados/test.h" #include "test/librados/TestCase.h" #include "global/global_context.h" -#include "test/unit.h" #include "include/types.h" #include "common/hobject.h" diff --git a/src/test/librados/misc.cc b/src/test/librados/misc.cc index d3ae2719a7b7..4645607aead9 100644 --- a/src/test/librados/misc.cc +++ b/src/test/librados/misc.cc @@ -9,15 +9,14 @@ #include "include/rados/librados.hpp" #include "include/stringify.h" #include "global/global_context.h" -#include "common/common_init.h" #include "test/librados/test.h" #include "test/librados/TestCase.h" +#include "gtest/gtest.h" #include #include #include #include -#include "test/unit.h" using namespace librados; diff --git a/src/test/librados/tier.cc b/src/test/librados/tier.cc index 82067f384452..6a1d21ab6401 100755 --- a/src/test/librados/tier.cc +++ b/src/test/librados/tier.cc @@ -14,7 +14,6 @@ #include "test/librados/test.h" #include "test/librados/TestCase.h" #include "json_spirit/json_spirit.h" -#include "test/unit.h" #include "osd/HitSet.h" diff --git a/src/test/mds/CMakeLists.txt b/src/test/mds/CMakeLists.txt index 62f4bc6e979f..09f9e7b20abc 100644 --- a/src/test/mds/CMakeLists.txt +++ b/src/test/mds/CMakeLists.txt @@ -1,6 +1,7 @@ # unittest_mds_authcap add_executable(unittest_mds_authcap TestMDSAuthCaps.cc + $ ) add_ceph_unittest(unittest_mds_authcap ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_mds_authcap) target_link_libraries(unittest_mds_authcap mds global ${BLKID_LIBRARIES}) @@ -9,6 +10,7 @@ target_link_libraries(unittest_mds_authcap mds global ${BLKID_LIBRARIES}) add_executable(unittest_mds_sessionfilter TestSessionFilter.cc $ + $ ) add_ceph_unittest(unittest_mds_sessionfilter ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_mds_sessionfilter) target_link_libraries(unittest_mds_sessionfilter mds osdc common global ${BLKID_LIBRARIES}) diff --git a/src/test/mds/TestMDSAuthCaps.cc b/src/test/mds/TestMDSAuthCaps.cc index 09317fd94367..f01760fbce62 100644 --- a/src/test/mds/TestMDSAuthCaps.cc +++ b/src/test/mds/TestMDSAuthCaps.cc @@ -16,7 +16,6 @@ #include "include/stringify.h" #include "mds/MDSAuthCaps.h" -#include "test/unit.h" #include "gtest/gtest.h" diff --git a/src/test/mds/TestSessionFilter.cc b/src/test/mds/TestSessionFilter.cc index 5682281259ed..29ce49256be8 100644 --- a/src/test/mds/TestSessionFilter.cc +++ b/src/test/mds/TestSessionFilter.cc @@ -16,7 +16,6 @@ #include "include/stringify.h" #include "mds/SessionMap.h" -#include "test/unit.h" #include "gtest/gtest.h" diff --git a/src/test/mon/CMakeLists.txt b/src/test/mon/CMakeLists.txt index 5c16b60ff8c0..6d9bc9fea32d 100644 --- a/src/test/mon/CMakeLists.txt +++ b/src/test/mon/CMakeLists.txt @@ -42,6 +42,7 @@ target_link_libraries(unittest_mon_moncap mon global) # unittest_mon_pgmap add_executable(unittest_mon_pgmap PGMap.cc + $ ) add_ceph_unittest(unittest_mon_pgmap ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_mon_pgmap) target_link_libraries(unittest_mon_pgmap mon global) diff --git a/src/test/mon/MonMap.cc b/src/test/mon/MonMap.cc index 83d9e6e46f52..84d8b2691bef 100644 --- a/src/test/mon/MonMap.cc +++ b/src/test/mon/MonMap.cc @@ -15,10 +15,10 @@ #include "common/ceph_context.h" #include "common/dns_resolve.h" #include "test/common/dns_messages.h" -#include "test/unit.h" #include "common/debug.h" #include "gmock/gmock.h" +#include "gtest/gtest.h" #include diff --git a/src/test/mon/PGMap.cc b/src/test/mon/PGMap.cc index 0ec16202b43e..60de6b7ddae9 100644 --- a/src/test/mon/PGMap.cc +++ b/src/test/mon/PGMap.cc @@ -15,7 +15,6 @@ #include "gtest/gtest.h" #include "include/stringify.h" -#include "test/unit.h" TEST(pgmap, min_last_epoch_clean) { diff --git a/src/test/msgr/CMakeLists.txt b/src/test/msgr/CMakeLists.txt index 5847b45f24f1..6222087c464b 100644 --- a/src/test/msgr/CMakeLists.txt +++ b/src/test/msgr/CMakeLists.txt @@ -1,6 +1,7 @@ # ceph_test_async_driver add_executable(ceph_test_async_driver test_async_driver.cc + $ ) set_target_properties(ceph_test_async_driver PROPERTIES COMPILE_FLAGS ${UNITTEST_CXX_FLAGS}) @@ -17,6 +18,7 @@ target_link_libraries(ceph_test_msgr os global ${BLKID_LIBRARIES} ${CMAKE_DL_LIB # ceph_test_async_networkstack add_executable(ceph_test_async_networkstack test_async_networkstack.cc + $ ) set_target_properties(ceph_test_async_networkstack PROPERTIES COMPILE_FLAGS ${UNITTEST_CXX_FLAGS}) @@ -36,7 +38,9 @@ target_link_libraries(ceph_perf_msgr_client os global ${UNITTEST_LIBS}) # test_userspace_event if(HAVE_DPDK) -add_executable(ceph_test_userspace_event test_userspace_event.cc) + add_executable(ceph_test_userspace_event + test_userspace_event.cc + $) set_target_properties(ceph_test_userspace_event PROPERTIES COMPILE_FLAGS ${UNITTEST_CXX_FLAGS}) target_link_libraries(ceph_test_userspace_event diff --git a/src/test/msgr/test_async_driver.cc b/src/test/msgr/test_async_driver.cc index 22662af8fc42..87aac346eed4 100644 --- a/src/test/msgr/test_async_driver.cc +++ b/src/test/msgr/test_async_driver.cc @@ -54,7 +54,6 @@ #include "msg/async/EventKqueue.h" #endif #include "msg/async/EventSelect.h" -#include "test/unit.h" #include diff --git a/src/test/msgr/test_async_networkstack.cc b/src/test/msgr/test_async_networkstack.cc index 4756fef7b776..d1f8f0a0960f 100644 --- a/src/test/msgr/test_async_networkstack.cc +++ b/src/test/msgr/test_async_networkstack.cc @@ -28,7 +28,6 @@ #include "msg/async/Event.h" #include "msg/async/Stack.h" -#include "test/unit.h" #if GTEST_HAS_PARAM_TEST diff --git a/src/test/msgr/test_userspace_event.cc b/src/test/msgr/test_userspace_event.cc index 4b040597624c..121c38826394 100644 --- a/src/test/msgr/test_userspace_event.cc +++ b/src/test/msgr/test_userspace_event.cc @@ -20,7 +20,6 @@ #include "msg/async/dpdk/UserspaceEvent.h" #include "global/global_context.h" -#include "test/unit.h" class UserspaceManagerTest : public ::testing::Test { public: diff --git a/src/test/objectstore/Allocator_test.cc b/src/test/objectstore/Allocator_test.cc index 53d1d9d7f24a..ef9f09095947 100644 --- a/src/test/objectstore/Allocator_test.cc +++ b/src/test/objectstore/Allocator_test.cc @@ -14,7 +14,6 @@ #include "include/Context.h" #include "os/bluestore/Allocator.h" #include "os/bluestore/BitAllocator.h" -#include "test/unit.h" #if GTEST_HAS_PARAM_TEST diff --git a/src/test/objectstore/BitAllocator_test.cc b/src/test/objectstore/BitAllocator_test.cc index ff946afffab9..edc4d8187fea 100644 --- a/src/test/objectstore/BitAllocator_test.cc +++ b/src/test/objectstore/BitAllocator_test.cc @@ -6,9 +6,7 @@ */ #include "include/Context.h" -#include "common/ceph_argparse.h" #include "os/bluestore/BitAllocator.h" -#include "test/unit.h" #include #include #include diff --git a/src/test/objectstore/CMakeLists.txt b/src/test/objectstore/CMakeLists.txt index 7885f69fe920..d19264e7d2ec 100644 --- a/src/test/objectstore/CMakeLists.txt +++ b/src/test/objectstore/CMakeLists.txt @@ -102,6 +102,7 @@ target_link_libraries(unittest_chain_xattr os global) # unittest_rocksdb_option add_executable(unittest_rocksdb_option TestRocksdbOptionParse.cc + $ ) add_ceph_unittest(unittest_rocksdb_option ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_rocksdb_option) target_link_libraries(unittest_rocksdb_option global os ${BLKID_LIBRARIES}) @@ -110,12 +111,14 @@ if(HAVE_LIBAIO) # unittest_bit_alloc add_executable(unittest_bit_alloc BitAllocator_test.cc + $ ) add_ceph_unittest(unittest_bit_alloc ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_bit_alloc) target_link_libraries(unittest_bit_alloc os global) add_executable(unittest_alloc Allocator_test.cc + $ ) add_ceph_unittest(unittest_alloc ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_alloc) target_link_libraries(unittest_alloc os global) diff --git a/src/test/objectstore/TestRocksdbOptionParse.cc b/src/test/objectstore/TestRocksdbOptionParse.cc index d58f42c39252..f83740ae69e5 100644 --- a/src/test/objectstore/TestRocksdbOptionParse.cc +++ b/src/test/objectstore/TestRocksdbOptionParse.cc @@ -4,7 +4,6 @@ #include "rocksdb/env.h" #include "rocksdb/thread_status.h" #include "kv/RocksDBStore.h" -#include "test/unit.h" #include using namespace std; diff --git a/src/test/osd/CMakeLists.txt b/src/test/osd/CMakeLists.txt index 21686fafe3ec..f3079db5f77a 100644 --- a/src/test/osd/CMakeLists.txt +++ b/src/test/osd/CMakeLists.txt @@ -52,6 +52,7 @@ target_link_libraries(unittest_ecbackend osd global) # unittest_osdscrub add_executable(unittest_osdscrub TestOSDScrub.cc + $ ) add_ceph_unittest(unittest_osdscrub ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_osdscrub) target_link_libraries(unittest_osdscrub osd global ${CMAKE_DL_LIBS} os mon ${BLKID_LIBRARIES}) @@ -59,6 +60,7 @@ target_link_libraries(unittest_osdscrub osd global ${CMAKE_DL_LIBS} os mon ${BLK # unittest_pglog add_executable(unittest_pglog TestPGLog.cc + $ ) add_ceph_unittest(unittest_pglog ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_pglog) target_link_libraries(unittest_pglog osd global ${CMAKE_DL_LIBS} ${BLKID_LIBRARIES}) diff --git a/src/test/osd/TestOSDScrub.cc b/src/test/osd/TestOSDScrub.cc index 3cff0007f946..169aaea41d0f 100644 --- a/src/test/osd/TestOSDScrub.cc +++ b/src/test/osd/TestOSDScrub.cc @@ -27,7 +27,6 @@ #include "mon/MonClient.h" #include "common/ceph_argparse.h" #include "msg/Messenger.h" -#include "test/unit.h" class TestOSDScrub: public OSD { diff --git a/src/test/osd/TestPGLog.cc b/src/test/osd/TestPGLog.cc index d2b4657c5e12..e0bc434ea2fa 100644 --- a/src/test/osd/TestPGLog.cc +++ b/src/test/osd/TestPGLog.cc @@ -21,9 +21,9 @@ #include #include +#include "gtest/gtest.h" #include "osd/PGLog.h" #include "osd/OSDMap.h" -#include "test/unit.h" class PGLogTest : public ::testing::Test, protected PGLog { public: diff --git a/src/test/rgw/CMakeLists.txt b/src/test/rgw/CMakeLists.txt index 65b541f3c105..c8f47ff016d0 100644 --- a/src/test/rgw/CMakeLists.txt +++ b/src/test/rgw/CMakeLists.txt @@ -9,7 +9,9 @@ add_ceph_unittest(unittest_rgw_period_history ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ target_link_libraries(unittest_rgw_period_history rgw_a) # unitttest_rgw_compression -add_executable(unittest_rgw_compression test_rgw_compression.cc) +add_executable(unittest_rgw_compression + test_rgw_compression.cc + $) add_ceph_unittest(unittest_rgw_compression ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_rgw_compression) target_link_libraries(unittest_rgw_compression rgw_a) diff --git a/src/test/rgw/test_rgw_compression.cc b/src/test/rgw/test_rgw_compression.cc index 8e3720453a05..0720f3ce79a3 100644 --- a/src/test/rgw/test_rgw_compression.cc +++ b/src/test/rgw/test_rgw_compression.cc @@ -3,7 +3,6 @@ #include "gtest/gtest.h" #include "rgw/rgw_compression.h" -#include "test/unit.h" struct MockGetDataCB : public RGWGetDataCB { int handle_data(bufferlist& bl, off_t bl_ofs, off_t bl_len) override { diff --git a/src/test/signals.cc b/src/test/signals.cc index 24d72168f6a7..a66b75eb24c4 100644 --- a/src/test/signals.cc +++ b/src/test/signals.cc @@ -3,7 +3,7 @@ #include "global/signal_handler.h" #include "common/debug.h" -#include "test/unit.h" +#include "gtest/gtest.h" #include #include diff --git a/src/test/test_arch.cc b/src/test/test_arch.cc index e215e7033334..82c67aec2a20 100644 --- a/src/test/test_arch.cc +++ b/src/test/test_arch.cc @@ -21,7 +21,6 @@ #include "arch/arm.h" #include "global/global_context.h" #include "gtest/gtest.h" -#include "test/unit.h" #define FLAGS_SIZE 4096 diff --git a/src/test/test_snap_mapper.cc b/src/test/test_snap_mapper.cc index 512440913976..61664b66c968 100644 --- a/src/test/test_snap_mapper.cc +++ b/src/test/test_snap_mapper.cc @@ -9,7 +9,6 @@ #include "include/buffer.h" #include "common/map_cacher.hpp" #include "osd/SnapMapper.h" -#include "test/unit.h" #include "gtest/gtest.h" diff --git a/src/test/test_striper.cc b/src/test/test_striper.cc index cab2f7277841..200c2279ded4 100644 --- a/src/test/test_striper.cc +++ b/src/test/test_striper.cc @@ -1,6 +1,5 @@ #include "gtest/gtest.h" #include "global/global_context.h" -#include "test/unit.h" #include "osdc/Striper.h" diff --git a/src/test/test_workqueue.cc b/src/test/test_workqueue.cc index b5ec3e4bfc9d..ea19d060ee3b 100644 --- a/src/test/test_workqueue.cc +++ b/src/test/test_workqueue.cc @@ -2,7 +2,6 @@ #include "common/WorkQueue.h" #include "common/ceph_argparse.h" -#include "test/unit.h" TEST(WorkQueue, StartStop) { diff --git a/src/test/unit.cc b/src/test/unit.cc new file mode 100644 index 000000000000..5c877942b9fc --- /dev/null +++ b/src/test/unit.cc @@ -0,0 +1,54 @@ +// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- +// vim: ts=8 sw=2 smarttab +/* + * Ceph - scalable distributed file system + * + * Copyright (C) 2011 New Dream Network + * + * This is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software + * Foundation. See file COPYING. + * + */ + +#ifndef CEPH_UNIT_TEST_H +#define CEPH_UNIT_TEST_H + +#include "include/types.h" // FIXME: ordering shouldn't be important, but right + // now, this include has to come before the others. + +#include "common/ceph_argparse.h" +#include "common/code_environment.h" +#include "common/config.h" +#include "global/global_context.h" +#include "global/global_init.h" +#include "include/msgr.h" // for CEPH_ENTITY_TYPE_CLIENT +#include "gtest/gtest.h" + +#include + +/* + * You only need to include this file if you are testing Ceph internal code. If + * you are testing library code, the library init() interfaces will handle + * initialization for you. + */ +int main(int argc, char **argv) { + std::vector args(argv, argv + argc); + env_to_vec(args); + auto cct = global_init(NULL, args, + CEPH_ENTITY_TYPE_CLIENT, + CODE_ENVIRONMENT_UTILITY, 0); + common_init_finish(g_ceph_context); + + const char* env = getenv("CEPH_LIB"); + if (env) { + g_conf->set_val("erasure_code_dir", env, false, false); + g_conf->set_val("plugin_dir", env, false, false); + } + + ::testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +} + +#endif diff --git a/src/test/unit.h b/src/test/unit.h deleted file mode 100644 index 5c877942b9fc..000000000000 --- a/src/test/unit.h +++ /dev/null @@ -1,54 +0,0 @@ -// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- -// vim: ts=8 sw=2 smarttab -/* - * Ceph - scalable distributed file system - * - * Copyright (C) 2011 New Dream Network - * - * This is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License version 2.1, as published by the Free Software - * Foundation. See file COPYING. - * - */ - -#ifndef CEPH_UNIT_TEST_H -#define CEPH_UNIT_TEST_H - -#include "include/types.h" // FIXME: ordering shouldn't be important, but right - // now, this include has to come before the others. - -#include "common/ceph_argparse.h" -#include "common/code_environment.h" -#include "common/config.h" -#include "global/global_context.h" -#include "global/global_init.h" -#include "include/msgr.h" // for CEPH_ENTITY_TYPE_CLIENT -#include "gtest/gtest.h" - -#include - -/* - * You only need to include this file if you are testing Ceph internal code. If - * you are testing library code, the library init() interfaces will handle - * initialization for you. - */ -int main(int argc, char **argv) { - std::vector args(argv, argv + argc); - env_to_vec(args); - auto cct = global_init(NULL, args, - CEPH_ENTITY_TYPE_CLIENT, - CODE_ENVIRONMENT_UTILITY, 0); - common_init_finish(g_ceph_context); - - const char* env = getenv("CEPH_LIB"); - if (env) { - g_conf->set_val("erasure_code_dir", env, false, false); - g_conf->set_val("plugin_dir", env, false, false); - } - - ::testing::InitGoogleTest(&argc, argv); - return RUN_ALL_TESTS(); -} - -#endif