mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2026-07-15 15:19:52 +00:00
Codechange: explicitly pass the script folder for regression scripts
This commit is contained in:
@@ -5,12 +5,12 @@
|
|||||||
#
|
#
|
||||||
# create_regression(file1 ...)
|
# create_regression(file1 ...)
|
||||||
#
|
#
|
||||||
macro(create_regression)
|
macro(create_regression SCRIPT_FOLDER)
|
||||||
set(REGRESSION_SOURCE_FILES ${ARGN})
|
set(REGRESSION_SOURCE_FILES ${ARGN})
|
||||||
|
|
||||||
foreach(REGRESSION_SOURCE_FILE IN LISTS REGRESSION_SOURCE_FILES)
|
foreach(REGRESSION_SOURCE_FILE IN LISTS REGRESSION_SOURCE_FILES)
|
||||||
string(REPLACE "${CMAKE_SOURCE_DIR}/regression/" "" REGRESSION_SOURCE_FILE_NAME "${REGRESSION_SOURCE_FILE}")
|
string(REPLACE "${CMAKE_SOURCE_DIR}/regression/" "" REGRESSION_SOURCE_FILE_NAME "${REGRESSION_SOURCE_FILE}")
|
||||||
string(CONCAT REGRESSION_BINARY_FILE "${CMAKE_BINARY_DIR}/ai/" "${REGRESSION_SOURCE_FILE_NAME}")
|
string(CONCAT REGRESSION_BINARY_FILE "${CMAKE_BINARY_DIR}/${SCRIPT_FOLDER}/" "${REGRESSION_SOURCE_FILE_NAME}")
|
||||||
|
|
||||||
add_custom_command(OUTPUT ${REGRESSION_BINARY_FILE}
|
add_custom_command(OUTPUT ${REGRESSION_BINARY_FILE}
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy
|
COMMAND ${CMAKE_COMMAND} -E copy
|
||||||
@@ -38,6 +38,7 @@ macro(create_regression)
|
|||||||
-DOPENTTD_EXECUTABLE=$<TARGET_FILE:openttd>
|
-DOPENTTD_EXECUTABLE=$<TARGET_FILE:openttd>
|
||||||
-DEDITBIN_EXECUTABLE=${EDITBIN_EXECUTABLE}
|
-DEDITBIN_EXECUTABLE=${EDITBIN_EXECUTABLE}
|
||||||
-DREGRESSION_TEST=${REGRESSION_TEST_NAME}
|
-DREGRESSION_TEST=${REGRESSION_TEST_NAME}
|
||||||
|
-DSCRIPT_FOLDER=${SCRIPT_FOLDER}
|
||||||
-P "${CMAKE_SOURCE_DIR}/cmake/scripts/Regression.cmake"
|
-P "${CMAKE_SOURCE_DIR}/cmake/scripts/Regression.cmake"
|
||||||
DEPENDS openttd regression_${REGRESSION_TEST_NAME}_files
|
DEPENDS openttd regression_${REGRESSION_TEST_NAME}_files
|
||||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||||
@@ -50,6 +51,7 @@ macro(create_regression)
|
|||||||
-DOPENTTD_EXECUTABLE=$<TARGET_FILE:openttd>
|
-DOPENTTD_EXECUTABLE=$<TARGET_FILE:openttd>
|
||||||
-DEDITBIN_EXECUTABLE=${EDITBIN_EXECUTABLE}
|
-DEDITBIN_EXECUTABLE=${EDITBIN_EXECUTABLE}
|
||||||
-DREGRESSION_TEST=${REGRESSION_TEST_NAME}
|
-DREGRESSION_TEST=${REGRESSION_TEST_NAME}
|
||||||
|
-DSCRIPT_FOLDER=${SCRIPT_FOLDER}
|
||||||
-P "${CMAKE_SOURCE_DIR}/cmake/scripts/Regression.cmake"
|
-P "${CMAKE_SOURCE_DIR}/cmake/scripts/Regression.cmake"
|
||||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -7,11 +7,14 @@ cmake_minimum_required(VERSION 3.17)
|
|||||||
if(NOT REGRESSION_TEST)
|
if(NOT REGRESSION_TEST)
|
||||||
message(FATAL_ERROR "Script needs REGRESSION_TEST defined (tip: use -DREGRESSION_TEST=..)")
|
message(FATAL_ERROR "Script needs REGRESSION_TEST defined (tip: use -DREGRESSION_TEST=..)")
|
||||||
endif()
|
endif()
|
||||||
|
if(NOT SCRIPT_FOLDER)
|
||||||
|
message(FATAL_ERROR "Script needs SCRIPT_FOLDER defined (tip: use -DSCRIPT_FOLDER=..)")
|
||||||
|
endif()
|
||||||
if(NOT OPENTTD_EXECUTABLE)
|
if(NOT OPENTTD_EXECUTABLE)
|
||||||
message(FATAL_ERROR "Script needs OPENTTD_EXECUTABLE defined (tip: use -DOPENTTD_EXECUTABLE=..)")
|
message(FATAL_ERROR "Script needs OPENTTD_EXECUTABLE defined (tip: use -DOPENTTD_EXECUTABLE=..)")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(NOT EXISTS ai/${REGRESSION_TEST}/test.sav)
|
if(NOT EXISTS ${SCRIPT_FOLDER}/${REGRESSION_TEST}/test.sav)
|
||||||
message(FATAL_ERROR "Regression test ${REGRESSION_TEST} does not exist (tip: check regression folder for the correct spelling)")
|
message(FATAL_ERROR "Regression test ${REGRESSION_TEST} does not exist (tip: check regression folder for the correct spelling)")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@@ -35,7 +38,7 @@ endif()
|
|||||||
execute_process(COMMAND ${OPENTTD_EXECUTABLE}
|
execute_process(COMMAND ${OPENTTD_EXECUTABLE}
|
||||||
-x
|
-x
|
||||||
-c regression/regression.cfg
|
-c regression/regression.cfg
|
||||||
-g ai/${REGRESSION_TEST}/test.sav
|
-g ${SCRIPT_FOLDER}/${REGRESSION_TEST}/test.sav
|
||||||
-snull
|
-snull
|
||||||
-mnull
|
-mnull
|
||||||
-vnull:ticks=30000
|
-vnull:ticks=30000
|
||||||
@@ -77,7 +80,7 @@ string(REGEX REPLACE "\\\[script:[0-9]\\\]" "" REGRESSION_RESULT "${REGRESSION_R
|
|||||||
|
|
||||||
# Convert the output to a format that is expected (and more readable) by result.txt
|
# Convert the output to a format that is expected (and more readable) by result.txt
|
||||||
string(REPLACE "dbg: " "ERROR: " REGRESSION_RESULT "${REGRESSION_RESULT}")
|
string(REPLACE "dbg: " "ERROR: " REGRESSION_RESULT "${REGRESSION_RESULT}")
|
||||||
string(REPLACE "ERROR: [1] " "" REGRESSION_RESULT "${REGRESSION_RESULT}")
|
string(REGEX REPLACE "ERROR: \\\[18?\\\] " "" REGRESSION_RESULT "${REGRESSION_RESULT}")
|
||||||
string(REPLACE "[P] " "" REGRESSION_RESULT "${REGRESSION_RESULT}")
|
string(REPLACE "[P] " "" REGRESSION_RESULT "${REGRESSION_RESULT}")
|
||||||
string(REPLACE "[S] " "" REGRESSION_RESULT "${REGRESSION_RESULT}")
|
string(REPLACE "[S] " "" REGRESSION_RESULT "${REGRESSION_RESULT}")
|
||||||
string(REGEX REPLACE "dbg: ([^\n]*)\n?" "" REGRESSION_RESULT "${REGRESSION_RESULT}")
|
string(REGEX REPLACE "dbg: ([^\n]*)\n?" "" REGRESSION_RESULT "${REGRESSION_RESULT}")
|
||||||
@@ -88,7 +91,7 @@ string(REGEX REPLACE "ERROR: [12]([^\n]*)\n?" "" REGRESSION_RESULT "${REGRESSI
|
|||||||
string(REGEX REPLACE "ERROR: The first([^\n]*)\n?" "" REGRESSION_RESULT "${REGRESSION_RESULT}")
|
string(REGEX REPLACE "ERROR: The first([^\n]*)\n?" "" REGRESSION_RESULT "${REGRESSION_RESULT}")
|
||||||
|
|
||||||
# Read the expected result
|
# Read the expected result
|
||||||
file(READ ai/${REGRESSION_TEST}/result.txt REGRESSION_EXPECTED)
|
file(READ ${SCRIPT_FOLDER}/${REGRESSION_TEST}/result.txt REGRESSION_EXPECTED)
|
||||||
|
|
||||||
# Convert the string to a list
|
# Convert the string to a list
|
||||||
string(REPLACE "\n" ";" REGRESSION_RESULT "${REGRESSION_RESULT}")
|
string(REPLACE "\n" ";" REGRESSION_RESULT "${REGRESSION_RESULT}")
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
include(CreateRegression)
|
include(CreateRegression)
|
||||||
create_regression(
|
create_regression("ai"
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/info.nut
|
${CMAKE_CURRENT_SOURCE_DIR}/info.nut
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/main.nut
|
${CMAKE_CURRENT_SOURCE_DIR}/main.nut
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/require.nut
|
${CMAKE_CURRENT_SOURCE_DIR}/require.nut
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
include(CreateRegression)
|
include(CreateRegression)
|
||||||
create_regression(
|
create_regression("ai"
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/info.nut
|
${CMAKE_CURRENT_SOURCE_DIR}/info.nut
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/main.nut
|
${CMAKE_CURRENT_SOURCE_DIR}/main.nut
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/result.txt
|
${CMAKE_CURRENT_SOURCE_DIR}/result.txt
|
||||||
|
|||||||
Reference in New Issue
Block a user