fujiwara / rpms / ibus

Forked from rpms/ibus 4 years ago
Clone
Blob Blame History Raw
From b3b90f0e467ade81165d67638ca7c2541963a879 Mon Sep 17 00:00:00 2001
From: fujiwarat <takao.fujiwara1@gmail.com>
Date: Sat, 20 Mar 2021 20:28:42 +0900
Subject: [PATCH] src/tests: Change default session gnome-session to mutter

gnome-shell 40 now shows the overview mode by login and
gnome-desktop-testing-runner cannot get the focus.
Now the default session is changed to mutter from gnome-session.
The default may be changed to twm if mutter also will be changed
not to accept the application focus in the future.

Disable Tour dialog which prevent test application from getting the
input focus.

Don't output FAIL if the actual failure is 0 for Fedora CI.

BUG=https://discourse.gnome.org/t/focus-on-autostart-application-by-login/5863
---
 src/tests/ibus-desktop-testing-runner.in | 31 +++++++++++++++++++-----
 1 file changed, 25 insertions(+), 6 deletions(-)

diff --git a/src/tests/ibus-desktop-testing-runner.in b/src/tests/ibus-desktop-testing-runner.in
index 4232c549..23e3411e 100755
--- a/src/tests/ibus-desktop-testing-runner.in
+++ b/src/tests/ibus-desktop-testing-runner.in
@@ -4,7 +4,7 @@
 #
 # ibus - The Input Bus
 #
-# Copyright (c) 2018-2020 Takao Fujiwara <takao.fujiwara1@gmail.com>
+# Copyright (c) 2018-2021 Takao Fujiwara <takao.fujiwara1@gmail.com>
 # Copyright (c) 2018 Red Hat, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
@@ -36,7 +36,7 @@
 
 
 PROGNAME=`basename $0`
-VERSION=0.1
+VERSION=0.2
 DISPLAY=:99.0
 BUILDDIR="."
 SRCDIR="."
@@ -44,7 +44,7 @@ TEST_LOG="test-suite.log"
 TEST_LOG_STDOUT=0
 RESULT_LOG=""
 HAVE_GRAPHICS=1
-DESKTOP_COMMAND="dbus-launch --exit-with-session gnome-session"
+DESKTOP_COMMAND="dbus-launch --exit-with-session mutter"
 PID_XORG=0
 PID_GNOME_SESSION=0
 TESTING_RUNNER="default"
@@ -80,7 +80,9 @@ usage()
 "-b, --builddir=BUILDDIR          Set the BUILDDIR\n"                          \
 "-s, --srcdir=SOURCEDIR           Set the SOURCEDIR\n"                         \
 "-c, --no-graphics                Use Xvfb instead of Xorg\n"                  \
-"-d, --desktop=DESKTOP            Run DESTKTOP. The default is gnome-session\n" \
+"-d, --desktop=DESKTOP            Run DESTKTOP. The default is mutter.\n"      \
+"                                 Suffix '-with-dbus' can run DESKTOP with dbus session." \
+"                                 E.g. --desktop=gnome-session-with-dbus"      \
 "-t, --tests=\"TESTS...\"           Run TESTS programs which is separated by space\n" \
 "-r, --runner=RUNNER              Run TESTS programs with a test RUNNER.\n"    \
 "                                 RUNNDER = gnome or default.\n"               \
@@ -115,6 +117,12 @@ parse_args()
         * )                  usage; exit 1;;
         esac
     done
+    DL='$'
+    HAS_DBUS_SUFFIX=`echo "$DESKTOP_COMMAND" | grep "\-with\-dbus$DL"`
+    if [ x"$HAS_DBUS_SUFFIX" != x ] ; then
+        DESKTOP_COMMAND=`echo "$DESKTOP_COMMAND" | sed -e 's/-with-dbus$//'`
+        DESKTOP_COMMAND="dbus-launch --exit-with-session $DESKTOP_COMMAND"
+    fi
 }
 
 init_desktop()
@@ -221,6 +229,12 @@ run_desktop()
     if [ x"$HAS_GNOME" = x ] ; then
         ibus-daemon --daemonize --verbose
         sleep 3
+    else
+        # Disable Tour dialog to get focus
+        V=`gsettings get org.gnome.shell welcome-dialog-last-shown-version`
+        if [ x"$V" = x ] ; then
+            gsettings set org.gnome.shell welcome-dialog-last-shown-version '100'
+        fi
     fi
 }
 
@@ -360,8 +374,13 @@ EOF_RUNNER
         ;;
     esac
     echo ""
-    print_log -e "${GREEN}PASS${NC}: $pass"
-    print_log -e "${RED}FAIL${NC}: $fail"
+    # Fedora CI assumes the test is failed even if $fail is 0.
+    if [ $pass -ne 0 ] ; then
+        print_log -e "${GREEN}PASS${NC}: $pass"
+    fi
+    if [ $fail -ne 0 ] ; then
+        print_log -e "${RED}FAIL${NC}: $fail"
+    fi
     echo ""
     if [ $TEST_LOG_STDOUT -eq 1 ] ; then
         cat $TEST_LOG
-- 
2.28.0