Imported Upstream version 2.61.2
[platform/upstream/glib.git] / .gitlab-ci / test-msys2.sh
1 #!/bin/bash
2
3 set -e
4
5 export PATH="/c/msys64/$MSYSTEM/bin:$PATH"
6 if [[ "$MSYSTEM" == "MINGW32" ]]; then
7     export MSYS2_ARCH="i686"
8 else
9     export MSYS2_ARCH="x86_64"
10 fi
11
12 pacman --noconfirm -Suy
13
14 pacman --noconfirm -S --needed \
15     base-devel \
16     mingw-w64-$MSYS2_ARCH-ccache \
17     mingw-w64-$MSYS2_ARCH-gettext \
18     mingw-w64-$MSYS2_ARCH-libffi \
19     mingw-w64-$MSYS2_ARCH-meson \
20     mingw-w64-$MSYS2_ARCH-pcre \
21     mingw-w64-$MSYS2_ARCH-python3 \
22     mingw-w64-$MSYS2_ARCH-python3-pip \
23     mingw-w64-$MSYS2_ARCH-toolchain \
24     mingw-w64-$MSYS2_ARCH-zlib \
25     mingw-w64-$MSYS2_ARCH-libelf
26
27 curl -O -J -L "https://github.com/linux-test-project/lcov/releases/download/v1.14/lcov-1.14.tar.gz"
28 echo "14995699187440e0ae4da57fe3a64adc0a3c5cf14feab971f8db38fb7d8f071a  lcov-1.14.tar.gz" | sha256sum -c
29 tar -xzf lcov-1.14.tar.gz
30 LCOV="$(pwd)/lcov-1.14/bin/lcov"
31
32 mkdir -p _coverage
33 mkdir -p _ccache
34 export CCACHE_BASEDIR="$(pwd)"
35 export CCACHE_DIR="${CCACHE_BASEDIR}/_ccache"
36 pip3 install --upgrade --user meson==0.49.2
37 export PATH="$HOME/.local/bin:$PATH"
38 export CFLAGS="-coverage -ftest-coverage -fprofile-arcs"
39 DIR="$(pwd)"
40
41 meson --werror --buildtype debug _build
42 cd _build
43 ninja
44
45 # FIXME: lcov doesn't support gcc9 yet:
46 # https://github.com/linux-test-project/lcov/issues/58
47 #"${LCOV}" \
48 #    --quiet \
49 #    --config-file "${DIR}"/.gitlab-ci/lcovrc \
50 #    --directory "${DIR}/_build" \
51 #    --capture \
52 #    --initial \
53 #    --output-file "${DIR}/_coverage/${CI_JOB_NAME}-baseline.lcov"
54
55 # FIXME: fix the test suite
56 meson test --timeout-multiplier ${MESON_TEST_TIMEOUT_MULTIPLIER} --no-suite flaky || true
57
58 python3 "${DIR}"/.gitlab-ci/meson-junit-report.py \
59         --project-name glib \
60         --job-id "${CI_JOB_NAME}" \
61         --output "${DIR}/_build/${CI_JOB_NAME}-report.xml" \
62         "${DIR}/_build/meson-logs/testlog.json"
63
64 # FIXME: see above
65 #"${LCOV}" \
66 #    --quiet \
67 #    --config-file "${DIR}"/.gitlab-ci/lcovrc \
68 #    --directory "${DIR}/_build" \
69 #    --capture \
70 #    --output-file "${DIR}/_coverage/${CI_JOB_NAME}.lcov"