#!/bin/bash # Run the regression tests against an already built, patched Fcitx5 tree. set -euo pipefail ulimit -c 0 root=$(cd "$(dirname "$0")/.." && pwd) work=${WORK_DIR:-$root/build} version=${FCITX_VERSION:-$(pkg-config --modversion Fcitx5Core)} srcdir=${FCITX_SOURCE_DIR:-$work/fcitx5-$version} builddir=${FCITX_BUILD_DIR:-$work/cmake} out=$(mktemp -d "${TMPDIR:-/tmp}/m3ui-tests-XXXXXX") trap 'rm -f "$out/testm3uicandidatemenu" "$out/testiconthemecache" "$out/testm3uiresourceguard" "$out/testm3uiimageloader"; rmdir "$out"' EXIT flags=(-std=c++20 -Wall -Wextra -I"$srcdir/src/lib" -I"$builddir/src/lib") libs=(-L"$builddir/bin" -Wl,-rpath,"$builddir/bin" -lFcitx5Core -lFcitx5Config -lFcitx5Utils) for name in testm3uicandidatemenu testiconthemecache testm3uiresourceguard; do "${CXX:-c++}" "${flags[@]}" "$root/tests/$name.cpp" "${libs[@]}" -o "$out/$name" done read -r -a image_flags <<< "$(pkg-config --cflags --libs cairo gdk-pixbuf-2.0 librsvg-2.0)" "${CXX:-c++}" "${flags[@]}" "$root/tests/testm3uiimageloader.cpp" \ "$root/src/imageloader.cpp" "${image_flags[@]}" "${libs[@]}" -o "$out/testm3uiimageloader" for name in testm3uicandidatemenu testiconthemecache testm3uiresourceguard testm3uiimageloader; do echo ">> $name" timeout 15 "$out/$name" done