mirror of
https://github.com/FEX-Emu/FEX.git
synced 2026-10-29 04:01:27 +01:00
Merge pull request #880 from Sonicadvance1/github_label_testing
Support disabling unit tests based on runner label
This commit is contained in:
commit
d2f636893d
8 files changed
+73
-46
No files matched your search
@@ -25,6 +25,9 @@ jobs:
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Set runner label
|
||||
run: echo "runner_label=${{ matrix.arch[1] }}" >> $GITHUB_ENV
|
||||
|
||||
- name : submodule checkout
|
||||
# Need to update submodules
|
||||
run: git submodule update --init --depth 1
|
||||
|
||||
@@ -1350,6 +1350,7 @@ void OpDispatchBuilder::XCHGOp(OpcodeArgs) {
|
||||
|
||||
OrderedNode *Src = LoadSource(GPRClass, Op, Op->Src[0], Op->Flags, -1);
|
||||
if (DestIsMem(Op)) {
|
||||
HandledLock = Op->Flags & FEXCore::X86Tables::DecodeFlags::FLAG_LOCK;
|
||||
OrderedNode *Dest = LoadSource(GPRClass, Op, Op->Dest, Op->Flags, -1, false);
|
||||
|
||||
Dest = AppendSegmentOffset(Dest, Op->Flags);
|
||||
@@ -4375,7 +4376,7 @@ void OpDispatchBuilder::CMPXCHGOp(OpcodeArgs) {
|
||||
// This allows us to only hit the ZEXT case on failure
|
||||
OrderedNode *RAXResult = _Select(FEXCore::IR::COND_EQ,
|
||||
CASResult, Src3Lower,
|
||||
Src3, Src3Lower);
|
||||
Src3, Src1Lower);
|
||||
|
||||
// When the size is 4 we need to make sure not zext the GPR when the comparison fails
|
||||
_StoreContext(GPRClass, GPRSize, offsetof(FEXCore::Core::CPUState, gregs[FEXCore::X86State::REG_RAX]), RAXResult);
|
||||
|
||||
@@ -4,9 +4,9 @@ import subprocess
|
||||
import os.path
|
||||
from os import path
|
||||
|
||||
# Args: <Known Failures file> <DisabledTestsFile> <DisabledTestsTypeFile> <TestName> <Test Harness Executable> <Args>...
|
||||
# Args: <Known Failures file> <DisabledTestsFile> <DisabledTestsTypeFile> <DisabledTestsRunnerFile> <TestName> <Test Harness Executable> <Args>...
|
||||
|
||||
if (len(sys.argv) < 6):
|
||||
if (len(sys.argv) < 7):
|
||||
sys.exit()
|
||||
|
||||
known_failures = {}
|
||||
@@ -14,10 +14,11 @@ disabled_tests = {}
|
||||
known_failures_file = sys.argv[1]
|
||||
disabled_tests_file = sys.argv[2]
|
||||
disabled_tests_type_file = sys.argv[3]
|
||||
disabled_tests_runner_file = sys.argv[4]
|
||||
|
||||
current_test = sys.argv[4]
|
||||
runner = sys.argv[5]
|
||||
args_start_index = 6
|
||||
current_test = sys.argv[5]
|
||||
runner = sys.argv[6]
|
||||
args_start_index = 7
|
||||
|
||||
# Open the known failures file and add it to a dictionary
|
||||
with open(known_failures_file) as kff:
|
||||
@@ -33,6 +34,11 @@ if path.exists(disabled_tests_type_file):
|
||||
for line in dtf:
|
||||
disabled_tests[line.strip()] = 1
|
||||
|
||||
if path.exists(disabled_tests_runner_file):
|
||||
with open(disabled_tests_runner_file) as dtf:
|
||||
for line in dtf:
|
||||
disabled_tests[line.strip()] = 1
|
||||
|
||||
RunnerArgs = ["catchsegv", runner]
|
||||
# Add the rest of the arguments
|
||||
for i in range(len(sys.argv) - args_start_index):
|
||||
|
||||
@@ -55,6 +55,11 @@ foreach(ASM_SRC ${ASM_SOURCES})
|
||||
"-c irjit -n 500 --multiblock" "jit_500_m" "jit"
|
||||
)
|
||||
|
||||
set (RUNNER_DISABLED "${CMAKE_SOURCE_DIR}/unittests/ASM/Disabled_Tests")
|
||||
if (DEFINED ENV{runner_label})
|
||||
set (RUNNER_DISABLED "${CMAKE_SOURCE_DIR}/unittests/ASM/Disabled_Tests_$ENV{runner_label}")
|
||||
endif()
|
||||
|
||||
list(LENGTH TEST_ARGS ARG_COUNT)
|
||||
math(EXPR ARG_COUNT "${ARG_COUNT}-1")
|
||||
foreach(Index RANGE 0 ${ARG_COUNT} 3)
|
||||
@@ -72,6 +77,7 @@ foreach(ASM_SRC ${ASM_SOURCES})
|
||||
"${CMAKE_SOURCE_DIR}/unittests/32Bit_ASM/Known_Failures"
|
||||
"${CMAKE_SOURCE_DIR}/unittests/32Bit_ASM/Disabled_Tests"
|
||||
"${CMAKE_SOURCE_DIR}/unittests/32Bit_ASM/Disabled_Tests_${TEST_TYPE}"
|
||||
"${RUNNER_DISABLED}"
|
||||
"Test_32Bit_${REL_TEST_ASM}"
|
||||
"${CMAKE_BINARY_DIR}/Bin/TestHarnessRunner"
|
||||
${ARGS_LIST} "${OUTPUT_NAME}" "${OUTPUT_CONFIG_NAME}")
|
||||
|
||||
@@ -60,6 +60,11 @@ foreach(ASM_SRC ${ASM_SOURCES})
|
||||
)
|
||||
endif()
|
||||
|
||||
set (RUNNER_DISABLED "${CMAKE_SOURCE_DIR}/unittests/ASM/Disabled_Tests")
|
||||
if (DEFINED ENV{runner_label})
|
||||
set (RUNNER_DISABLED "${CMAKE_SOURCE_DIR}/unittests/ASM/Disabled_Tests_$ENV{runner_label}")
|
||||
endif()
|
||||
|
||||
list(LENGTH TEST_ARGS ARG_COUNT)
|
||||
math(EXPR ARG_COUNT "${ARG_COUNT}-1")
|
||||
foreach(Index RANGE 0 ${ARG_COUNT} 3)
|
||||
@@ -82,6 +87,7 @@ foreach(ASM_SRC ${ASM_SOURCES})
|
||||
"${CMAKE_SOURCE_DIR}/unittests/ASM/Known_Failures"
|
||||
"${CMAKE_SOURCE_DIR}/unittests/ASM/Disabled_Tests"
|
||||
"${CMAKE_SOURCE_DIR}/unittests/ASM/Disabled_Tests_${TEST_TYPE}"
|
||||
"${RUNNER_DISABLED}"
|
||||
"Test_${REL_TEST_ASM}"
|
||||
"${CMAKE_BINARY_DIR}/Bin/TestHarnessRunner"
|
||||
${ARGS_LIST} "${OUTPUT_NAME}" "${OUTPUT_CONFIG_NAME}")
|
||||
|
||||
@@ -23,43 +23,3 @@ Test_Primary/Primary_E9.asm
|
||||
Test_X87/D9_F9.asm
|
||||
|
||||
Test_X87/D9_F2.asm
|
||||
|
||||
# Doesn't support unaligned on armv8.0
|
||||
Test_TwoByte/0F_B0_2.asm
|
||||
Test_TwoByte/0F_B0_3.asm
|
||||
Test_TwoByte/0F_B0_4.asm
|
||||
Test_TwoByte/0F_B0_5.asm
|
||||
Test_TwoByte/0F_B0_6.asm
|
||||
Test_TwoByte/0F_B0_7.asm
|
||||
Test_Secondary/09_XX_01_7.asm
|
||||
Test_Secondary/09_XX_01_8.asm
|
||||
Test_Secondary/09_XX_01_9.asm
|
||||
|
||||
# Doesn't support unaligned atomic memory ops on armv8.0
|
||||
Test_Primary/Primary_01_Atomic16.asm
|
||||
Test_Primary/Primary_01_Atomic32.asm
|
||||
Test_Primary/Primary_01_Atomic64.asm
|
||||
Test_Primary/Primary_09_Atomic16.asm
|
||||
Test_Primary/Primary_09_Atomic32.asm
|
||||
Test_Primary/Primary_09_Atomic64.asm
|
||||
Test_Primary/Primary_23_Atomic16.asm
|
||||
Test_Primary/Primary_23_Atomic32.asm
|
||||
Test_Primary/Primary_23_Atomic64.asm
|
||||
Test_Primary/Primary_29_Atomic16.asm
|
||||
Test_Primary/Primary_29_Atomic32.asm
|
||||
Test_Primary/Primary_29_Atomic64.asm
|
||||
Test_Primary/Primary_31_Atomic16.asm
|
||||
Test_Primary/Primary_31_Atomic32.asm
|
||||
Test_Primary/Primary_31_Atomic64.asm
|
||||
Test_Primary/Primary_87_Atomic16.asm
|
||||
Test_Primary/Primary_87_Atomic32.asm
|
||||
Test_Primary/Primary_87_Atomic64.asm
|
||||
Test_Primary/Primary_FF_0_Atomic16.asm
|
||||
Test_Primary/Primary_FF_0_Atomic32.asm
|
||||
Test_Primary/Primary_FF_0_Atomic64.asm
|
||||
Test_Primary/Primary_FF_1_Atomic16.asm
|
||||
Test_Primary/Primary_FF_1_Atomic32.asm
|
||||
Test_Primary/Primary_FF_1_Atomic64.asm
|
||||
Test_TwoByte/0F_C0_Atomic16.asm
|
||||
Test_TwoByte/0F_C0_Atomic32.asm
|
||||
Test_TwoByte/0F_C0_Atomic64.asm
|
||||
@@ -0,0 +1,39 @@
|
||||
# Doesn't support unaligned on armv8.0
|
||||
Test_TwoByte/0F_B0_2.asm
|
||||
Test_TwoByte/0F_B0_3.asm
|
||||
Test_TwoByte/0F_B0_4.asm
|
||||
Test_TwoByte/0F_B0_5.asm
|
||||
Test_TwoByte/0F_B0_6.asm
|
||||
Test_TwoByte/0F_B0_7.asm
|
||||
Test_Secondary/09_XX_01_7.asm
|
||||
Test_Secondary/09_XX_01_8.asm
|
||||
Test_Secondary/09_XX_01_9.asm
|
||||
|
||||
# Doesn't support unaligned atomic memory ops on armv8.0
|
||||
Test_Primary/Primary_01_Atomic16.asm
|
||||
Test_Primary/Primary_01_Atomic32.asm
|
||||
Test_Primary/Primary_01_Atomic64.asm
|
||||
Test_Primary/Primary_09_Atomic16.asm
|
||||
Test_Primary/Primary_09_Atomic32.asm
|
||||
Test_Primary/Primary_09_Atomic64.asm
|
||||
Test_Primary/Primary_23_Atomic16.asm
|
||||
Test_Primary/Primary_23_Atomic32.asm
|
||||
Test_Primary/Primary_23_Atomic64.asm
|
||||
Test_Primary/Primary_29_Atomic16.asm
|
||||
Test_Primary/Primary_29_Atomic32.asm
|
||||
Test_Primary/Primary_29_Atomic64.asm
|
||||
Test_Primary/Primary_31_Atomic16.asm
|
||||
Test_Primary/Primary_31_Atomic32.asm
|
||||
Test_Primary/Primary_31_Atomic64.asm
|
||||
Test_Primary/Primary_87_Atomic16.asm
|
||||
Test_Primary/Primary_87_Atomic32.asm
|
||||
Test_Primary/Primary_87_Atomic64.asm
|
||||
Test_Primary/Primary_FF_0_Atomic16.asm
|
||||
Test_Primary/Primary_FF_0_Atomic32.asm
|
||||
Test_Primary/Primary_FF_0_Atomic64.asm
|
||||
Test_Primary/Primary_FF_1_Atomic16.asm
|
||||
Test_Primary/Primary_FF_1_Atomic32.asm
|
||||
Test_Primary/Primary_FF_1_Atomic64.asm
|
||||
Test_TwoByte/0F_C0_Atomic16.asm
|
||||
Test_TwoByte/0F_C0_Atomic32.asm
|
||||
Test_TwoByte/0F_C0_Atomic64.asm
|
||||
@@ -26,6 +26,11 @@ foreach(IR_SRC ${IR_SOURCES})
|
||||
"-c irjit -n 500" "ir_jit" "jit"
|
||||
)
|
||||
|
||||
set (RUNNER_DISABLED "${CMAKE_SOURCE_DIR}/unittests/ASM/Disabled_Tests")
|
||||
if (DEFINED ENV{runner_label})
|
||||
set (RUNNER_DISABLED "${CMAKE_SOURCE_DIR}/unittests/ASM/Disabled_Tests_$ENV{runner_label}")
|
||||
endif()
|
||||
|
||||
list(LENGTH TEST_ARGS ARG_COUNT)
|
||||
math(EXPR ARG_COUNT "${ARG_COUNT}-1")
|
||||
foreach(Index RANGE 0 ${ARG_COUNT} 3)
|
||||
@@ -46,6 +51,7 @@ foreach(IR_SRC ${IR_SOURCES})
|
||||
"${CMAKE_SOURCE_DIR}/unittests/IR/Known_Failures"
|
||||
"${CMAKE_SOURCE_DIR}/unittests/IR/Disabled_Tests"
|
||||
"${CMAKE_SOURCE_DIR}/unittests/IR/Disabled_Tests_${TEST_TYPE}"
|
||||
"${RUNNER_DISABLED}"
|
||||
"Test_${IR_NAME}"
|
||||
"${CMAKE_BINARY_DIR}/Bin/IRLoader"
|
||||
${ARGS_LIST} "${IR_SRC}" "${OUTPUT_CONFIG_NAME}")
|
||||
|
||||
Reference in new issue
Block a user