Resolves: RHEL-36638 Update to 2.25.9 and Remove dependency on Xvfb from CI tests

- Translation update from Weblate (cs 100%)
- Update emoji annotations from CLDR
- Drop Python < 3.6 support
- Fix test_0_gtk.py: typing booster now avoids clearing the input in do_reset() when the preedit is empty
- Remove dependency on Xvfb from ibus-typing-booster.spec
- Support compose sequences containing ASCII keys written as <U00XX> code points
  (Resolves: https://github.com/mike-fabian/ibus-typing-booster/issues/510)
- Translation update from Weblate (pt 91.3%)
This commit is contained in:
Mike FABIAN 2024-05-28 11:34:45 +02:00
parent fbc7bfd009
commit 2036494ada
6 changed files with 95 additions and 43 deletions

2
.gitignore vendored
View File

@ -335,3 +335,5 @@
/ibus-typing-booster-2.25.5.tar.gz
/ibus-typing-booster-2.25.6.tar.gz
/ibus-typing-booster-2.25.7.tar.gz
/ibus-typing-booster-2.25.8.tar.gz
/ibus-typing-booster-2.25.9.tar.gz

View File

@ -1,5 +1,5 @@
Name: ibus-typing-booster
Version: 2.25.7
Version: 2.25.9
Release: %autorelease
Summary: A completion input method
License: GPL-3.0-or-later AND Apache-2.0
@ -77,7 +77,6 @@ BuildRequires: gtk3
BuildRequires: dconf
BuildRequires: dbus-x11
BuildRequires: ibus
BuildRequires: xorg-x11-server-Xvfb
BuildRequires: glibc-langpack-en
BuildRequires: glibc-langpack-cs
BuildRequires: glibc-langpack-km
@ -86,8 +85,6 @@ BuildRequires: glibc-langpack-am
BuildRequires: glibc-langpack-de
BuildRequires: glibc-langpack-ar
BuildRequires: make
# A window manger is needed for the GUI test
# BuildRequires: i3
BuildArch: noarch
# Some test cases fail on ppc64 and s390x (because of some bugs on
# these platforms I think). This makes the build fail for no good
@ -194,26 +191,6 @@ dconf write /org/freedesktop/ibus/engine/typing-booster/showstatusinfoinaux true
dconf write /org/freedesktop/ibus/engine/typing-booster/inlinecompletion false
dconf write /org/freedesktop/ibus/engine/typing-booster/keybindings "{'next_input_method': <['Control+Down', 'Control+KP_Down']>, 'previous_input_method': <['Control+Up', 'Control+KP_Up']>, 'lookup_related': <['Mod5+F12']>, 'enable_lookup': <['Tab', 'ISO_Left_Tab', 'KP_Divide']>, 'select_next_candidate': <['Tab', 'ISO_Left_Tab', 'Down', 'KP_Down']>, 'lookup_table_page_down': <['Page_Down', 'KP_Page_Down', 'KP_Next']>, 'toggle_emoji_prediction': <['Mod5+F6']>, 'lookup_table_page_up': <['Page_Up', 'KP_Page_Up', 'KP_Prior']>, 'toggle_off_the_record': <['Mod5+F9']>, 'cancel': <['Escape']>, 'setup': <['Mod5+F10']>, 'select_previous_candidate': <['Shift+Tab', 'Shift+ISO_Left_Tab', 'Up', 'KP_Up']>}"
dconf dump /
export DISPLAY=:1
Xvfb $DISPLAY -screen 0 1024x768x16 &
# A window manager and and ibus-daemon are needed to run the GUI
# test tests/test_gtk.py, for example i3 can be used.
#
# To debug what is going on if there is a problem with the GUI test
# add BuildRequires: x11vnc and start a vnc server:
#
# x11vnc -display $DISPLAY -unixsock /tmp/mysock -bg -nopw -listen localhost -xkb
#
# Then one can view what is going on outside of the chroot with vncviewer:
#
# vncviewer /var/lib/mock/fedora-32-x86_64/root/tmp/mysock
#
# The GUI test will be skipped if XDG_SESSION_TYPE is not x11 or wayland.
#
#ibus-daemon -drx
#touch /tmp/i3config
#i3 -c /tmp/i3config &
#export XDG_SESSION_TYPE=x11
make check && rc=0 || rc=1
cat tests/*.log

View File

@ -1 +1 @@
SHA512 (ibus-typing-booster-2.25.7.tar.gz) = 9603b99293e596c958aa2d21e8f0d78b06c6873769b2206c8f5bc225993d53e6af51d493d664d51b8632550e996f714a9ebf0c4ff8f914cd11b4119ac7570203
SHA512 (ibus-typing-booster-2.25.9.tar.gz) = 3427336e15199eb851178393c3568bc8b8dcbae35da0cb9d9ec14740db108d66483e7209d39449e370a55aa11ce1f8d179d6e0a5b1b00b3b17b85af77813eea1

View File

@ -18,7 +18,8 @@ require:
- gnome-shell
- gnome-shell-extension-no-overview
- dbus-x11
- xorg-x11-server-Xvfb
- xorg-x11-server-Xwayland
- xwayland-run
- ibus
- ibus-devel
- ibus-desktop-testing

View File

@ -2,6 +2,7 @@
. /usr/share/beakerlib/beakerlib.sh || exit 1
NAME=ibus-typing-booster
XFWB_SCRIPT=$(pwd)/xwfb-script.sh
rlJournalStart
rlPhaseStartSetup
@ -13,24 +14,63 @@ rlJournalStart
rlRun "pushd $tmp"
rlPhaseEnd
# rlPhaseStartTest
# rlRun -t -l "ibus-desktop-testing-runner \
# --no-graphics \
# --runner=gnome \
# --timeout=1500 \
# --tests=${NAME} \
# --output=${NAME}.log \
# --result=test.log \
# " 0 "Running ibus-typing-booster tests"
# echo "==== ${NAME}.log: ===="
# cat ${NAME}.log
# echo "==== EOF ${NAME}.log: ===="
# echo "==== test.log ===="
# cat test.log
# echo "==== EOF test.log: ===="
# rlAssertNotGrep FAIL test.log
# rlFileSubmit ibus-typing-booster.log
# rlFileSubmit test.log
# rlPhaseEnd
rlPhaseStartTest
rlRun "ibus-desktop-testing-runner \
--no-graphics \
--runner=gnome \
--timeout=1500 \
--tests=${NAME} \
--output=${NAME}.log \
--result=test.log \
" 0 "Running ibus-typing-booster tests"
echo "==== ${NAME}.log: ===="
cat ${NAME}.log
echo "==== EOF ${NAME}.log: ===="
echo "==== test.log ===="
cat test.log
echo "==== EOF test.log: ===="
rlAssertNotGrep FAIL test.log
rlFileSubmit ibus-typing-booster.log
rlFileSubmit test.log
rlRun -t -l "pushd /usr/libexec/installed-tests/ibus-typing-booster" \
0 "Change to directory of installed tests"
TEST_FILES="test_*.py"
# When running locally with `tmt run -vvv -a provision -h local`
# DISPLAY might be set here and XDG_SESSION_TYPE might be "x11".
# In that case, all tests, including the graphical test_0_gtk.py
# will run fine in this "for" loop. Otherwise the graphical
# test_0_gtk.py in this for loop will be skipped:
for test_file in ${TEST_FILES}
do
rlRun -t -s "./run_tests ${test_file}" 0
echo "==== START of `cat ${rlRun_LOG}`: log of ${test_file} ===="
cat ${rlRun_LOG}
echo "==== END of `cat ${rlRun_LOG}`: log of ${test_file} ===="
rlAssertNotGrep FAIL ${rlRun_LOG}
rlGetTestState
rlLog "Number of failed asserts so far: ${ECODE}"
rlFileSubmit ${rlRun_LOG}
done
if [ -z "${DISPLAY:-}" ]; then
rlLogInfo "DISPLAY is empty or unset."
rlLogInfo "Therefore, use xfwb-run to run the graphical test_0_gtk.py:"
rlRun -t -s "xwfb-run -c mutter -e $tmp/xwfb-run.log -n 99 $XFWB_SCRIPT" \
0 "Running test_0_gtk.py in xfwb-run"
echo "==== START of `cat ${rlRun_LOG}`: log of xwfb-run ===="
cat ${rlRun_LOG}
echo "==== END of `cat ${rlRun_LOG}`: log of xwfb-run ===="
rlAssertNotGrep FAIL ${rlRun_LOG}
rlGetTestState
rlLog "Total number of failed asserts: ${ECODE}"
rlFileSubmit ${rlRun_LOG}
rlFileSubmit xwfb-run.log
fi
rlGetTestState
rlLog "Total number of failed asserts: ${ECODE}"
rlRun "popd" 0
rlPhaseEnd
rlPhaseStartCleanup

32
tests/xwfb-script.sh Executable file
View File

@ -0,0 +1,32 @@
#!/bin/bash
# Run this with `xwfb-run -e /tmp/xwfb-run.log -n 99 xwfb-script.sh`
# Redirect stderr to stdout:
exec 2>&1
# without setting GDK_BACKEND=x11, Gtk programs cannot open windows in xfwb-run:
export GDK_BACKEND=x11
export XDG_SESSION_TYPE=x11
echo "starting mutter ..."
mutter --x11 &
sleep 5
echo "mutter started"
ibus-daemon --verbose \
--replace \
--single \
--desktop=mutter \
--panel=disable \
--config=disable &
sleep 5
echo "ibus-daemon started."
pushd /usr/share/ibus-typing-booster/engine
/usr/libexec/installed-tests/ibus-typing-booster/test_0_gtk.py -v &
TEST_PID=$!
# A screenshot for debugging can be made here:
#sleep 1
#import -window root /tmp/screenshot.png
#echo "screenshot done."
# Wait for test_0_gtk.py to finish and get its exit code
wait $TEST_PID
EXIT_CODE=$?
echo "The exit code of test_0_gtk.py: $EXIT_CODE"
exit $EXIT_CODE