You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
94 lines
2.6 KiB
94 lines
2.6 KiB
3 years ago
|
#!/bin/bash
|
||
|
|
||
|
set -e
|
||
|
set -o xtrace
|
||
|
|
||
|
CROSS_FILE=/cross_file-"$CROSS".txt
|
||
|
|
||
|
# We need to control the version of llvm-config we're using, so we'll
|
||
|
# tweak the cross file or generate a native file to do so.
|
||
|
if test -n "$LLVM_VERSION"; then
|
||
|
LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
||
|
echo -e "[binaries]\nllvm-config = '`which $LLVM_CONFIG`'" > native.file
|
||
|
if [ -n "$CROSS" ]; then
|
||
|
sed -i -e '/\[binaries\]/a\' -e "llvm-config = '`which $LLVM_CONFIG`'" $CROSS_FILE
|
||
|
fi
|
||
|
$LLVM_CONFIG --version
|
||
|
else
|
||
|
rm -f native.file
|
||
|
touch native.file
|
||
|
fi
|
||
|
|
||
|
# 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
|
||
|
|
||
|
# Only use GNU time if available, not any shell built-in command
|
||
|
case $CI_JOB_NAME in
|
||
|
# strace and wine don't seem to mix well
|
||
|
# ASAN leak detection is incompatible with strace
|
||
|
debian-mingw32-x86_64|*-asan*)
|
||
|
if test -f /usr/bin/time; then
|
||
|
MESON_TEST_ARGS+=--wrapper=$PWD/.gitlab-ci/meson/time.sh
|
||
|
fi
|
||
|
;;
|
||
|
*)
|
||
|
if test -f /usr/bin/time -a -f /usr/bin/strace; then
|
||
|
MESON_TEST_ARGS+=--wrapper=$PWD/.gitlab-ci/meson/time-strace.sh
|
||
|
fi
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
RET=0
|
||
|
RESULTS_DIR=$(pwd)/results/${TEST_SUITE:-build}
|
||
|
rm -rf _build
|
||
|
|
||
|
meson _build --native-file=native.file \
|
||
|
--wrap-mode=nofallback \
|
||
|
${CROSS+--cross "$CROSS_FILE"} \
|
||
|
-D prefix=$(pwd)/install \
|
||
|
-D libdir=lib \
|
||
|
-D buildtype=${BUILDTYPE:-debug} \
|
||
|
-D c_args="$(echo -n $C_ARGS)" \
|
||
|
-D cpp_args="$(echo -n $CPP_ARGS)" \
|
||
|
${DRI_LOADERS} \
|
||
|
${GALLIUM_ST} \
|
||
|
-D tests=true \
|
||
|
--fatal-meson-warnings \
|
||
|
${EXTRA_OPTION} && \
|
||
|
pushd _build && \
|
||
|
meson configure && \
|
||
|
ninja -j ${FDO_CI_CONCURRENT:-4} install || {
|
||
|
RET=$?
|
||
|
mkdir -p ${RESULTS_DIR}
|
||
|
mv -f meson-logs/* ${RESULTS_DIR}/
|
||
|
popd
|
||
|
exit ${RET}
|
||
|
}
|
||
|
|
||
|
if [ -n "${TEST_SUITE}" ]; then
|
||
|
VRENDTEST_USE_EGL_SURFACELESS=1 ninja -j ${FDO_CI_CONCURRENT:-4} test || RET=$?
|
||
|
mkdir -p ${RESULTS_DIR}
|
||
|
mv -f meson-logs/testlog.txt ${RESULTS_DIR}/
|
||
|
fi
|
||
|
|
||
|
popd
|
||
|
exit ${RET}
|