Files
matchbox-tests/test-windows.sh
Mingde (Matthew) Zeng 365e29f1be Add SPDX-License-Identifier: GPL-2.0-or-later
Fixes [YOCTO #13319]

Signed-off-by: Mingde (Matthew) Zeng <matthewzmd@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-10-08 11:02:25 +01:00

150 lines
4.9 KiB
Bash
Executable File

#!/bin/bash
#
# SPDX-License-Identifier: GPL-2.0-or-later
#
# script which runs through all the window option tests
if [ \! -x winspew ]; then
echo "$0: 'winspew' test utility missing, compile it first!"
exit 2 # 2 indicates mis-setup
fi
#
# Set below so script will run standalone
#
if [ -z "$LOGS" ]; then
LOG=./winspew.log
else
LOG=$LOGS/winspew.log
fi
if [ -z "$SLEEP" ]; then
SLEEP="0"
fi
function waitamo()
{
if [ "$SLEEP" == "0" ]; then
echo "Hit a key"
read
else
sleep $SLEEP
fi
}
rm -f $LOG
echo
echo "Window options tester"
echo "====================="
echo
echo "Press <enter> to start a test. Press <enter> to quit a test."
echo "In Matchbox, use Alt-p to get back to terminal (to press <enter>)"
echo "while the test is running."
echo
echo "on other window managers you might use e.g. <TAB> to change"
echo "the focus back to this terminal."
echo
count=0
echo; echo "$count. 1 app + 1urgent (message) windows "; waitamo
./winspew -t "Window",normal -c "Dialog",300x200+100+100,urgent >> $LOG &
TEST1=$!
sleep 1
./winspew -t MSG1,message,300x200+20+20,,10 -t MSG2,message,300x200-20+20,,10 >> $LOG &
TEST2=$!
sleep 4
waitamo; kill $TEST1 $TEST2; wait; count=$((count+1))
echo; echo "$count. Fullscreen window"; waitamo
./winspew -t "Window",normal,,fullscreen >> $LOG &
TEST=$!; waitamo; kill $TEST; wait; count=$((count+1))
echo; echo "$count. Fullscreen window with dialog"; waitamo
./winspew -t "Window",normal,,fullscreen -c "Dialog",320x200 >> $LOG &
TEST=$!; waitamo; kill $TEST; wait; count=$((count+1))
echo; echo "$count. Fullscreen window with 'above' dialog"; waitamo
./winspew -t "Window",normal,,fullscreen -c "Dialog",320x200,above >> $LOG &
TEST=$!; waitamo; kill $TEST; wait; count=$((count+1))
echo; echo "$count. Fullscreen window with modal dialog"; waitamo
./winspew -t "Window",normal,,fullscreen -c "Dialog",320x200,modal >> $LOG &
TEST=$!; waitamo; kill $TEST; wait; count=$((count+1))
echo; echo "$count. Fullscreen window with no-title dialog"; waitamo
./winspew -t "Window",normal,,fullscreen -c "Dialog",300x200,no_title >> $LOG &
TEST=$!; waitamo; kill $TEST; wait; count=$((count+1))
echo; echo "$count. Modal, transient for root dialog"; waitamo
./winspew -t "Window",dialog,,modal >> $LOG &
TEST=$!; waitamo; kill $TEST; wait; count=$((count+1))
echo; echo "$count. Normal window"; waitamo
./winspew -t "Window",normal >> $LOG &
TEST=$!; waitamo; kill $TEST; wait; count=$((count+1))
echo; echo "$count. Normal window really long title"; waitamo
./winspew -t "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",normal >> $LOG &
TEST=$!; waitamo; kill $TEST; wait; count=$((count+1))
echo; echo "$count. Normal window, img text substitution"; waitamo
./winspew -t "XX:XX:XXX:XXXXX:XX:",normal >> $LOG &
TEST=$!; waitamo; kill $TEST; wait; count=$((count+1))
echo; echo "$count. Normal window with several dialogs"; waitamo
./winspew -t "Window",normal -c "Dialog",320x220 -c "Dialog",400x300 -c "Dialog",300x200 >> $LOG &
TEST=$!; waitamo; kill $TEST; wait; count=$((count+1))
echo; echo "$count. Normal window with dialog with help/accept buttons"; waitamo
./winspew -t "Window",normal -c "Dialog",320x200,accept_button:help_button >> $LOG &
TEST=$!; waitamo; kill $TEST; wait; count=$((count+1))
echo; echo "$count. Normal window with several modal dialogs"; waitamo
./winspew -t "Window",normal -c "Dialog",320x220,modal -c "Dialog",400x300,modal -c "Dialog",300x200,modal >> $LOG &
TEST=$!; waitamo; kill $TEST; wait; count=$((count+1))
echo; echo "$count. Normal window with no-title dialog"; waitamo
./winspew -t "Window",normal -c "Dialog",300x200,no_title >> $LOG &
TEST=$!; waitamo; kill $TEST; wait; count=$((count+1))
echo; echo "$count. Normal window with no-decor dialog"; waitamo
./winspew -t "Window",normal -c "Dialog",300x200,no_decor >> $LOG &
TEST=$!; waitamo; kill $TEST; wait; count=$((count+1))
echo; echo "$count. Dialog window with 50% ( composite only ) translucency"; waitamo
./winspew -t dialog,dialog,320x200,trans=127 >> $LOG &
TEST=$!; waitamo; kill $TEST; wait; count=$((count+1))
if [ \! -z "$(locale -a|grep 'zh_CN.utf8')" ]; then
echo; echo "$count. Normal window and dialog with UTF8 Chinese title."; waitamo
./winspew -t zh_CN.utf8,normal -t zh_CN.utf8,dialog >> $LOG &
TEST=$!; waitamo; kill $TEST; wait; count=$((count+1))
else
echo "*** Not testing Chinese titles as C-library support is missing ***"
fi
if [ \! -z "$(pango-querymodules|grep 'pango-arabic')" ]; then
echo; echo "$count. Normal window with UTF8 Arabic title."; waitamo
./winspew -t ar_AE.utf8,normal -t ar_AE.utf8,dialog >> $LOG &
TEST=$!; waitamo; kill $TEST; wait; count=$((count+1))
else
echo "*** Not testing Arabic titles as Pango support is missing ***"
fi
echo
echo "$count tests done!"
echo
echo "Winspew test program outputs were logged into file '$LOG'."
# test never really fails
exit 0