aboutsummaryrefslogtreecommitdiffstats
path: root/.gitlab-ci
diff options
context:
space:
mode:
Diffstat (limited to '.gitlab-ci')
-rw-r--r--.gitlab-ci/cross-xfail-i3861
-rwxr-xr-x.gitlab-ci/meson-build.sh27
2 files changed, 26 insertions, 2 deletions
diff --git a/.gitlab-ci/cross-xfail-i386 b/.gitlab-ci/cross-xfail-i386
new file mode 100644
index 00000000000..b4a3ea4d989
--- /dev/null
+++ b/.gitlab-ci/cross-xfail-i386
@@ -0,0 +1 @@
+u_format_test
diff --git a/.gitlab-ci/meson-build.sh b/.gitlab-ci/meson-build.sh
index 7e74095c4bb..cd0b62e4767 100755
--- a/.gitlab-ci/meson-build.sh
+++ b/.gitlab-ci/meson-build.sh
@@ -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