ibus/ibus-xx-tests-screenshot.patch
Takao Fujiwara 16da0826bc Fix some warnings in CI
Add screenshot option in CI.
Disable el-GR compose test since the latest includes multiple.
2025-04-19 21:58:34 +09:00

130 lines
3.8 KiB
Diff

--- ibus-1.5.19/src/tests/ibus-desktop-testing-runner.in.orig 2025-04-11 13:28:17.764620101 +0900
+++ ibus-1.5.19/src/tests/ibus-desktop-testing-runner.in 2025-04-15 01:02:05.501785740 +0900
@@ -43,6 +43,7 @@ SRCDIR="."
TEST_LOG="test-suite.log"
TEST_LOG_STDOUT=0
RESULT_LOG=""
+SCREEN_LOG=""
HAVE_GRAPHICS=1
DESKTOP_COMMAND="dbus-launch --exit-with-session gnome-session"
PID_XORG=0
@@ -88,14 +89,16 @@ usage()
"-T, --timeout=TIMEOUT Set timeout (default TIMEOUT is 300 sec).\n" \
"-o, --output=OUTPUT_FILE OUtput the log to OUTPUT_FILE\n" \
"-O, --result=RESULT_FILE OUtput the result to RESULT_FILE\n" \
+"-S, --screendump=DUMP_FILE Output the screen to DUMP_FILE ('STDOUT' can be stdout)\n" \
""
}
parse_args()
{
# This is GNU getopt. "sudo port getopt" in BSD?
- ARGS=`getopt -o hvb:s:cd:t:r:T:o:O: --long \
- help,version,builddir:,srcdir:,no-graphics,desktop:,tests:,runner:,timeout:,output:,result:\
+ ARGS=`getopt -o hvb:s:cd:t:r:T:o:O:S: --long \
+ help,version,builddir:,srcdir:,no-graphics,desktop:,tests:,runner:,\
+timeout:,output:,result:,screendump:,\
-- "$@"`;
eval set -- "$ARGS"
while [ 1 ] ; do
@@ -111,6 +114,7 @@ parse_args()
-T | --timeout ) TIMEOUT="$2"; shift 2;;
-o | --output ) TEST_LOG="$2"; shift 2;;
-O | --result ) RESULT_LOG="$2"; shift 2;;
+ -S | --screendump ) SCREEN_LOG="$2"; shift 2;;
-- ) shift; break;;
* ) usage; exit 1;;
esac
@@ -214,7 +218,7 @@ run_desktop()
sleep 1
export DISPLAY=$DISPLAY
echo "Running $DESKTOP_COMMAND with $USER in `tty`"
- $DESKTOP_COMMAND &
+ $DESKTOP_COMMAND 2>&1 &
PID_GNOME_SESSION=$!
sleep 30
HAS_GNOME=`echo $DESKTOP_COMMAND | grep gnome-session`
@@ -374,7 +378,13 @@ finit()
{
echo "# Killing left gnome-session and Xorg"
kill $PID_GNOME_SESSION $PID_XORG
- ibus exit
+ wait $PID_GNOME_SESSION $PID_XORG 2>/dev/null
+ PID_IBUS=`pidof ibus-daemon`
+ if test x"$PID_IBUS" != x ; then
+ ibus exit
+ else
+ echo "# Dead ibus-daemon"
+ fi
SUSER=`echo "$USER" | cut -c 1-7`
LEFT_CALENDAR=`ps -ef | grep gnome-shell-calendar-server | grep $SUSER | grep -v grep`
if [ x"$LEFT_CALENDAR" != x ] ; then
@@ -386,14 +396,67 @@ finit()
echo "# Finished $PROGNAME testing"
}
+
+save_screen_real()
+{
+ SCREEN_PNG="`date '+%Y%m%d%H%M%S'`.png"
+ gnome-screenshot --file=$SCREEN_PNG
+ if test x"$SCREEN_LOG" = xSTDOUT ; then
+ base64 $SCREEN_PNG
+ touch /var/tmp/STDOUT.log
+ else
+ base64 $SCREEN_PNG > $SCREEN_LOG
+ fi
+}
+
+
+save_screen()
+{
+ if test x"$SCREEN_LOG" = x ; then
+ return
+ fi
+ if test x"$SCREEN_LOG" = xSTDOUT ; then
+ if test -f /var/tmp/STDOUT.log ; then
+ rm /var/tmp/STDOUT.log
+ fi
+ else
+ if test -f "$SCREEN_LOG" ; then
+ rm "$SCREEN_LOG"
+ fi
+ fi
+ save_screen_real &
+ while test 1 ; do
+ if test x"$SCREEN_LOG" = xSTDOUT ; then
+ if test -f /var/tmp/STDOUT.log ; then
+ break
+ fi
+ else
+ if test -f "$SCREEN_LOG" ; then
+ break
+ fi
+ fi
+ sleep 1
+ done
+}
+
+
main()
{
+ echo "TEST TIME `date`"
parse_args "$@"
+ echo "TEST2 TIME `date`"
init_desktop
+ echo "TEST3 TIME `date`"
run_dbus_daemon 2>>$TEST_LOG 1>>$TEST_LOG
+ echo "TEST4 TIME `date`"
run_desktop 2>>$TEST_LOG 1>>$TEST_LOG
+ echo "TEST5 TIME `date`"
+ save_screen
+ echo "TEST6 TIME `date`"
run_test_suite
+ echo "TEST7 TIME `date`"
finit
+ echo "TEST8 TIME `date`"
}
# Need to enclose $@ with double quotes not to split the array.