Tests: Optionally extend RunCMake.ExternalProject download server timeout

Some of the `RunCMake.ExternalProject` test cases use a download server
implemented in Python.  Normally we wait up to 30 seconds for it to
start.  However, on some machines running many tests concurrently, the
download server may take longer than that to start.  Add an undocumented
cache entry to use on those machines to extend the timeout.
This commit is contained in:
Brad King
2022-02-04 07:15:40 -05:00
parent 32afcf74af
commit 8809183d58
2 changed files with 7 additions and 1 deletions

View File

@@ -733,6 +733,9 @@ add_RunCMake_test(CPackInstallProperties)
if(XCODE_VERSION)
set(ExternalProject_ARGS -DXCODE_VERSION=${XCODE_VERSION})
endif()
if(CMake_TEST_RunCMake_ExternalProject_DOWNLOAD_SERVER_TIMEOUT)
list(APPEND ExternalProject_ARGS -DDOWNLOAD_SERVER_TIMEOUT=${CMake_TEST_RunCMake_ExternalProject_DOWNLOAD_SERVER_TIMEOUT})
endif()
add_RunCMake_test(ExternalProject)
add_RunCMake_test(FetchContent)
set(CTestCommandLine_ARGS -DPYTHON_EXECUTABLE=${PYTHON_EXECUTABLE})

View File

@@ -105,12 +105,15 @@ function(__ep_test_with_build_with_server testName)
if(EXISTS "${URL_FILE}")
file(REMOVE "${URL_FILE}")
endif()
if(NOT DOWNLOAD_SERVER_TIMEOUT)
set(DOWNLOAD_SERVER_TIMEOUT 30)
endif()
execute_process(
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/DownloadServer.py --file "${URL_FILE}" ${ARGN}
OUTPUT_FILE ${RunCMake_BINARY_DIR}/${testName}-python.txt
ERROR_FILE ${RunCMake_BINARY_DIR}/${testName}-python.txt
RESULT_VARIABLE result
TIMEOUT 30
TIMEOUT "${DOWNLOAD_SERVER_TIMEOUT}"
)
if(NOT result EQUAL 0)
message(FATAL_ERROR "Failed to start download server:\n ${result}")