!24 enable make check

From: @zppzhangpan 
Reviewed-by: @leeffo 
Signed-off-by: @leeffo
This commit is contained in:
openeuler-ci-bot 2023-09-26 09:43:10 +00:00 committed by Gitee
commit 62ca5ababb
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
2 changed files with 110 additions and 2 deletions

View File

@ -0,0 +1,101 @@
From f7e5a8c0ec9801554fec74ac8fc575523e3f6779 Mon Sep 17 00:00:00 2001
From: Peter Hutterer <peter.hutterer@who-t.net>
Date: Thu, 29 Jun 2023 10:17:16 +1000
Subject: [PATCH] meson: run the pytest test suite as part of meson test
If pytest is available, run the test suite during meson test.
This requires a bit of fiddling around because the test suite expects
the XKB directory to be properly laid out but that doesn't happen with
meson until install. Luckily all we need to do here is copy our KcCGST
directories over to the build directory and then we can use that as
XKB_CONFIG_ROOT for pytest.
An optional hook for pytest-xdist is integrated too - on my machine the
test run goes from 25s to 10s with xdist on -n auto. This does require
a conftest.py so we don't hog all the cores available on the CI runners.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reference:https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/commit/f7e5a8c0ec9801554fec74ac8fc575523e3f6779
Conflict:NA
---
meson.build | 28 ++++++++++++++++++++++++++++
tests/conftest.py | 16 ++++++++++++++++
tests/copydir.sh | 5 +++++
3 files changed, 49 insertions(+)
create mode 100644 tests/conftest.py
create mode 100755 tests/copydir.sh
diff --git a/meson.build b/meson.build
index 91a4b4c3..4bb3a08d 100644
--- a/meson.build
+++ b/meson.build
@@ -58,4 +58,32 @@ if xsltproc.found()
endif
+# pytest suite
+pymod = import('python')
+python = pymod.find_installation('python3',
+ modules: ['pytest'],
+ required: false)
+pytest = find_program('pytest-3', 'pytest', required: false)
+enable_pytest = python.found() and pytest.found()
+if enable_pytest
+ pytest_args = ['--verbose', '--log-level=DEBUG']
+ # use pytest xdist if available, it really speeds up the tests cases
+ optional_python_modules = ['xdist']
+ if pymod.find_installation('python3', modules: optional_python_modules, required: false).found()
+ pytest_args += ['-n', 'auto']
+ endif
+
+ # copy our data files over to the build directory so we can use the
+ # builddir as XKB_CONFIG_ROOT
+ foreach dir: ['compat', 'geometry', 'keycodes', 'symbols', 'types']
+ run_command('tests/copydir.sh', dir, check: true)
+ endforeach
+
+ test('pytest', pytest,
+ args: pytest_args,
+ env: ['XKB_CONFIG_ROOT=@0@'.format(meson.build_root())],
+ workdir: meson.source_root(),
+ timeout: 60)
+endif
+
subdir('po')
diff --git a/tests/conftest.py b/tests/conftest.py
new file mode 100644
index 00000000..9befeb7a
--- /dev/null
+++ b/tests/conftest.py
@@ -0,0 +1,16 @@
+import os
+import sys
+from pathlib import Path
+
+tests_dir = Path(__file__).parent.resolve()
+sys.path.insert(0, str(tests_dir))
+
+try:
+ import xdist # noqa: F401
+
+ # Otherwise we get unknown hook 'pytest_xdist_auto_num_workers'
+ def pytest_xdist_auto_num_workers(config):
+ return os.getenv("FDO_CI_CONCURRENT", None)
+
+except ImportError:
+ pass
diff --git a/tests/copydir.sh b/tests/copydir.sh
new file mode 100755
index 00000000..6f48c1fc
--- /dev/null
+++ b/tests/copydir.sh
@@ -0,0 +1,5 @@
+#!/bin/sh -ex
+
+dir="$1"
+mkdir -p "$MESON_BUILD_ROOT/$MESON_SUBDIR"
+cp -r "$MESON_SOURCE_ROOT/$MESON_SUBDIR/$dir/" "$MESON_BUILD_ROOT/$MESON_SUBDIR/"
--
GitLab

View File

@ -1,15 +1,16 @@
Name: xkeyboard-config Name: xkeyboard-config
Version: 2.39 Version: 2.39
Release: 1 Release: 2
Summary: The X Keyboard Extension Summary: The X Keyboard Extension
License: MIT License: MIT
URL: https://www.freedesktop.org/wiki/Software/XKeyboardConfig URL: https://www.freedesktop.org/wiki/Software/XKeyboardConfig
Source0: https://xorg.freedesktop.org/archive/individual/data/%{name}/%{name}-%{version}.tar.xz Source0: https://xorg.freedesktop.org/archive/individual/data/%{name}/%{name}-%{version}.tar.xz
Patch6000: backport-run-the-pytest-test-suite-as-part-of-meson-test.patch
BuildArch: noarch BuildArch: noarch
BuildRequires: gettext gettext-devel libtool libxslt perl(XML::Parser) pkgconfig(glib-2.0) xkbcomp meson BuildRequires: gettext gettext-devel libtool libxslt perl(XML::Parser) pkgconfig(glib-2.0) xkbcomp meson
BuildRequires: pkgconfig(x11) >= 1.4.3 pkgconfig(xorg-macros) >= 1.12 pkgconfig(xproto) >= 7.0.20 BuildRequires: pkgconfig(x11) >= 1.4.3 pkgconfig(xorg-macros) >= 1.12 pkgconfig(xproto) >= 7.0.20 pytest
%description %description
The non-arch keyboard configuration database for X Window. The goal is to The non-arch keyboard configuration database for X Window. The goal is to
@ -48,6 +49,9 @@ sed -i 's|Taiwan)|Taiwan China)|' po/* geometry/sun rules/base.xml symbols/tw
popd popd
} }
%check
%meson_test
%files %files
%defattr(-,root,root) %defattr(-,root,root)
%doc AUTHORS %doc AUTHORS
@ -65,6 +69,9 @@ sed -i 's|Taiwan)|Taiwan China)|' po/* geometry/sun rules/base.xml symbols/tw
%{_mandir}/man7/xkeyboard-config.* %{_mandir}/man7/xkeyboard-config.*
%changelog %changelog
* Thu Sep 21 2023 zhangpan <zhangpan103@h-partners.com> - 2.39-2
- enable make check
* Wed Jul 19 2023 zhangpan <zhangpan103@h-partners.com> - 2.39-1 * Wed Jul 19 2023 zhangpan <zhangpan103@h-partners.com> - 2.39-1
- update to 2.39 - update to 2.39