Merge pull request #6096 from Sonicadvance1/303

FEXMingwTests: Adds the ability to run the mingw tests
This commit is contained in:
LC authored and GitHub committed 2026-11-03 20:36:07 -05:00
commit 75df0f815b
2 files changed
+37 -10

No files matched your search

+2 -2
View File
@@ -3,7 +3,7 @@ import os
import sys
# NB: This script is run with the "-S" flag, and therefore it can only use the Python standard library.
def DoesFEXSupportAVX(mode):
def DoesFEXSupportAVX():
# Check if FEX indicates support for AVX
# Import this here lazily to save on startup time
@@ -95,7 +95,7 @@ fexecutable = sys.argv[7]
StartingFEXArgsOffset = 8
# If the test requires AVX and FEX doesn't support it, just pass the test and move on
if TestRequiresAVXSupport() and not DoesFEXSupportAVX(mode):
if mode == "guest" and TestRequiresAVXSupport() and not DoesFEXSupportAVX():
sys.exit(0)
# Open test expected information files and load in to dictionaries.
+35 -8
View File
@@ -32,14 +32,41 @@ file(GLOB_RECURSE TESTS_32_ONLY CONFIGURE_DEPENDS tests/*.32.cpp)
list(REMOVE_ITEM TESTS ${TESTS_64_ONLY})
list(REMOVE_ITEM TESTS ${TESTS_32_ONLY})
find_program(WINE_PATH wine)
function(AddTests Tests BinDirectory Bitness)
# TODO: Implement some form of test harness for mingw tests.
foreach(TEST ${Tests})
get_filename_component(TEST_NAME ${TEST} NAME_WE)
set(BIN_PATH "${CMAKE_CURRENT_BINARY_DIR}/${BinDirectory}/${TEST_NAME}.${Bitness}.exe")
set(TEST_CASE "${TEST_NAME}.${Bitness}")
# Add jit test case
add_test(NAME "${TEST_CASE}.mingw.tst"
COMMAND ${PYTHON_TEST_RUNNER} "${CMAKE_SOURCE_DIR}/Scripts/guest_test_runner.py"
"${CMAKE_CURRENT_SOURCE_DIR}/Known_Failures"
"${CMAKE_CURRENT_SOURCE_DIR}/Expected_Output"
"${CMAKE_CURRENT_SOURCE_DIR}/Disabled_Tests"
"${CMAKE_CURRENT_SOURCE_DIR}/Flake_Tests"
"${TEST_CASE}"
"host"
"${WINE_PATH}"
"${BIN_PATH}")
endforeach()
endfunction()
# Execute combined 32-bit and 64-bit tests.
AddTests("${TESTS}" "FEXMingwTests_64" 64)
AddTests("${TESTS}" "FEXMingwTests_32" 32)
# Execute tests that are only 64-bit.
AddTests("${TESTS_64_ONLY}" "FEXMingwTests_64" 64)
# Execute tests that are only 32-bit.
AddTests("${TESTS_32_ONLY}" "FEXMingwTests_32" 32)
# Only add the tests if a wine binary is found.
if (NOT WINE_PATH-NOTFOUND)
# Execute combined 32-bit and 64-bit tests.
AddTests("${TESTS}" "FEXMingwTests_64" 64)
AddTests("${TESTS}" "FEXMingwTests_32" 32)
# Execute tests that are only 64-bit.
AddTests("${TESTS_64_ONLY}" "FEXMingwTests_64" 64)
# Execute tests that are only 32-bit.
AddTests("${TESTS_32_ONLY}" "FEXMingwTests_32" 32)
endif()
add_custom_target(fex_mingw_tests
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
USES_TERMINAL
COMMAND "ctest" "--output-on-failure" "--timeout" "30" ${TEST_JOB_FLAG} "-R" "\.*\.mingw\.tst$$"
DEPENDS FEXMingwTests FEXMingwTests_32)