gnu: ibus-anthy: Prepare for tests.

* gnu/packages/patches/ibus-anthy-fix-tests.patch: New patch.
* gnu/packages/ibus.scm (ibus-anthy): Register it.
* gnu/packages/ibus.scm (ibus-anthy) [source]: Apply patch.
[arguments]: Clarify #:tests? comment.  Add a fix-check,
do-not-override-GI_TYPELIB_PATH and prepare-for-tests phases.
[native-inputs]: Add procps, python-pycotap, util-linux and
xorg-server-for-tests.
This commit is contained in:
Maxim Cournoyer 2023-06-14 08:06:21 -04:00
parent 6bbfcc359a
commit 4e60cbe5bb
No known key found for this signature in database
GPG key ID: 1260E46482E63562
3 changed files with 85 additions and 3 deletions

View file

@ -897,6 +897,7 @@ dist_patch_DATA = \
%D%/packages/patches/akonadi-not-relocatable.patch \
%D%/packages/patches/akonadi-timestamps.patch \
%D%/packages/patches/allegro-mesa-18.2.5-and-later.patch \
%D%/packages/patches/ibus-anthy-fix-tests.patch \
%D%/packages/patches/anki-mpv-args.patch \
%D%/packages/patches/antiword-CVE-2014-8123.patch \
%D%/packages/patches/antlr3-3_1-fix-java8-compilation.patch \

View file

@ -59,10 +59,12 @@ (define-module (gnu packages ibus)
#:use-module (gnu packages gstreamer)
#:use-module (gnu packages gtk)
#:use-module (gnu packages iso-codes)
#:use-module (gnu packages linux)
#:use-module (gnu packages logging)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-check)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages python-web)
#:use-module (gnu packages serialization)
@ -348,18 +350,44 @@ (define-public ibus-anthy
version "/ibus-anthy-" version ".tar.gz"))
(sha256
(base32
"16vd0k8wm13s38869jqs3dnwmjvywgn0snnpyi41m28binhlssf8"))))
"16vd0k8wm13s38869jqs3dnwmjvywgn0snnpyi41m28binhlssf8"))
(patches (search-patches "ibus-anthy-fix-tests.patch"))))
(build-system gnu-build-system)
(arguments
(list
;; The test suite hangs (see:
;; https://github.com/ibus/ibus-anthy/issues/28).
#:tests? #f
#:configure-flags
;; Use absolute exec path in the anthy.xml.
#~(list (string-append "--libexecdir=" #$output "/libexec"))
;; The test suite fails (see:
;; https://github.com/ibus/ibus-anthy/issues/28).
#:tests? #f
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'fix-check
(lambda _
(substitute* "data/Makefile.in"
;; Use a year current at the time the release was made, to
;; avoid the "This year is not included in era.y"
;; error.
(("`date '\\+%Y'`")
"2021"))))
(add-after 'unpack 'do-not-override-GI_TYPELIB_PATH
;; Do not override the GI_TYPELIB_PATH to avoid the pygobject
;; error: "ValueError: Namespace Gdk not available".
(lambda _
(substitute* "tests/test-build.sh"
(("GI_TYPELIB_PATH=\\$BUILDDIR/../gir" all)
(string-append all ":$GI_TYPELIB_PATH")))))
(add-before 'check 'prepare-for-tests
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
;; IBus requires write access to the HOME directory.
(setenv "HOME" "/tmp")
;; The single test is skipped if no actual display is found.
(system "Xvfb :1 &")
(setenv "DISPLAY" ":1"))))
(add-after 'install 'wrap-programs
(lambda* (#:key inputs #:allow-other-keys)
(for-each
@ -376,7 +404,11 @@ (define-public ibus-anthy
`(,glib "bin")
intltool
pkg-config
python))
procps ;for ps
python
python-pycotap
util-linux ;for getopt
xorg-server-for-tests))
(inputs
(list anthy
gtk+

View file

@ -0,0 +1,49 @@
Submitted upstream: https://github.com/ibus/ibus-anthy/pull/35
diff --git a/tests/test-build.sh b/tests/test-build.sh
index e83b78f..a0efe32 100755
--- a/tests/test-build.sh
+++ b/tests/test-build.sh
@@ -63,26 +63,27 @@ parse_args()
done;
}
+maybe_install_pycotap() {
+ # Check if pycotap is already available.
+ python3 -m pycotap >/dev/null && return 0
+
+ # Red Hat specific hint.
+ if test -f /etc/redhat-release ; then
+ if ! rpm -q --quiet python3-pycotap; then
+ echo "Please install python3-pycotap"
+ exit -1
+ fi
+ fi;
+}
+
init_environment()
{
if test x$FORCE_TEST != x ; then
RUN_ARGS="$RUN_ARGS --force";
fi;
- HAS_TAP=0;
- if test -f /etc/redhat-release ; then
- rpm -q --quiet python3-pycotap
- if test $? -ne 0 ; then
- echo "Not found python3-pycotap";
- exit -1;
- fi;
- HAS_TAP=1;
- fi;
- TAP_DIR=`python -m site --user-site`/pycotap;
- if test $HAS_TAP -ne 1 && \
- test x"$TAP_DIR" != x && test ! -d "$TAP_DIR" ; then
- echo "pip install pycotap --user";
- pip install pycotap --user;
- fi;
+
+ maybe_install_pycotap
+
if test ! -f $BUILDDIR/../data/$ANTHY_SCHEMA_FILE ; then
echo "Not found $BUILDDIR/../data/$ANTHY_SCHEMA_FILE";
exit -1;