CI: Run tests on Windows

This commit is contained in:
Luca Bacci 2025-02-04 18:52:50 +01:00
parent 08dcac510b
commit ce3a3e2d27
5 changed files with 448 additions and 3 deletions

View file

@ -373,14 +373,16 @@ mingw-64 build:
# For some reason, options are separated by newline instead of space, so we
# have to replace them first.
- $env:MESON_ARGS = $env:MESON_ARGS.replace("`n"," ")
# Gitlab executes PowerShell in docker, but VsDevCmd.bat is a batch script.
# Environment variables substitutions is done by PowerShell before calling
# cmd.exe, that's why we use $env:FOO instead of %FOO%
- cmd.exe /C "C:\BuildTools\Common7\Tools\VsDevCmd.bat -host_arch=amd64 -arch=$env:ARCH &&
meson subprojects update --reset &&
meson build $env:MESON_ARGS &&
ninja -C build"
meson setup build --prefix `"$pwd\bundle`" $env:MESON_ARGS &&
meson compile -C build &&
meson install -C build"
artifacts:
expire_in: "7 days"
when: "always"
@ -392,6 +394,9 @@ vs2019 shared amd64:
variables:
ARCH: 'amd64'
EXTRA_MESON_ARGS: '--default-library=shared'
artifacts:
paths:
- "*"
vs2019 static amd64:
extends: '.build windows'
@ -405,6 +410,68 @@ vs2019 shared x86:
ARCH: 'x86'
EXTRA_MESON_ARGS: '--default-library=shared'
.test vs2019:
dependencies:
- 'vs2019 shared amd64'
needs:
- 'vs2019 shared amd64'
extends:
- '.build windows'
stage: 'test'
artifacts:
when: 'always'
expire_in: "7 days"
paths:
- build/meson-logs/*
- build/test/*.log
- build/test/pdiff/*.log
- build/test/output
exclude:
- "build/test/**/*.cs"
- "build/test/**/*.trace"
test vs2019 win32:
extends: '.test vs2019'
script:
- $ErrorActionPreference = "Stop"
- $env:PATH = "$pwd\bundle\bin;" + $env:PATH
- $env:CAIRO_TEST_TARGET = "win32"
- $lines = (Get-Content .gitlab-ci\ignore-win32-dib-rgb24.txt)
- $env:CAIRO_TEST_IGNORE_win32_DIB_rgb24 = [string]::Join(',', $lines)
- $lines = (Get-Content .gitlab-ci\ignore-win32-dib-argb32.txt)
- $env:CAIRO_TEST_IGNORE_win32_DIB_argb32 = [string]::Join(',', $lines)
- $lines = (Get-Content .gitlab-ci\ignore-win32-ddb-rgb24.txt)
- $env:CAIRO_TEST_IGNORE_win32_DDB_rgb24 = [string]::Join(',', $lines)
- $lines = (Get-Content .gitlab-ci\ignore-win32-ddb-argb32.txt)
- $env:CAIRO_TEST_IGNORE_win32_DDB_argb32 = [string]::Join(',', $lines)
# This job may run on a different runner than the previous
# build step, and different runners have different working
# directories. For example:
# - C:/Users/Administrator/runner/builds
# - C:/gitlab-runner/builds
# So the <builddir>\test\srcdir link may point to nowhere.
# As a workaround, set the "srcdir" environment variable.
- $env:srcdir = "$pwd\test"
- cmd /C "C:\BuildTools\Common7\Tools\VsDevCmd.bat -host_arch=amd64 -arch=amd64 &&
cd build\test &&
cairo-test-suite"
artifacts:
when: 'always'
expire_in: "7 days"
paths:
- build/meson-logs/*
- build/test/*.log
- build/test/pdiff/*.log
- build/test/output
exclude:
- "build/test/**/*.cs"
- "build/test/**/*.trace"
android arm64 fedora:
# TODO: should probably build our own image here some day
# See https://gitlab.freedesktop.org/gstreamer/gstreamer/container_registry/7689 for current images

View file

