Fix some bugs when testing opensds ansible
[stor4nfv.git] / src / ceph / src / test / CMakeLists.txt
1 include(AddCephTest)
2
3 set(UNITTEST_LIBS gmock_main gmock gtest ${CMAKE_THREAD_LIBS_INIT} ${CMAKE_DL_LIBS})
4 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")
5
6 add_library(unit-main OBJECT unit.cc)
7 set_source_files_properties(unit.cc PROPERTIES
8   COMPILE_FLAGS ${UNITTEST_CXX_FLAGS})
9
10 add_subdirectory(bench)
11 add_subdirectory(cls_hello)
12 add_subdirectory(cls_lock)
13 add_subdirectory(cls_log)
14 add_subdirectory(cls_numops)
15 add_subdirectory(cls_sdk)
16 if(WITH_RBD)
17   add_subdirectory(cls_journal)
18   add_subdirectory(cls_rbd)
19 endif(WITH_RBD)
20 add_subdirectory(cls_refcount)
21 add_subdirectory(cls_replica_log)
22 add_subdirectory(cls_rgw)
23 add_subdirectory(cls_statelog)
24 add_subdirectory(cls_version)
25 add_subdirectory(cls_lua)
26 add_subdirectory(common)
27 add_subdirectory(compressor)
28 add_subdirectory(crush)
29 add_subdirectory(direct_messenger)
30 add_subdirectory(encoding)
31 add_subdirectory(erasure-code)
32 add_subdirectory(filestore)
33 add_subdirectory(fs)
34 add_subdirectory(journal)
35 if(WITH_EMBEDDED)
36   add_subdirectory(libcephd)
37 endif(WITH_EMBEDDED)
38 add_subdirectory(libcephfs)
39 add_subdirectory(librados)
40 add_subdirectory(librados_test_stub)
41 add_subdirectory(libradosstriper)
42 if(WITH_RBD)
43   add_subdirectory(librbd)
44 endif(WITH_RBD)
45 add_subdirectory(messenger)
46 add_subdirectory(mds)
47 add_subdirectory(mon)
48 add_subdirectory(mgr)
49 add_subdirectory(msgr)
50 add_subdirectory(ObjectMap)
51 add_subdirectory(objectstore)
52 add_subdirectory(os)
53 add_subdirectory(osd)
54 add_subdirectory(osdc)
55 add_subdirectory(pybind)
56 if(${WITH_RADOSGW})
57   add_subdirectory(rgw)
58 endif(${WITH_RADOSGW})
59 if(WITH_RBD)
60   add_subdirectory(rbd_mirror)
61 endif(WITH_RBD)
62 add_subdirectory(system)
63 if(WITH_FIO)
64   add_subdirectory(fio)
65 endif()
66
67 # test_timers
68 add_executable(ceph_test_timers
69   TestTimers.cc
70   )
71 target_link_libraries(ceph_test_timers global ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS})
72
73 # test_signal_handlers
74 add_executable(ceph_test_signal_handlers
75   TestSignalHandlers.cc
76   )
77 target_link_libraries(ceph_test_signal_handlers global ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS})
78
79 # test_rewrite_latency
80 add_executable(ceph_test_rewrite_latency
81   test_rewrite_latency.cc
82   )
83 target_link_libraries(ceph_test_rewrite_latency ceph-common
84   ${CMAKE_DL_LIBS}
85   ${CMAKE_THREAD_LIBS_INIT} ${CRYPTO_LIBS} m ${EXTRALIBS})
86
87 # test_crypt
88 add_executable(test_crypto
89   testcrypto.cc
90   )
91 target_link_libraries(test_crypto
92   global
93   ${CRYPTO_LIBS}
94   m
95   ${EXTRALIBS}
96   ${BLKID_LIBRARIES}
97   ${CMAKE_DL_LIBS}
98   )
99
100 add_executable(test_build_libcommon buildtest_skeleton.cc)
101 target_link_libraries(test_build_libcommon ceph-common pthread ${CRYPTO_LIBS} ${EXTRALIBS})
102
103 if(WITH_RADOSGW)
104   add_executable(test_build_librgw buildtest_skeleton.cc)
105   target_link_libraries(test_build_librgw rgw_a pthread ${CRYPTO_LIBS} ${EXTRALIBS})
106 endif(WITH_RADOSGW)
107
108 if(WITH_LIBCEPHFS)
109   # From src/test/Makefile-client.am: I dont get this one... testing the osdc build but link in libcephfs?
110   add_executable(test_build_libcephfs buildtest_skeleton.cc)
111   target_link_libraries(test_build_libcephfs cephfs pthread ${CRYPTO_LIBS} ${EXTRALIBS})
112 endif(WITH_LIBCEPHFS)
113
114 add_executable(test_build_librados buildtest_skeleton.cc)
115 target_link_libraries(test_build_librados librados pthread ${CRYPTO_LIBS} ${EXTRALIBS} osdc osd os ceph-common cls_lock_client ${BLKID_LIBRARIES})
116
117 # bench_log
118 set(bench_log_srcs
119   bench_log.cc
120   )
121 add_executable(ceph_bench_log
122   ${bench_log_srcs}
123   )
124 target_link_libraries(ceph_bench_log global pthread rt ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS})
125
126 # ceph_test_mutate
127 add_executable(ceph_test_mutate
128   test_mutate.cc
129   )
130 target_link_libraries(ceph_test_mutate global librados ${BLKID_LIBRARIES} 
131   ${CMAKE_DL_LIBS})
132
133 # test_trans
134 add_executable(test_trans
135   test_trans.cc
136   )
137 target_link_libraries(test_trans os global ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS})
138
139 ## Benchmarks
140
141
142 # ceph_omapbench
143 set(omapbench_srcs
144   omap_bench.cc
145   )
146 add_executable(ceph_omapbench
147   ${omapbench_srcs}
148   )
149 target_link_libraries(ceph_omapbench
150   librados
151   Boost::program_options
152   global
153   ${BLKID_LIBRARIES}
154   ${CMAKE_DL_LIBS}
155   )
156
157 if(WITH_KVS)
158   # ceph_kvstorebench
159   set(kvstorebench_srcs
160     kv_store_bench.cc
161     ${CMAKE_SOURCE_DIR}/src/key_value_store/kv_flat_btree_async.cc
162     )
163   add_executable(ceph_kvstorebench ${kvstorebench_srcs})
164   target_link_libraries(ceph_kvstorebench librados global ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS})
165   install(TARGETS ceph_kvstorebench DESTINATION bin)
166 endif(WITH_KVS)
167
168 # ceph_objectstore_bench
169 add_executable(ceph_objectstore_bench objectstore_bench.cc)
170 target_link_libraries(ceph_objectstore_bench os global ${BLKID_LIBRARIES})
171
172 if(${WITH_RADOSGW})
173   # test_cors
174   set(test_cors_srcs test_cors.cc)
175   add_executable(test_cors
176     ${test_cors_srcs}
177     )
178   target_link_libraries(test_cors
179     librados
180     rgw_a
181     global
182     ${BLKID_LIBRARIES}
183     ${CURL_LIBRARIES}
184     ${EXPAT_LIBRARIES}
185     ${CMAKE_DL_LIBS} ${UNITTEST_LIBS})
186   set_target_properties(test_cors PROPERTIES COMPILE_FLAGS
187     ${UNITTEST_CXX_FLAGS})
188
189   # ceph_test_cls_rgw_meta
190   set(test_cls_rgw_meta_srcs test_rgw_admin_meta.cc)
191   add_executable(ceph_test_cls_rgw_meta
192     ${test_cls_rgw_meta_srcs}
193     )
194   target_link_libraries(ceph_test_cls_rgw_meta
195     librados
196     rgw_a
197     global
198     cls_version_client
199     cls_log_client
200     cls_statelog_client
201     cls_refcount_client
202     cls_rgw_client
203     cls_user_client
204     cls_lock_client
205     Boost::regex
206     ${BLKID_LIBRARIES}
207     ${CURL_LIBRARIES}
208     ${EXPAT_LIBRARIES}
209     ${CMAKE_DL_LIBS} ${UNITTEST_LIBS} ${CRYPTO_LIBS})
210   set_target_properties(ceph_test_cls_rgw_meta PROPERTIES
211     COMPILE_FLAGS ${UNITTEST_CXX_FLAGS})
212
213   install(TARGETS
214     ceph_test_cls_rgw_meta
215     DESTINATION ${CMAKE_INSTALL_BINDIR})
216
217   # ceph_test_cls_rgw_log
218   set(ceph_test_cls_rgw_log_srcs
219     test_rgw_admin_log.cc
220     )
221   add_executable(ceph_test_cls_rgw_log
222     ${ceph_test_cls_rgw_log_srcs}
223     )
224   target_link_libraries(ceph_test_cls_rgw_log
225     librados
226     rgw_a
227     global
228     cls_version_client
229     cls_log_client
230     cls_statelog_client
231     cls_refcount_client
232     cls_rgw_client
233     cls_user_client
234     cls_lock_client
235     Boost::regex
236     ${BLKID_LIBRARIES}
237     ${CURL_LIBRARIES}
238     ${EXPAT_LIBRARIES}
239     ${CMAKE_DL_LIBS}
240     ${UNITTEST_LIBS}
241     ${EXTRALIBS}
242     ${CRYPTO_LIBS}
243     )
244   set_target_properties(ceph_test_cls_rgw_log PROPERTIES COMPILE_FLAGS
245     ${UNITTEST_CXX_FLAGS})
246
247   # ceph_test_cls_rgw_opstate
248   set(ceph_test_cls_rgw_opstate_srcs test_rgw_admin_opstate.cc)
249   add_executable(ceph_test_cls_rgw_opstate
250     ${ceph_test_cls_rgw_opstate_srcs}
251     )
252   target_link_libraries(ceph_test_cls_rgw_opstate
253     rgw_a
254     librados
255     cls_version_client
256     cls_log_client
257     cls_statelog_client
258     cls_timeindex_client
259     cls_refcount_client
260     cls_rgw_client
261     cls_user_client
262     cls_lock_client
263     global
264     ${BLKID_LIBRARIES}
265     ${CURL_LIBRARIES}
266     ${EXPAT_LIBRARIES}
267     ${CMAKE_DL_LIBS}
268     ${UNITTEST_LIBS}
269     ${CRYPTO_LIBS}
270     ${EXTRALIBS}
271     )
272   set_target_properties(ceph_test_cls_rgw_opstate PROPERTIES
273     COMPILE_FLAGS ${UNITTEST_CXX_FLAGS})
274
275 # ceph_test_librgw_file (nfs-like RGW interface)
276 add_executable(ceph_test_librgw_file
277   librgw_file.cc
278   )
279 set_target_properties(ceph_test_librgw_file PROPERTIES COMPILE_FLAGS
280   ${UNITTEST_CXX_FLAGS})
281 if(WITH_RADOSGW_FCGI_FRONTEND)
282 target_include_directories(ceph_test_librgw_file PRIVATE ${FCGI_INCLUDE_DIR})
283 endif(WITH_RADOSGW_FCGI_FRONTEND)
284 target_link_libraries(ceph_test_librgw_file
285   rgw
286   librados
287   ceph-common
288   ${UNITTEST_LIBS}
289   ${EXTRALIBS}
290   )
291
292 # ceph_test_librgw_file_cd (just the rgw_file create-delete bucket ops)
293 add_executable(ceph_test_librgw_file_cd
294   librgw_file_cd.cc
295   )
296 set_target_properties(ceph_test_librgw_file_cd PROPERTIES COMPILE_FLAGS
297   ${UNITTEST_CXX_FLAGS})
298 target_link_libraries(ceph_test_librgw_file_cd
299   rgw
300   librados
301   ceph-common
302   ${UNITTEST_LIBS}
303   ${EXTRALIBS}
304   )
305
306 # ceph_test_librgw_file_gp (just the rgw_file get-put bucket ops)
307 add_executable(ceph_test_librgw_file_gp
308   librgw_file_gp.cc
309   )
310 set_target_properties(ceph_test_librgw_file_gp PROPERTIES COMPILE_FLAGS
311   ${UNITTEST_CXX_FLAGS})
312 target_link_libraries(ceph_test_librgw_file_gp
313   rgw
314   librados
315   ceph-common
316   ${UNITTEST_LIBS}
317   ${EXTRALIBS}
318   )
319
320 # ceph_test_librgw_file_nfsns (nfs namespace tests)
321 add_executable(ceph_test_librgw_file_nfsns
322   librgw_file_nfsns.cc
323   )
324 set_target_properties(ceph_test_librgw_file_nfsns PROPERTIES COMPILE_FLAGS
325   ${UNITTEST_CXX_FLAGS})
326 if(WITH_RADOSGW_FCGI_FRONTEND)
327 target_include_directories(ceph_test_librgw_file_nfsns PRIVATE ${FCGI_INCLUDE_DIR})
328 endif(WITH_RADOSGW_FCGI_FRONTEND)
329 target_link_libraries(ceph_test_librgw_file_nfsns
330   rgw
331   librados
332   ceph-common
333   ${UNITTEST_LIBS}
334   ${EXTRALIBS}
335   )
336
337 # ceph_test_librgw_file_aw (nfs write transaction [atomic write] tests)
338 add_executable(ceph_test_librgw_file_aw
339   librgw_file_aw.cc
340   )
341 set_target_properties(ceph_test_librgw_file_aw PROPERTIES COMPILE_FLAGS
342   ${UNITTEST_CXX_FLAGS})
343 target_link_libraries(ceph_test_librgw_file_aw
344   rgw
345   librados
346   ceph-common
347   ${UNITTEST_LIBS}
348   ${EXTRALIBS}
349   )
350
351 # ceph_test_librgw_file_marker (READDIR with string and uint64 offsets)
352 add_executable(ceph_test_librgw_file_marker
353   librgw_file_marker.cc
354   )
355 set_target_properties(ceph_test_librgw_file_marker PROPERTIES COMPILE_FLAGS
356   ${UNITTEST_CXX_FLAGS})
357 target_link_libraries(ceph_test_librgw_file_marker
358   rgw
359   librados
360   ceph-common
361   ${UNITTEST_LIBS}
362   ${EXTRALIBS}
363   )
364
365 # ceph_test_rgw_token
366 add_executable(ceph_test_rgw_token
367   test_rgw_token.cc
368   )
369 set_target_properties(ceph_test_rgw_token PROPERTIES COMPILE_FLAGS
370   ${UNITTEST_CXX_FLAGS})
371 target_link_libraries(ceph_test_rgw_token
372   rgw
373   os
374   global
375   ${UNITTEST_LIBS}
376   ${EXTRALIBS}
377   )
378
379 # librgw_file_gp (just the rgw_file get-put bucket ops)
380 add_executable(test_rgw_ldap
381   ${CMAKE_SOURCE_DIR}/src/rgw/rgw_ldap.cc
382   test_rgw_ldap.cc
383   )
384 set_target_properties(test_rgw_ldap PROPERTIES COMPILE_FLAGS
385   ${UNITTEST_CXX_FLAGS})
386 target_link_libraries(test_rgw_ldap
387   librados
388   ceph-common
389   ${OPENLDAP_LIBRARIES}
390   ${UNITTEST_LIBS}
391   )
392
393 endif(${WITH_RADOSGW})
394
395 # ceph_multi_stress_watch
396 add_executable(ceph_multi_stress_watch
397   multi_stress_watch.cc
398   )
399 target_link_libraries(ceph_multi_stress_watch librados global radostest
400   ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS})
401
402 #ceph_perf_local
403 add_executable(ceph_perf_local 
404   perf_local.cc
405   perf_helper.cc)
406 if(HAVE_SSE)
407   set(PERF_LOCAL_FLAGS ${SSE3_FLAGS})
408 endif(HAVE_SSE)
409 if(HAVE_NEON)
410   set(PERF_LOCAL_FLAGS ${ARM_NEON_FLAGS})
411 endif(HAVE_NEON)
412 if(PERF_LOCAL_FLAGS)
413   set_target_properties(ceph_perf_local PROPERTIES COMPILE_FLAGS
414     ${PERF_LOCAL_FLAGS})
415 endif()
416 target_link_libraries(ceph_perf_local os global ${UNITTEST_LIBS})
417
418 # ceph_xattr_bench
419 add_executable(ceph_xattr_bench
420   xattr_bench.cc
421   )
422 set_target_properties(ceph_xattr_bench PROPERTIES COMPILE_FLAGS
423   ${UNITTEST_CXX_FLAGS})
424 target_link_libraries(ceph_xattr_bench
425   os
426   ceph-common
427   ${UNITTEST_LIBS}
428   global
429   ${EXTRALIBS}
430   ${BLKID_LIBRARIES}
431   ${CMAKE_DL_LIBS}
432   )
433
434 install(TARGETS
435   ceph_bench_log
436   ceph_multi_stress_watch
437   ceph_objectstore_bench
438   ceph_omapbench
439   ceph_perf_local
440   ceph_xattr_bench
441   DESTINATION bin)
442
443 # ceph_test_filejournal
444 add_executable(ceph_test_filejournal
445   test_filejournal.cc
446   )
447 set_target_properties(ceph_test_filejournal PROPERTIES COMPILE_FLAGS
448   ${UNITTEST_CXX_FLAGS})
449 target_link_libraries(ceph_test_filejournal
450   os
451   ceph-common
452   ${UNITTEST_LIBS}
453   global
454   ${EXTRALIBS}
455   ${BLKID_LIBRARIES}
456   ${CMAKE_DL_LIBS}
457   ${EXTRALIBS}
458   )
459 install(TARGETS
460   ceph_test_filejournal
461   DESTINATION ${CMAKE_INSTALL_BINDIR})
462
463 # ceph_test_keys
464 add_executable(ceph_test_keys
465   testkeys.cc
466   )
467 target_link_libraries(ceph_test_keys mon global ${CMAKE_DL_LIBS})
468
469 # ceph_test_snap_mapper
470 add_executable(ceph_test_snap_mapper
471   test_snap_mapper.cc
472   $<TARGET_OBJECTS:unit-main>
473   )
474 target_link_libraries(ceph_test_snap_mapper osd global ${BLKID_LIBRARIES} ${UNITTEST_LIBS})
475 set_target_properties(ceph_test_snap_mapper PROPERTIES COMPILE_FLAGS ${UNITTEST_CXX_FLAGS})
476
477 add_executable(ceph_test_stress_watch
478   test_stress_watch.cc
479   )
480 set_target_properties(ceph_test_stress_watch PROPERTIES COMPILE_FLAGS
481   ${UNITTEST_CXX_FLAGS})
482 target_link_libraries(ceph_test_stress_watch
483   librados
484   ${UNITTEST_LIBS}
485   radostest
486   ${EXTRALIBS}
487   ${BLKID_LIBRARIES}
488   ${CMAKE_DL_LIBS}
489   )
490 install(TARGETS
491   ceph_test_stress_watch
492   DESTINATION ${CMAKE_INSTALL_BINDIR})
493
494 if(WITH_FUSE)
495   add_executable(ceph_test_cfuse_cache_invalidate
496     test_cfuse_cache_invalidate.cc
497     )
498 endif(WITH_FUSE)
499
500 if(${WITH_CEPHFS})
501   add_executable(test_c_headers
502     test_c_headers.c
503     )
504   target_link_libraries(test_c_headers
505     librados
506     cephfs)
507 endif(${WITH_CEPHFS})
508
509 if(HAVE_BLKID)
510   add_executable(ceph_test_get_blkdev_size
511     test_get_blkdev_size.cc
512     )
513   target_link_libraries(ceph_test_get_blkdev_size
514     ceph-common
515     pthread
516     ${EXTRALIBS}
517     ${BLKID_LIBRARIES}
518     ${CMAKE_DL_LIBS}
519     )
520 endif(HAVE_BLKID)
521
522 # ceph_test_admin_socket_output
523
524 add_executable(ceph_test_admin_socket_output
525   test_admin_socket_output.cc
526   admin_socket_output.cc
527   admin_socket_output_tests.cc
528   )
529 target_link_libraries(ceph_test_admin_socket_output
530   ceph-common
531   ${Boost_FILESYSTEM_LIBRARY}
532   )
533 install(TARGETS
534   ceph_test_admin_socket_output
535   DESTINATION ${CMAKE_INSTALL_BINDIR})
536
537 #make check starts here
538
539 #following dependencies are run inside make check unit tests
540 add_dependencies(tests
541   ceph-mon
542   ceph-mgr
543   ceph
544   ceph-authtool
545   get_command_descriptions
546   crushtool
547   ceph-conf
548   rados
549   ceph-mds
550   monmaptool
551   ceph-osd
552   ceph-dencoder
553   ceph-objectstore-tool
554   ceph-monstore-tool
555   osdmaptool
556   ceph_example
557   ceph_snappy
558   cls_lock
559   ceph_test_objectstore
560   ceph_erasure_code_non_regression
561   ceph_erasure_code
562   ceph-disk
563   cython_modules)
564 if(WITH_RBD)
565   add_dependencies(tests unittest_librbd rbd)
566   if(FREEBSD)
567     add_dependencies(tests rbd-ggate)
568   endif(FREEBSD)
569 endif(WITH_RBD)
570 if(WITH_RADOSGW)
571   add_dependencies(tests radosgw-admin)
572 endif(WITH_RADOSGW)
573 if(NOT FREEBSD)
574   add_dependencies(tests ceph-detect-init)
575 endif(NOT FREEBSD)
576
577 if(WITH_RBD)
578   add_ceph_test(run-rbd-unit-tests.sh ${CMAKE_CURRENT_SOURCE_DIR}/run-rbd-unit-tests.sh)
579   if(FREEBSD)
580     add_ceph_test(rbd-ggate.sh ${CMAKE_CURRENT_SOURCE_DIR}/rbd-ggate.sh)
581   endif(FREEBSD)
582 endif(WITH_RBD)
583 add_ceph_test(run-cli-tests ${CMAKE_CURRENT_SOURCE_DIR}/run-cli-tests)
584 add_ceph_test(test_objectstore_memstore.sh ${CMAKE_CURRENT_SOURCE_DIR}/test_objectstore_memstore.sh)
585
586 # buggy, see http://tracker.ceph.com/issues/20975
587 #add_ceph_test(test_pidfile.sh ${CMAKE_CURRENT_SOURCE_DIR}/test_pidfile.sh)
588
589 add_ceph_test(test_subman.sh ${CMAKE_CURRENT_SOURCE_DIR}/test_subman.sh)
590 add_ceph_test(smoke.sh ${CMAKE_CURRENT_SOURCE_DIR}/smoke.sh)
591 add_ceph_test(unittest_bufferlist.sh ${CMAKE_SOURCE_DIR}/src/unittest_bufferlist.sh)
592
593 add_test(NAME run-tox-ceph-disk COMMAND bash ${CMAKE_SOURCE_DIR}/src/ceph-disk/run-tox.sh)
594 add_test(NAME run-tox-ceph-detect-init COMMAND bash ${CMAKE_SOURCE_DIR}/src/ceph-detect-init/run-tox.sh)
595
596 set(CEPH_DISK_VIRTUALENV ${CEPH_BUILD_VIRTUALENV}/ceph-disk-virtualenv)
597 set(CEPH_DETECT_INIT_VIRTUALENV ${CEPH_BUILD_VIRTUALENV}/ceph-detect-init-virtualenv)
598
599 set_property(TEST 
600   run-tox-ceph-disk
601   run-tox-ceph-detect-init
602   PROPERTY ENVIRONMENT
603   CEPH_BUILD_DIR=${CMAKE_BINARY_DIR}
604   CEPH_ROOT=${CMAKE_SOURCE_DIR}
605   CEPH_BIN=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
606   CEPH_LIB=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
607   CEPH_BUILD_VIRTUALENV=${CEPH_BUILD_VIRTUALENV}
608   CEPH_DISK_VIRTUALENV=${CEPH_DISK_VIRTUALENV}
609   CEPH_DETECT_INIT_VIRTUALENV=${CEPH_DETECT_INIT_VIRTUALENV}
610   LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/lib
611   PATH=$ENV{PATH}:${CMAKE_RUNTIME_OUTPUT_DIRECTORY}:${CMAKE_SOURCE_DIR}/src
612   PYTHONPATH=${CMAKE_SOURCE_DIR}/src/pybind
613   )
614
615 # unittest_admin_socket
616 add_executable(unittest_admin_socket
617   admin_socket.cc
618   $<TARGET_OBJECTS:unit-main>
619   )
620 add_ceph_unittest(unittest_admin_socket ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_admin_socket)
621 target_link_libraries(unittest_admin_socket global) 
622
623 # unittest_encoding
624 add_executable(unittest_encoding
625   encoding.cc
626   )
627 add_ceph_unittest(unittest_encoding ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_encoding)
628 target_link_libraries(unittest_encoding ceph-common librados ${XIO_LIBRARY} pthread rt m ${BLKID_LIBRARIES})
629
630 # unittest_addrs
631 add_executable(unittest_addrs
632   test_addrs.cc
633   )
634 add_ceph_unittest(unittest_addrs ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_addrs)
635 target_link_libraries(unittest_addrs ceph-common librados ${XIO_LIBRARY} pthread rt m ${BLKID_LIBRARIES})
636
637 # unittest_workqueue
638 add_executable(unittest_workqueue
639   test_workqueue.cc
640   $<TARGET_OBJECTS:unit-main>
641   )
642 add_ceph_unittest(unittest_workqueue ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_workqueue)
643 target_link_libraries(unittest_workqueue global ${BLKID_LIBRARIES})
644
645 # unittest_striper
646 add_executable(unittest_striper
647   test_striper.cc
648   $<TARGET_OBJECTS:unit-main>
649   )
650 add_ceph_unittest(unittest_striper ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_striper)
651 target_link_libraries(unittest_striper global ${BLKID_LIBRARIES})
652
653 # unittest_prebufferedstreambuf
654 add_executable(unittest_prebufferedstreambuf
655   test_prebufferedstreambuf.cc
656   )
657 add_ceph_unittest(unittest_prebufferedstreambuf ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_prebufferedstreambuf)
658 target_link_libraries(unittest_prebufferedstreambuf global ${BLKID_LIBRARIES})
659
660 # unittest_str_list
661 add_executable(unittest_str_list
662   test_str_list.cc
663   )
664 add_ceph_unittest(unittest_str_list ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_str_list)
665 target_link_libraries(unittest_str_list global ${BLKID_LIBRARIES})
666
667 # unittest_log
668 add_executable(unittest_log
669   ${CMAKE_SOURCE_DIR}/src/log/test.cc
670   )
671 add_ceph_unittest(unittest_log ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_log)
672 target_link_libraries(unittest_log global)
673
674 # unittest_base64
675 add_executable(unittest_base64
676   base64.cc
677   )
678 add_ceph_unittest(unittest_base64 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_base64)
679 target_link_libraries(unittest_base64 global) 
680
681 # unittest_ceph_argparse
682 add_executable(unittest_ceph_argparse
683   ceph_argparse.cc
684   )
685 add_ceph_unittest(unittest_ceph_argparse ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_ceph_argparse)
686 target_link_libraries(unittest_ceph_argparse global)
687
688 # unittest_ceph_compatset
689 add_executable(unittest_ceph_compatset
690   ceph_compatset.cc
691   )
692 add_ceph_unittest(unittest_ceph_compatset ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_ceph_compatset)
693 target_link_libraries(unittest_ceph_compatset global)
694
695 # unittest_gather
696 add_executable(unittest_gather
697   gather.cc
698   $<TARGET_OBJECTS:unit-main>
699   )
700 add_ceph_unittest(unittest_gather ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_gather)
701 target_link_libraries(unittest_gather global)
702
703 # unittest_run_cmd
704 add_executable(unittest_run_cmd
705   run_cmd.cc
706   )
707 add_ceph_unittest(unittest_run_cmd ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_run_cmd)
708 target_link_libraries(unittest_run_cmd global)
709
710 # signals
711 add_executable(unittest_signals
712   signals.cc
713   $<TARGET_OBJECTS:unit-main>
714   )
715 add_ceph_unittest(unittest_signals ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_signals)
716 target_link_libraries(unittest_signals global)
717
718 # unittest_simple_spin
719 add_executable(unittest_simple_spin
720   simple_spin.cc
721   )
722 add_ceph_unittest(unittest_simple_spin ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_simple_spin)
723 target_link_libraries(unittest_simple_spin global)
724
725 # unittest_bufferlist
726 add_executable(unittest_bufferlist
727   bufferlist.cc
728   )
729 add_ceph_unittest(unittest_bufferlist ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_bufferlist)
730 target_link_libraries(unittest_bufferlist global)
731
732 # unittest_xlist
733 add_executable(unittest_xlist
734   test_xlist.cc
735   )
736 add_ceph_unittest(unittest_xlist ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_xlist)
737 target_link_libraries(unittest_xlist ceph-common ${XIO_LIBRARY})
738
739 # unittest_arch
740 add_executable(unittest_arch
741   test_arch.cc
742   $<TARGET_OBJECTS:unit-main>
743   )
744 add_ceph_unittest(unittest_arch ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_arch)
745 target_link_libraries(unittest_arch global)
746
747 # unittest_denc
748 add_executable(unittest_denc
749   test_denc.cc
750   )
751 add_ceph_unittest(unittest_denc ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_denc)
752 target_link_libraries(unittest_denc os global)
753
754 # unittest_mempool
755 add_executable(unittest_mempool
756   test_mempool.cc
757   )
758 add_ceph_unittest(unittest_mempool ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_mempool)
759 target_link_libraries(unittest_mempool global)
760
761 # unittest_features
762 add_executable(unittest_features
763   test_features.cc
764   )
765 add_ceph_unittest(unittest_features ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_features)
766 target_link_libraries(unittest_features global)
767
768 # unittest_crypto
769 add_executable(unittest_crypto
770   crypto.cc
771   $<TARGET_OBJECTS:unit-main>
772   )
773 add_ceph_unittest(unittest_crypto ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_crypto)
774 target_link_libraries(unittest_crypto global)
775
776 # unittest_crypto_init
777 add_executable(unittest_crypto_init
778   crypto_init.cc
779   )
780 add_ceph_unittest(unittest_crypto_init ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_crypto_init)
781 target_link_libraries(unittest_crypto_init global)
782
783 # unittest_perf_counters
784 add_executable(unittest_perf_counters
785   perf_counters.cc
786   )
787 add_ceph_unittest(unittest_perf_counters ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_perf_counters)
788 target_link_libraries(unittest_perf_counters global)
789
790 # unittest_ceph_crypto
791 add_executable(unittest_ceph_crypto
792   ceph_crypto.cc
793   )
794 add_ceph_unittest(unittest_ceph_crypto ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_ceph_crypto)
795 target_link_libraries(unittest_ceph_crypto global)
796
797 # unittest_utf8
798 add_executable(unittest_utf8
799   utf8.cc
800   )
801 add_ceph_unittest(unittest_utf8 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_utf8)
802 target_link_libraries(unittest_utf8 global)
803
804 # unittest_mime
805 add_executable(unittest_mime
806   mime.cc
807   )
808 add_ceph_unittest(unittest_mime ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_mime)
809 target_link_libraries(unittest_mime global)
810
811 # unittest_escape
812 add_executable(unittest_escape
813   escape.cc
814   )
815 add_ceph_unittest(unittest_escape ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_escape)
816 target_link_libraries(unittest_escape global)
817
818 # unittest_strtol
819 add_executable(unittest_strtol
820   strtol.cc
821   )
822 add_ceph_unittest(unittest_strtol ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_strtol)
823 target_link_libraries(unittest_strtol global)
824
825 # unittest_confutils
826 add_executable(unittest_confutils
827   confutils.cc
828   )
829 add_ceph_unittest(unittest_confutils ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_confutils)
830 target_link_libraries(unittest_confutils global)
831
832 # unittest_heartbeatmap
833 add_executable(unittest_heartbeatmap
834   heartbeat_map.cc
835   $<TARGET_OBJECTS:unit-main>
836   )
837 add_ceph_unittest(unittest_heartbeatmap ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_heartbeatmap)
838 target_link_libraries(unittest_heartbeatmap global ceph-common)
839
840 if(${WITH_RADOSGW})
841   # unittest_formatter
842   add_executable(unittest_formatter
843     formatter.cc
844     $<TARGET_OBJECTS:unit-main>
845     )
846   add_ceph_unittest(unittest_formatter ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_formatter)
847   target_link_libraries(unittest_formatter global)
848 endif(${WITH_RADOSGW})
849
850 # unittest_daemon_config
851 add_executable(unittest_daemon_config
852   daemon_config.cc
853   $<TARGET_OBJECTS:unit-main>
854   )
855 add_ceph_unittest(unittest_daemon_config ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_daemon_config)
856 target_link_libraries(unittest_daemon_config
857   ceph-common
858   global
859   ${BLKID_LIBRARIES}
860   ${EXTRALIBS}
861   )
862
863 if(WITH_LIBCEPHFS)
864 # unittest_libcephfs_config
865 add_executable(unittest_libcephfs_config
866   libcephfs_config.cc
867   )
868 add_ceph_unittest(unittest_libcephfs_config ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_libcephfs_config)
869 target_link_libraries(unittest_libcephfs_config cephfs)
870 endif(WITH_LIBCEPHFS)
871
872 if(WITH_RBD)
873 # unittest_rbd_replay
874 add_executable(unittest_rbd_replay
875   test_rbd_replay.cc)
876 add_ceph_unittest(unittest_rbd_replay ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_rbd_replay)
877 target_link_libraries(unittest_rbd_replay
878   librbd
879   librados
880   global
881   rbd_replay
882   rbd_replay_ios
883   ${BLKID_LIBRARIES}
884   )
885 endif(WITH_RBD)
886
887 # unittest_ipaddr
888 add_executable(unittest_ipaddr
889   test_ipaddr.cc)  
890 add_ceph_unittest(unittest_ipaddr ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_ipaddr)
891 target_link_libraries(unittest_ipaddr mon global)
892
893 # unittest_texttable
894 add_executable(unittest_texttable
895   test_texttable.cc
896   $<TARGET_OBJECTS:common_texttable_obj>
897   )
898 add_ceph_unittest(unittest_texttable ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_texttable)
899 target_link_libraries(unittest_texttable mon global)
900
901 # unittest_on_exit
902 add_executable(unittest_on_exit
903   on_exit.cc
904   )
905 add_ceph_unittest(unittest_on_exit ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_on_exit)
906 target_link_libraries(unittest_on_exit global)
907
908 # unittest_subprocess
909 add_executable(unittest_subprocess
910   test_subprocess.cc
911   )
912 add_ceph_unittest(unittest_subprocess ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_subprocess)
913 target_link_libraries(unittest_subprocess global)
914
915 # unittest_pageset
916 add_executable(unittest_pageset test_pageset.cc)
917 add_ceph_unittest(unittest_pageset ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest_pageset)
918 target_link_libraries(unittest_pageset global)
919
920 #make check ends here
921