ci: Run tests on i386 cross builds

Yes, some tests fail, but we can turn those into XFAILs at meson time.
Better to keep the things that work working than not cover them at all.
Unfortunately XPASS results will not cause the build to fail until we
update CI to meson 0.51 or newer.

Reviewed-by: Daniel Stone <daniels@collabora.com>
This commit is contained in:
Adam Jackson 2019-09-16 20:44:12 -04:00
parent dd1dba80b9
commit 6ec1259423
4 changed files with 29 additions and 6 deletions

View File

@ -312,10 +312,7 @@ meson-i386:
VULKAN_DRIVERS: intel
DRI_DRIVERS: "swrast"
GALLIUM_DRIVERS: "iris"
# Disable i386 tests, because u_format_tests gets precision
# failures in dxtn unpacking
EXTRA_OPTION: >
-D build-tests=false
-D vulkan-overlay-layer=true
-D llvm=false
-D osmesa=classic

View File

@ -0,0 +1 @@
u_format_test

View File

@ -14,9 +14,32 @@ else
touch native.file
fi
CROSS_FILE=/cross_file-"$CROSS".txt
# cross-xfail-$CROSS, if it exists, contains a list of tests that are expected
# to fail for the $CROSS configuration, one per line. you can then mark those
# tests in their meson.build with:
#
# test(...,
# should_fail: meson.get_cross_property('xfail', '').contains(t),
# )
#
# where t is the name of the test, and the '' is the string to search when
# not cross-compiling (which is empty, because for amd64 everything is
# expected to pass).
if [ -n "$CROSS" ]; then
CROSS_XFAIL=.gitlab-ci/cross-xfail-"$CROSS"
if [ -s "$CROSS_XFAIL" ]; then
sed -i \
-e '/\[properties\]/a\' \
-e "xfail = '$(tr '\n' , < $CROSS_XFAIL)'" \
"$CROSS_FILE"
fi
fi
rm -rf _build
meson _build --native-file=native.file \
${CROSS+--cross /cross_file-$CROSS.txt} \
${CROSS+--cross "$CROSS_FILE"} \
-D prefix=`pwd`/install \
-D libdir=lib \
-D buildtype=${BUILDTYPE:-debug} \
@ -45,7 +68,7 @@ rm -rf install/include
# Strip the drivers in the artifacts to cut 80% of the artifacts size.
if [ -n "$CROSS" ]; then
STRIP=`sed -n -E "s/strip\s*=\s*'(.*)'/\1/p" /cross_file-$CROSS.txt`
STRIP=`sed -n -E "s/strip\s*=\s*'(.*)'/\1/p" "$CROSS_FILE"`
if [ -z "$STRIP" ]; then
echo "Failed to find strip command in cross file"
exit 1

View File

@ -31,6 +31,8 @@ foreach t : ['pipe_barrier_test', 'u_cache_test', 'u_half_test',
)
# u_cache_test is slow, and translate_test fails.
if not ['u_cache_test', 'translate_test'].contains(t)
test(t, exe, suite: 'gallium')
test(t, exe, suite: 'gallium',
should_fail : meson.get_cross_property('xfail', '').contains(t),
)
endif
endforeach