@ -0,0 +1,72 @@
clear
clip-operator
clip-text
coverage-intersecting-triangles
coverage-triangles
culled-glyphs
extended-blend-alpha-mask
extended-blend-mask
font-matrix-translation
ft-show-glyphs-positioning
ft-show-glyphs-table
ft-text-antialias-none
ft-text-vertical-layout-type1
ft-text-vertical-layout-type3
get-path-extents
glyph-cache-pressure
halo
halo-transform
inverse-text
large-font
operator-clear
operator-source
operator-www
overlapping-glyphs
partial-clip-text-bottom
partial-clip-text-left
partial-clip-text-right
partial-clip-text-top
pthread-show-text
radial-gradient
radial-gradient-mask
radial-gradient-mask-source
radial-gradient-source
record-replay-extend-reflect
record-replay-extend-repeat
record-select-font-face
record-text-transform
record1414x-select-font-face
record1414x-text-transform
record2x-select-font-face
record2x-text-transform
record90-select-font-face
record90-text-transform
recordflip-select-font-face
recordflip-text-transform
recordflip-whole-select-font-face
recordflip-whole-text-transform
select-font-face
show-glyphs-advance
show-text-current-point
smask
smask-text
smp-glyph
subsurface
subsurface-scale
text-antialias-gray
text-antialias-none
text-antialias-subpixel
text-antialias-subpixel-bgr
text-antialias-subpixel-rgb
text-antialias-subpixel-vbgr
text-antialias-subpixel-vrgb
text-glyph-range
text-pattern
text-rotate
text-transform
text-unhinted-metrics
unbounded-operator
user-font-color
user-font-mask
user-font-proxy
user-font-rescale

View file

@ -0,0 +1,116 @@
a1-clip-fill-rule
big-empty-box
big-empty-triangle
big-little-box
bitmap-font
bug-361
bug-431
bug-source-cu
clear
clip-device-offset
clip-fill-rule-pixel-aligned
clip-operator
clip-text
coverage-intersecting-triangles
coverage-triangles
culled-glyphs
dash-zero-length
degenerate-path
device-offset
device-offset-positive
extended-blend-mask
fill-and-stroke
fill-empty
fill-missed-stop
finer-grained-fallbacks
font-matrix-translation
ft-show-glyphs-positioning
ft-show-glyphs-table
ft-text-antialias-none
ft-text-vertical-layout-type1
ft-text-vertical-layout-type3
get-path-extents
glyph-cache-pressure
gradient-alpha
gradient-constant-alpha
gradient-zero-stops
gradient-zero-stops-mask
halo
halo-transform
image-surface-source
inverse-text
large-font
linear-gradient-one-stop
mask-ctm
mask-ctm mask-surface-ctm
mask-surface-ctm
new-sub-path
nil-surface
operator-clear
operator-source
operator-www
overlapping-boxes
overlapping-glyphs
partial-clip-text-bottom
partial-clip-text-left
partial-clip-text-right
partial-clip-text-top
pass-through
pdf-surface-source
pixman-downscale-best-24
pixman-rotate
ps-surface-source
pthread-show-text
radial-gradient
radial-gradient-mask
radial-gradient-mask-source
radial-gradient-source
record-neg-extents-bounded
record-neg-extents-unbounded
record-replay-extend-none
record-replay-extend-pad
record-replay-extend-reflect
record-replay-extend-repeat
record-select-font-face
record-text-transform
record1414x-select-font-face
record1414x-text-transform
record2x-select-font-face
record2x-text-transform
record90-select-font-face
record90-text-transform
recordflip-select-font-face
recordflip-text-transform
recordflip-whole-select-font-face
recordflip-whole-text-transform
rel-path
scale-source-surface-paint
select-font-face
set-source
show-glyphs-advance
show-text-current-point
smask
smask-text
smp-glyph
source-surface-scale-paint
subsurface
subsurface-outside-target
subsurface-scale
text-antialias-gray
text-antialias-none
text-antialias-subpixel
text-antialias-subpixel-bgr
text-antialias-subpixel-rgb
text-antialias-subpixel-vbgr
text-antialias-subpixel-vrgb
text-glyph-range
text-pattern
text-rotate
text-transform
text-unhinted-metrics
thin-lines
unbounded-operator
user-font-color
user-font-mask
user-font-proxy
user-font-rescale

View file

