summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2021-03-15 10:59:24 +0100
committerThomas Haller <thaller@redhat.com>2021-03-15 17:10:56 +0100
commite643703418502ccd3b530b41748edf21ea56bb0c (patch)
tree6fc304eeea30ec1f2be4ebf90013764e6c648ff3
parent019bc3233a0608c0bcf72c8e1b0e64063a4be25b (diff)
downloadNetworkManager-e643703418502ccd3b530b41748edf21ea56bb0c.tar.gz
tests/client: run "test-client.py" also for meson
-rw-r--r--Makefile.am14
-rwxr-xr-xcontrib/scripts/nm-ci-run.sh5
-rw-r--r--src/meson.build1
-rw-r--r--src/tests/client/meson.build12
-rwxr-xr-xsrc/tests/client/test-client.sh59
5 files changed, 81 insertions, 10 deletions
diff --git a/Makefile.am b/Makefile.am
index 41df1ab475..cff14b7605 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -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)
###############################################################################
diff --git a/contrib/scripts/nm-ci-run.sh b/contrib/scripts/nm-ci-run.sh
index 14f2989a7a..00adba85e1 100755
--- a/contrib/scripts/nm-ci-run.sh
+++ b/contrib/scripts/nm-ci-run.sh
@@ -223,6 +223,8 @@ run_meson() {
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
diff --git a/src/meson.build b/src/meson.build
index 75dcbbfb1c..b7aa4dcde1 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -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
diff --git a/src/tests/client/meson.build b/src/tests/client/meson.build
new file mode 100644
index 0000000000..b2e455bbbd
--- /dev/null
+++ b/src/tests/client/meson.build
@@ -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,
+)
diff --git a/src/tests/client/test-client.sh b/src/tests/client/test-client.sh
new file mode 100755
index 0000000000..f6b6418555
--- /dev/null
+++ b/src/tests/client/test-client.sh
@@ -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!!"