Merge pull request #3281 from apple/release-6.3
Merge Release 6.3 into master
This commit is contained in:
commit
cf1ae52751
|
@ -151,10 +151,15 @@ if(NOT WIN32)
|
||||||
set(TEST_PACKAGE_ADD_DIRECTORIES "" CACHE STRING "A ;-separated list of directories. All files within each directory will be added to the test package")
|
set(TEST_PACKAGE_ADD_DIRECTORIES "" CACHE STRING "A ;-separated list of directories. All files within each directory will be added to the test package")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
function(create_test_package)
|
# This sets up a directory with the correctness files common to all correctness packages.
|
||||||
if(WIN32)
|
# This function should be called with the following arguments:
|
||||||
return()
|
#
|
||||||
endif()
|
# - OUT_DIR the directory where files will be staged
|
||||||
|
# - CONTEXT the type of correctness package being built (e.g. 'valgrind correctness')
|
||||||
|
function(stage_correctness_package)
|
||||||
|
set(oneValueArgs OUT_DIR CONTEXT)
|
||||||
|
cmake_parse_arguments(STAGE "" "${oneValueArgs}" "" "${ARGN}")
|
||||||
|
file(MAKE_DIRECTORY ${STAGE_OUT_DIR}/bin)
|
||||||
string(LENGTH "${CMAKE_SOURCE_DIR}/tests/" base_length)
|
string(LENGTH "${CMAKE_SOURCE_DIR}/tests/" base_length)
|
||||||
foreach(test IN LISTS TEST_NAMES)
|
foreach(test IN LISTS TEST_NAMES)
|
||||||
if(("${TEST_TYPE_${test}}" STREQUAL "simulation") AND
|
if(("${TEST_TYPE_${test}}" STREQUAL "simulation") AND
|
||||||
|
@ -162,12 +167,14 @@ function(create_test_package)
|
||||||
(NOT ${test} MATCHES ${TEST_PACKAGE_EXCLUDE}))
|
(NOT ${test} MATCHES ${TEST_PACKAGE_EXCLUDE}))
|
||||||
foreach(file IN LISTS TEST_FILES_${test})
|
foreach(file IN LISTS TEST_FILES_${test})
|
||||||
string(SUBSTRING ${file} ${base_length} -1 rel_out_file)
|
string(SUBSTRING ${file} ${base_length} -1 rel_out_file)
|
||||||
set(out_file ${CMAKE_BINARY_DIR}/packages/tests/${rel_out_file})
|
set(out_file ${STAGE_OUT_DIR}/tests/${rel_out_file})
|
||||||
list(APPEND out_files ${out_file})
|
list(APPEND test_files ${out_file})
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
OUTPUT ${out_file}
|
OUTPUT ${out_file}
|
||||||
DEPENDS ${file}
|
DEPENDS ${file}
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${file} ${out_file})
|
COMMAND ${CMAKE_COMMAND} -E copy ${file} ${out_file}
|
||||||
|
COMMENT "Copying ${STAGE_CONTEXT} test file ${rel_out_file}"
|
||||||
|
)
|
||||||
endforeach()
|
endforeach()
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
|
@ -181,68 +188,83 @@ function(create_test_package)
|
||||||
# SUBSTRING will fail
|
# SUBSTRING will fail
|
||||||
set(src_dir "${src_dir}/")
|
set(src_dir "${src_dir}/")
|
||||||
string(SUBSTRING ${src_dir} ${dir_len} -1 dest_dir)
|
string(SUBSTRING ${src_dir} ${dir_len} -1 dest_dir)
|
||||||
string(SUBSTRING ${file} ${dir_len} -1 out_file)
|
string(SUBSTRING ${file} ${dir_len} -1 rel_out_file)
|
||||||
list(APPEND external_files ${CMAKE_BINARY_DIR}/packages/${out_file})
|
set(out_file ${STAGE_OUT_DIR}/${rel_out_file})
|
||||||
file(COPY ${file} DESTINATION ${CMAKE_BINARY_DIR}/packages/${dest_dir})
|
list(APPEND external_files ${out_file})
|
||||||
|
add_custom_command(
|
||||||
|
OUTPUT ${out_file}
|
||||||
|
DEPENDS ${file}
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy ${file} ${out_file}
|
||||||
|
COMMENT "Copying ${STAGE_CONTEXT} external file ${file}"
|
||||||
|
)
|
||||||
endforeach()
|
endforeach()
|
||||||
endforeach()
|
endforeach()
|
||||||
if(NOT USE_VALGRIND)
|
list(APPEND package_files ${STAGE_OUT_DIR}/bin/fdbserver
|
||||||
set(tar_file ${CMAKE_BINARY_DIR}/packages/correctness-${CMAKE_PROJECT_VERSION}.tar.gz)
|
${STAGE_OUT_DIR}/bin/TestHarness.exe
|
||||||
add_custom_command(
|
${STAGE_OUT_DIR}/bin/TraceLogHelper.dll
|
||||||
OUTPUT ${tar_file}
|
${STAGE_OUT_DIR}/CMakeCache.txt
|
||||||
DEPENDS ${out_files}
|
)
|
||||||
${CMAKE_BINARY_DIR}/packages/bin/fdbserver
|
add_custom_command(
|
||||||
${CMAKE_BINARY_DIR}/packages/bin/TestHarness.exe
|
OUTPUT ${package_files}
|
||||||
${CMAKE_BINARY_DIR}/packages/bin/TraceLogHelper.dll
|
DEPENDS ${CMAKE_BINARY_DIR}/CMakeCache.txt
|
||||||
${CMAKE_SOURCE_DIR}/contrib/Joshua/scripts/correctnessTest.sh
|
${CMAKE_BINARY_DIR}/packages/bin/fdbserver
|
||||||
${CMAKE_SOURCE_DIR}/contrib/Joshua/scripts/correctnessTimeout.sh
|
${CMAKE_BINARY_DIR}/packages/bin/TestHarness.exe
|
||||||
${external_files}
|
${CMAKE_BINARY_DIR}/packages/bin/TraceLogHelper.dll
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/contrib/Joshua/scripts/correctnessTest.sh
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/CMakeCache.txt ${STAGE_OUT_DIR}
|
||||||
${CMAKE_BINARY_DIR}/packages/joshua_test
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/packages/bin/fdbserver
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/contrib/Joshua/scripts/correctnessTimeout.sh
|
${CMAKE_BINARY_DIR}/packages/bin/TestHarness.exe
|
||||||
${CMAKE_BINARY_DIR}/packages/joshua_timeout
|
${CMAKE_BINARY_DIR}/packages/bin/TraceLogHelper.dll
|
||||||
COMMAND ${CMAKE_COMMAND} -E tar cfz ${tar_file} ${CMAKE_BINARY_DIR}/packages/bin/fdbserver
|
${STAGE_OUT_DIR}/bin
|
||||||
${CMAKE_BINARY_DIR}/packages/bin/TestHarness.exe
|
COMMENT "Copying files for ${STAGE_CONTEXT} package"
|
||||||
${CMAKE_BINARY_DIR}/packages/bin/TraceLogHelper.dll
|
)
|
||||||
${CMAKE_BINARY_DIR}/packages/joshua_test
|
list(APPEND package_files ${test_files} ${external_files})
|
||||||
${CMAKE_BINARY_DIR}/packages/joshua_timeout
|
set(package_files ${package_files} PARENT_SCOPE)
|
||||||
${out_files}
|
endfunction()
|
||||||
${external_files}
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E remove ${CMAKE_BINARY_DIR}/packages/joshua_test ${CMAKE_BINARY_DIR}/packages/joshua_timeout
|
|
||||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/packages
|
|
||||||
COMMENT "Package correctness archive"
|
|
||||||
)
|
|
||||||
add_custom_target(package_tests ALL DEPENDS ${tar_file})
|
|
||||||
# seems make needs this dependency while this does nothing with ninja
|
|
||||||
add_dependencies(package_tests strip_only_fdbserver TestHarness)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
|
function(create_correctness_package)
|
||||||
|
if(WIN32)
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
set(out_dir "${CMAKE_BINARY_DIR}/correctness")
|
||||||
|
stage_correctness_package(OUT_DIR ${out_dir} CONTEXT "correctness")
|
||||||
|
set(tar_file ${CMAKE_BINARY_DIR}/packages/correctness-${CMAKE_PROJECT_VERSION}.tar.gz)
|
||||||
|
add_custom_command(
|
||||||
|
OUTPUT ${tar_file}
|
||||||
|
DEPENDS ${package_files}
|
||||||
|
${CMAKE_SOURCE_DIR}/contrib/Joshua/scripts/correctnessTest.sh
|
||||||
|
${CMAKE_SOURCE_DIR}/contrib/Joshua/scripts/correctnessTimeout.sh
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/contrib/Joshua/scripts/correctnessTest.sh
|
||||||
|
${out_dir}/joshua_test
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/contrib/Joshua/scripts/correctnessTimeout.sh
|
||||||
|
${out_dir}/joshua_timeout
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E tar cfz ${tar_file} *
|
||||||
|
WORKING_DIRECTORY ${out_dir}
|
||||||
|
COMMENT "Package correctness archive"
|
||||||
|
)
|
||||||
|
add_custom_target(package_tests ALL DEPENDS ${tar_file})
|
||||||
|
add_dependencies(package_tests strip_only_fdbserver TestHarness)
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
function(create_valgrind_correctness_package)
|
||||||
|
if(WIN32)
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
if(USE_VALGRIND)
|
if(USE_VALGRIND)
|
||||||
|
set(out_dir "${CMAKE_BINARY_DIR}/valgrind_correctness")
|
||||||
|
stage_correctness_package(OUT_DIR ${out_dir} CONTEXT "valgrind correctness")
|
||||||
set(tar_file ${CMAKE_BINARY_DIR}/packages/valgrind-${CMAKE_PROJECT_VERSION}.tar.gz)
|
set(tar_file ${CMAKE_BINARY_DIR}/packages/valgrind-${CMAKE_PROJECT_VERSION}.tar.gz)
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
OUTPUT ${tar_file}
|
OUTPUT ${tar_file}
|
||||||
DEPENDS ${out_files}
|
DEPENDS ${package_files}
|
||||||
${CMAKE_BINARY_DIR}/packages/bin/fdbserver
|
|
||||||
${CMAKE_BINARY_DIR}/packages/bin/TestHarness.exe
|
|
||||||
${CMAKE_BINARY_DIR}/packages/bin/TraceLogHelper.dll
|
|
||||||
${CMAKE_SOURCE_DIR}/contrib/Joshua/scripts/valgrindTest.sh
|
${CMAKE_SOURCE_DIR}/contrib/Joshua/scripts/valgrindTest.sh
|
||||||
${CMAKE_SOURCE_DIR}/contrib/Joshua/scripts/valgrindTimeout.sh
|
${CMAKE_SOURCE_DIR}/contrib/Joshua/scripts/valgrindTimeout.sh
|
||||||
${external_files}
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/contrib/Joshua/scripts/valgrindTest.sh
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/contrib/Joshua/scripts/valgrindTest.sh
|
||||||
${CMAKE_BINARY_DIR}/packages/joshua_test
|
${out_dir}/joshua_test
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/contrib/Joshua/scripts/valgrindTimeout.sh
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/contrib/Joshua/scripts/valgrindTimeout.sh
|
||||||
${CMAKE_BINARY_DIR}/packages/joshua_timeout
|
${out_dir}/joshua_timeout
|
||||||
COMMAND ${CMAKE_COMMAND} -E tar cfz ${tar_file}
|
COMMAND ${CMAKE_COMMAND} -E tar cfz ${tar_file} *
|
||||||
${CMAKE_BINARY_DIR}/packages/bin/fdbserver
|
WORKING_DIRECTORY ${out_dir}
|
||||||
${CMAKE_BINARY_DIR}/packages/bin/TestHarness.exe
|
COMMENT "Package valgrind correctness archive"
|
||||||
${CMAKE_BINARY_DIR}/packages/bin/TraceLogHelper.dll
|
|
||||||
${CMAKE_BINARY_DIR}/packages/joshua_test
|
|
||||||
${CMAKE_BINARY_DIR}/packages/joshua_timeout
|
|
||||||
${out_files}
|
|
||||||
${external_files}
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E remove ${CMAKE_BINARY_DIR}/packages/joshua_test ${CMAKE_BINARY_DIR}/packages/joshua_timeout
|
|
||||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/packages
|
|
||||||
COMMENT "Package correctness archive"
|
|
||||||
)
|
)
|
||||||
add_custom_target(package_valgrind_tests ALL DEPENDS ${tar_file})
|
add_custom_target(package_valgrind_tests ALL DEPENDS ${tar_file})
|
||||||
add_dependencies(package_valgrind_tests strip_only_fdbserver TestHarness)
|
add_dependencies(package_valgrind_tests strip_only_fdbserver TestHarness)
|
||||||
|
@ -262,7 +284,8 @@ function(package_bindingtester)
|
||||||
set(outfiles ${bdir}/fdbcli ${bdir}/fdbserver ${bdir}/${fdbcName} ${bdir}/joshua_test ${bdir}/joshua_timeout)
|
set(outfiles ${bdir}/fdbcli ${bdir}/fdbserver ${bdir}/${fdbcName} ${bdir}/joshua_test ${bdir}/joshua_timeout)
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
OUTPUT ${outfiles}
|
OUTPUT ${outfiles}
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/packages/bin/fdbcli
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/CMakeCache.txt
|
||||||
|
${CMAKE_BINARY_DIR}/packages/bin/fdbcli
|
||||||
${CMAKE_BINARY_DIR}/packages/bin/fdbserver
|
${CMAKE_BINARY_DIR}/packages/bin/fdbserver
|
||||||
${CMAKE_BINARY_DIR}/packages/lib/${fdbcName}
|
${CMAKE_BINARY_DIR}/packages/lib/${fdbcName}
|
||||||
${bdir}
|
${bdir}
|
||||||
|
@ -270,7 +293,7 @@ function(package_bindingtester)
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/contrib/Joshua/scripts/bindingTimeout.sh ${bdir}/joshua_timeout
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/contrib/Joshua/scripts/bindingTimeout.sh ${bdir}/joshua_timeout
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/contrib/Joshua/scripts/localClusterStart.sh ${bdir}/localClusterStart.sh
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/contrib/Joshua/scripts/localClusterStart.sh ${bdir}/localClusterStart.sh
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/contrib/Joshua/scripts/bindingTestScript.sh ${bdir}/bindingTestScript.sh
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/contrib/Joshua/scripts/bindingTestScript.sh ${bdir}/bindingTestScript.sh
|
||||||
COMMENT "Copy executes to bindingtester dir")
|
COMMENT "Copy executables and scripts to bindingtester dir")
|
||||||
file(GLOB_RECURSE test_files ${CMAKE_SOURCE_DIR}/bindings/*)
|
file(GLOB_RECURSE test_files ${CMAKE_SOURCE_DIR}/bindings/*)
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
OUTPUT "${CMAKE_BINARY_DIR}/bindingtester.touch"
|
OUTPUT "${CMAKE_BINARY_DIR}/bindingtester.touch"
|
||||||
|
|
|
@ -246,6 +246,9 @@ if(WITH_PYTHON)
|
||||||
|
|
||||||
verify_testing()
|
verify_testing()
|
||||||
if (NOT OPEN_FOR_IDE AND NOT WIN32)
|
if (NOT OPEN_FOR_IDE AND NOT WIN32)
|
||||||
create_test_package()
|
create_correctness_package()
|
||||||
|
if (USE_VALGRIND)
|
||||||
|
create_valgrind_correctness_package()
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
Loading…
Reference in New Issue