@ -0,0 +1,73 @@
clear
clip-operator
clip-text
coverage-intersecting-triangles
coverage-triangles
culled-glyphs
extended-blend-alpha-mask
extended-blend-mask
fallback
font-matrix-translation
ft-show-glyphs-positioning
ft-show-glyphs-table
ft-text-antialias-none
ft-text-vertical-layout-type1
ft-text-vertical-layout-type3
get-path-extents
glyph-cache-pressure
halo
halo-transform
inverse-text
large-font
operator-clear
operator-source
operator-www
overlapping-glyphs
partial-clip-text-bottom
partial-clip-text-left
partial-clip-text-right
partial-clip-text-top
pthread-show-text
radial-gradient
radial-gradient-mask
radial-gradient-mask-source
radial-gradient-source
record-replay-extend-reflect
record-replay-extend-repeat
record-select-font-face
record-text-transform
record1414x-select-font-face
record1414x-text-transform
record2x-select-font-face
record2x-text-transform
record90-select-font-face
record90-text-transform
recordflip-select-font-face
recordflip-text-transform
recordflip-whole-select-font-face
recordflip-whole-text-transform
select-font-face
show-glyphs-advance
show-text-current-point
smask
smask-text
smp-glyph
subsurface
subsurface-scale
text-antialias-gray
text-antialias-none
text-antialias-subpixel
text-antialias-subpixel-bgr
text-antialias-subpixel-rgb
text-antialias-subpixel-vbgr
text-antialias-subpixel-vrgb
text-glyph-range
text-pattern
text-rotate
text-transform
text-unhinted-metrics
unbounded-operator
user-font-color
user-font-mask
user-font-proxy
user-font-rescale

View file

@ -0,0 +1,117 @@
a1-clip-fill-rule
big-empty-box
big-empty-triangle
big-little-box
bitmap-font
bug-361
bug-361 bug-431
bug-431
bug-source-cu
clear
clip-device-offset
clip-fill-rule-pixel-aligned
clip-operator
clip-text
coverage-intersecting-triangles
coverage-triangles
culled-glyphs
dash-zero-length
degenerate-path
device-offset
device-offset-positive
extended-blend-mask
fill-and-stroke
fill-empty
fill-missed-stop
finer-grained-fallbacks
font-matrix-translation
ft-show-glyphs-positioning
ft-show-glyphs-table
ft-text-antialias-none
ft-text-vertical-layout-type1
ft-text-vertical-layout-type3
get-path-extents
glyph-cache-pressure
gradient-alpha
gradient-constant-alpha
gradient-zero-stops
gradient-zero-stops-mask
halo
halo-transform
image-surface-source
inverse-text
large-font
linear-gradient-one-stop
mask-ctm
mask-ctm mask-surface-ctm
mask-surface-ctm
new-sub-path
nil-surface
operator-clear
operator-source
operator-www
overlapping-boxes
overlapping-glyphs
partial-clip-text-bottom
partial-clip-text-left
partial-clip-text-right
partial-clip-text-top
pass-through
pdf-surface-source
pixman-downscale-best-24
pixman-rotate
ps-surface-source
pthread-show-text
radial-gradient
radial-gradient-mask
radial-gradient-mask-source
radial-gradient-source
record-neg-extents-bounded
record-neg-extents-unbounded
record-replay-extend-none
record-replay-extend-pad
record-replay-extend-reflect
record-replay-extend-repeat
record-select-font-face
record-text-transform
record1414x-select-font-face
record1414x-text-transform
record2x-select-font-face
record2x-text-transform
record90-select-font-face
record90-text-transform
recordflip-select-font-face
recordflip-text-transform
recordflip-whole-select-font-face
recordflip-whole-text-transform
rel-path
scale-source-surface-paint
select-font-face
set-source
show-glyphs-advance
show-text-current-point
smask
smask-text
smp-glyph
source-surface-scale-paint
subsurface
subsurface-outside-target
subsurface-scale
text-antialias-gray
text-antialias-none
text-antialias-subpixel
text-antialias-subpixel-bgr
text-antialias-subpixel-rgb
text-antialias-subpixel-vbgr
text-antialias-subpixel-vrgb
text-glyph-range
text-pattern
text-rotate
text-transform
text-unhinted-metrics
thin-lines
unbounded-operator
user-font-color
user-font-mask
user-font-proxy
user-font-rescale