tests/client: run "test-client.py" also for meson

This commit is contained in:
Thomas Haller 2021-03-15 10:59:24 +01:00
parent 019bc3233a
commit e643703418
No known key found for this signature in database
GPG Key ID: 29C2366E4DFC5728
5 changed files with 81 additions and 10 deletions

View File

@ -5185,27 +5185,21 @@ endif
###############################################################################
check-local-tests-client: src/nmcli/nmcli src/tests/client/test-client.py
mkdir -p "$(builddir)/src/tests/client/"
"$(builddir)/src/nmcli/nmcli" --version
GI_TYPELIB_PATH="$(abs_builddir)/src/libnm-client-impl$${GI_TYPELIB_PATH:+:$$GI_TYPELIB_PATH}" \
LD_LIBRARY_PATH="$(abs_builddir)/src/libnm-client-impl/.libs$${LD_LIBRARY_PATH:+:$$LD_LIBRARY_PATH}" \
NM_TEST_CLIENT_BUILDDIR="$(abs_builddir)" \
NM_TEST_CLIENT_NMCLI_PATH=src/nmcli/nmcli \
"$(PYTHON)" \
$(srcdir)/src/tests/client/test-client.py -v &> "$(builddir)/src/tests/client/test-client.log" && r=ok; \
cat "$(builddir)/src/tests/client/test-client.log"; \
test "$$r" = ok
"$(srcdir)/src/tests/client/test-client.sh" "$(builddir)" "$(srcdir)" "$(PYTHON)"
check_local += check-local-tests-client
CLEANFILES += src/tests/client/test-client.log
EXTRA_DIST += \
src/tests/client/test-client.sh \
src/tests/client/test-client.py \
src/tests/client/test-client.check-on-disk/test_001.expected \
src/tests/client/test-client.check-on-disk/test_002.expected \
src/tests/client/test-client.check-on-disk/test_003.expected \
src/tests/client/test-client.check-on-disk/test_004.expected \
\
src/tests/client/meson.build \
$(NULL)
###############################################################################

View File

@ -222,6 +222,8 @@ run_meson() {
_WITH_WERROR_VAL=""
fi
meson build \
\
-Dprefix="$PWD/INST" \
\
--warnlevel 2 \
$_WITH_WERROR_VAL \
@ -257,7 +259,10 @@ run_meson() {
\
#end
export NM_TEST_CLIENT_CHECK_L10N=1
ninja -C build
ninja -C build install
ninja -C build test
if _with_valgrind; then

View File

@ -116,5 +116,6 @@ if enable_tests
if enable_nm_cloud_setup
subdir('nm-cloud-setup/tests')
endif
subdir('tests/client')
subdir('contrib/tests')
endif

View File

@ -0,0 +1,12 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
test(
'check-local-tests-client',
find_program(join_paths(source_root, 'src/tests/client/test-client.sh')),
args: [
build_root,
source_root,
python.path(),
],
timeout: 120,
)

59
src/tests/client/test-client.sh Executable file
View File

@ -0,0 +1,59 @@
#!/bin/bash
set -e
die() {
printf '%s\n' "$@"
exit 1
}
if [ "$2" != "" ]; then
SRCDIR="$(realpath "$2")"
else
SRCDIR="$(realpath "$(dirname "$BASH_SOURCE")/../../..")"
fi
if [ "$1" != "" ]; then
BUILDDIR="$(realpath "$1")"
elif test -d "$SRCDIR/build" ; then
BUILDDIR="$(realpath "$SRCDIR/build")"
else
BUILDDIR="$SRCDIR"
fi
test -d "$BUILDDIR" || die "BUILDDIR \"$BUILDDIR\" does not exist?"
test -d "$SRCDIR" || die "SRCDIR \"$SRCDIR\" does not exist?"
if [ "$3" != "" ]; then
PYTHON="$3"
elif [ "$PYTHON" == "" ]; then
PYTHON="$(command -v python)" || die "python not found?"
fi
test -f "$BUILDDIR/src/nmcli/nmcli" || die "\"$BUILDDIR/src/nmcli/nmcli\" does not exist?"
if test -f "$BUILDDIR/src/libnm-client-impl/.libs/libnm.so" ; then
LIBDIR="$BUILDDIR/src/libnm-client-impl/.libs"
elif test -f "$BUILDDIR/src/libnm-client-impl/libnm.so" ; then
LIBDIR="$BUILDDIR/src/libnm-client-impl"
else
die "libnm.so does not exist under expected paths in \"$BUILDDIR/src/libnm-client-impl/{.,.libs}/\""
fi
mkdir -p "$BUILDDIR/src/tests/client/" || die "failure to create build output directory \"$BUILDDIR/src/tests/client/\""
export NM_TEST_CLIENT_NMCLI_PATH="$BUILDDIR/src/nmcli/nmcli"
export GI_TYPELIB_PATH="$BUILDDIR/src/libnm-client-impl${GI_TYPELIB_PATH:+:$GI_TYPELIB_PATH}"
export LD_LIBRARY_PATH="$LIBDIR${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
export NM_TEST_CLIENT_BUILDDIR="$BUILDDIR"
# we first collect all the output in "test-client.log" and print it at once
# afterwards. The only reason is that when you run with `make -j` that the
# test output is grouped together.
r=""
"$PYTHON" "$SRCDIR/src/tests/client/test-client.py" -v &> "$BUILDDIR/src/tests/client/test-client.log" && r=ok
cat "$BUILDDIR/src/tests/client/test-client.log"
test "$r" = ok || die "test-client.py failed!!"