ci: Run cross tests on Windows.

A driver program is introduced to coordinate test running on Windows,
similarly to what "make test" does on Linux and macOS.
This commit is contained in:
Giovanni Mascellani
2023-09-26 11:20:39 +02:00
committed by Alexandre Julliard
parent f75bdd6e21
commit dbc5e7d07c
Notes: Alexandre Julliard 2023-10-31 22:37:34 +01:00
Approved-by: Henri Verbeet (@hverbeet)
Approved-by: Alexandre Julliard (@julliard)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/413
7 changed files with 278 additions and 6 deletions

View File

@@ -19,9 +19,10 @@ MoltenVK as the Vulkan driver. The llvmpipe and macOS jobs are
currently allowed to fail.
Additionally, MinGW is used to build PE binaries for both vkd3d and
its crosstests, for both 32 and 64 bit. These builds are not currently
tested (but the pipeline still fails if the compilation is not
successful).
its crosstests, for both 32 and 64 bit. The PE crosstests are executed
on Windows 10 to check that behavior imposed by the tests corresponds
to Microsoft's D3D12 implementation. The rendering backend is
currently Window's WARP software implementation.
The testing logs are available as CI artifacts, as well as the PE
modules built by the crosstest and MinGW jobs.
@@ -58,3 +59,6 @@ environment for running the tests. All the software required to
compile and run the tests will therefore have to be installed directly
on the host system. Complete instructions to setup the macOS are
currently not available.
Finally, a runner tagged with `win10-21h2' must be available and
submit jobs to a Windows 10 virtual machine.

View File

@@ -19,6 +19,9 @@ cd build
touch ../pipeline_failed
mkdir -p ../artifacts/$COMMIT
rsync -Rr config.log tests/*.exe ../artifacts/$COMMIT
rsync -Rr config.log tests/*.txt tests/*.exe ../artifacts/$COMMIT
# Make the driver easily available to the Windows CI job
cp tests/driver.cross64.exe ../artifacts
git reset --hard

35
gitlab/test.yml Normal file
View File

@@ -0,0 +1,35 @@
test-win-64:
stage: test
rules:
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
interruptible: true
needs:
- job: build-crosstest
tags:
- win10-21h2
script:
- ./artifacts/driver.cross64.exe
variables:
TEST_ARCH: "64"
artifacts:
when: always
paths:
- artifacts
test-win-32:
stage: test
rules:
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
interruptible: true
needs:
- job: build-crosstest
tags:
- win10-21h2
script:
- ./artifacts/driver.cross64.exe
variables:
TEST_ARCH: "32"
artifacts:
when: always
paths:
- artifacts