1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144
|
set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS _GNU_SOURCE DONT_DEPRECATE_ERRNO)
if(BUILD_TESTING OR BUILD_FT_TESTS)
function(add_ft_test bin)
add_toku_test(ft ${bin} ${ARGN})
endfunction(add_ft_test)
function(add_ft_test_aux name bin)
add_toku_test_aux(ft ${name} ${bin} ${ARGN})
endfunction(add_ft_test_aux)
## get a list of the sources in this directory
file(GLOB srcs RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" *.cc)
set(tests)
foreach(src ${srcs})
get_filename_component(base ${src} NAME_WE)
list(APPEND tests ${base})
endforeach(src)
## this macro will remove the test from the list of source files so it
## doesn't end up getting the default test rule applied to it
macro(declare_custom_tests)
foreach(test ${ARGN})
list(REMOVE_ITEM tests ${test})
endforeach(test)
endmacro(declare_custom_tests)
declare_custom_tests(logcursor-fw logcursor-bw)
add_test(ft/logcursor-fw echo "logcursor-fw must be run manually (needs logs to iterate over).")
add_test(ft/logcursor-bw echo "logcursor-bw must be run manually (needs logs to iterate over).")
foreach(test ${tests})
add_executable(${test} ${test}.cc)
target_link_libraries(${test} ft ${LIBTOKUPORTABILITY})
set_target_properties(${test} PROPERTIES POSITION_INDEPENDENT_CODE ON)
add_space_separated_property(TARGET ${test} COMPILE_FLAGS -fvisibility=hidden)
endforeach(test)
## declare some tests that should be run with specific options
declare_custom_tests(test-assert)
add_ft_test_aux(test-assertA test-assert)
add_ft_test_aux(test-assertB test-assert notok)
set_tests_properties(ft/test-assertA ft/test-assertB PROPERTIES WILL_FAIL TRUE)
add_ft_test_aux(test-assertC test-assert ok)
setup_toku_test_properties(ft/test-assertC test-assertC)
declare_custom_tests(benchmark-test)
add_ft_test(benchmark-test -q 1)
add_ft_test_aux(benchmark-test_256 benchmark-test --valsize 256 --periter 131072 --verify --verify_period 4096 1)
declare_custom_tests(ftloader-test-merge-files-dbufio)
add_ft_test(ftloader-test-merge-files-dbufio -r 8000 -s)
declare_custom_tests(ftloader-test-extractor)
add_ft_test_aux(ftloader-test-extractor-1 ftloader-test-extractor -s -r 1000 --rowsets 1000 --asc)
add_ft_test_aux(ftloader-test-extractor-2 ftloader-test-extractor -s -r 1000 --rowsets 1000 --dsc)
add_ft_test_aux(ftloader-test-extractor-3 ftloader-test-extractor -s -r 1000 --rowsets 1000 --random)
add_ft_test_aux(ftloader-test-extractor-1a ftloader-test-extractor -s -r 1000 --rowsets 1000 --asc)
add_ft_test_aux(ftloader-test-extractor-2a ftloader-test-extractor -s -r 1000 --rowsets 1000 --dsc)
add_ft_test_aux(ftloader-test-extractor-3a ftloader-test-extractor -s -r 1000 --rowsets 1000 --random)
add_ft_test_aux(ftloader-test-extractor-4a ftloader-test-extractor -s -r 1000 --rowsets 3 --asc)
add_ft_test_aux(ftloader-test-extractor-5a ftloader-test-extractor -s -r 1000 --rowsets 3 --asc --asc-poison)
declare_custom_tests(ftloader-test-extractor-errors)
add_ft_test_aux(ftloader-test-extractor-errors-1 ftloader-test-extractor-errors -w -m -u -r 1)
add_ft_test_aux(ftloader-test-extractor-errors-2 ftloader-test-extractor-errors -m -r 10000)
declare_custom_tests(ftloader-test-writer)
add_ft_test_aux(ftloader-test-writer-1 ftloader-test-writer -r 1 -s)
add_ft_test_aux(ftloader-test-writer-1000 ftloader-test-writer -r 1000 -s)
add_ft_test_aux(ftloader-test-writer-100000 ftloader-test-writer -r 100000 -s)
add_ft_test_aux(ftloader-test-writer-1000000 ftloader-test-writer -r 1000000 -s)
add_ft_test_aux(ftloader-test-writer-1-x ftloader-test-writer -r 1 -s -x 42)
add_ft_test_aux(ftloader-test-writer-1000-x ftloader-test-writer -r 1000 -s -x 42)
add_ft_test_aux(ftloader-test-writer-100000-x ftloader-test-writer -r 100000 -s -x 42)
add_ft_test_aux(ftloader-test-writer-1000000-x ftloader-test-writer -r 1000000 -s -x 42)
declare_custom_tests(ftloader-test-writer-errors)
add_ft_test_aux(ftloader-test-writer-errors-1 ftloader-test-writer-errors -w -m -u -r 100000)
add_ft_test_aux(ftloader-test-writer-errors-2 ftloader-test-writer-errors -s -w -m -u -r 10000)
add_ft_test_aux(ftloader-test-writer-errors-3 ftloader-test-writer-errors -s -r 20000 --malloc_limit 0 --realloc_errors)
add_ft_test_aux(ftloader-test-writer-errors-4 ftloader-test-writer-errors -s -m --malloc_limit 0 -r 10000)
declare_custom_tests(ft-serialize-benchmark)
add_ft_test(ft-serialize-benchmark 92 200000)
declare_custom_tests(bnc-insert-benchmark)
add_ft_test(bnc-insert-benchmark 100 4096000 1000)
declare_custom_tests(cachetable-5097)
add_ft_test_aux(cachetable-5097-enabled cachetable-5097 enable_pe)
add_ft_test_aux(cachetable-5097-disabled cachetable-5097 disable_pe)
add_ft_test_aux(ftdump-test-generate ft-test)
add_test(NAME ft/ftdump-test
COMMAND $<TARGET_FILE:tokuftdump> "ftdump-test-generate.ctest-data"
)
set_tests_properties(ft/ftdump-test PROPERTIES
DEPENDS ft/ftdump-test-generate
REQUIRED_FILES "ftdump-test-generate.ctest-data"
)
## keyrange has some inequality assumptions that were broken by
## promotion, they seem benign but are complicated, so for now, skip
## this test, when we get some time, we should fix it and re-enable it.
list(REMOVE_ITEM tests keyrange)
foreach(test ${tests})
add_ft_test(${test})
endforeach(test)
set_property(TEST ft/upgrade_test_simple APPEND PROPERTY ENVIRONMENT "TOKUDB_DATA=${TOKUDB_DATA}")
declare_custom_tests(test-upgrade-recovery-logs)
file(GLOB upgrade_tests "${TOKUDB_DATA}/upgrade-recovery-logs-??-clean")
file(GLOB upgrade_tests "${CMAKE_CURRENT_SOURCE_DIR}/upgrade.data/upgrade-recovery-logs-??-clean")
foreach(test ${upgrade_tests})
get_filename_component(test_basename "${test}" NAME)
add_ft_test_aux(test-${test_basename} test-upgrade-recovery-logs ${test})
endforeach(test)
file(GLOB upgrade_tests "${TOKUDB_DATA}/upgrade-recovery-logs-??-dirty")
file(GLOB upgrade_tests "${CMAKE_CURRENT_SOURCE_DIR}/upgrade.data/upgrade-recovery-logs-??-dirty")
foreach(test ${upgrade_tests})
get_filename_component(test_basename "${test}" NAME)
add_ft_test_aux(test-${test_basename} test-upgrade-recovery-logs ${test})
endforeach(test)
## give some tests, that time out normally, 1 hour to complete
set(long_tests
ft/ftloader-test-extractor-3a
ft/log-test7
ft/recovery-bad-last-entry
ft/subblock-test-compression
ft/upgrade_test_simple
)
set_tests_properties(${long_tests} PROPERTIES TIMEOUT 3600)
## some take even longer, with valgrind
set(extra_long_tests
ft/benchmark-test
ft/benchmark-test_256
ft/is_empty
ft/subblock-test-checksum
)
set_tests_properties(${extra_long_tests} PROPERTIES TIMEOUT 7200)
endif(BUILD_TESTING OR BUILD_FT_TESTS)
|