Add screenshot option in CI. Disable el-GR compose test since the latest includes multiple.
130 lines
3.8 KiB
Diff
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.
|