enable make check
This commit is contained in:
parent
bd9f39eab0
commit
126a9a0041
101
backport-run-the-pytest-test-suite-as-part-of-meson-test.patch
Normal file
101
backport-run-the-pytest-test-suite-as-part-of-meson-test.patch
Normal 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
|
||||||
@ -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
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user