From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16811 invoked by alias); 3 Jan 2005 23:37:01 -0000 Mailing-List: contact mauve-discuss-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: mauve-discuss-owner@sources.redhat.com Received: (qmail 16774 invoked from network); 3 Jan 2005 23:36:51 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by sourceware.org with SMTP; 3 Jan 2005 23:36:51 -0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11/8.12.11) with ESMTP id j03Nao9h024667 for ; Mon, 3 Jan 2005 18:36:50 -0500 Received: from pobox.toronto.redhat.com (pobox.toronto.redhat.com [172.16.14.4]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id j03Naer25830 for ; Mon, 3 Jan 2005 18:36:40 -0500 Received: from tortoise.toronto.redhat.com (IDENT:U2FsdGVkX186MzpWq/Ae2CJ4LlNtmRgHIn61RLJMf0o@tortoise.toronto.redhat.com [172.16.14.92]) by pobox.toronto.redhat.com (8.12.8/8.12.8) with ESMTP id j03NaeoS000929 for ; Mon, 3 Jan 2005 18:36:40 -0500 Subject: Patch: GUI testing framework From: Thomas Fitzsimmons To: mauve-discuss@sources.redhat.com Content-Type: multipart/mixed; boundary="=-YB1mmbvVWEBOiFIq5iVC" Date: Mon, 03 Jan 2005 23:37:00 -0000 Message-Id: <1104795399.6374.117.camel@tortoise.toronto.redhat.com> Mime-Version: 1.0 X-SW-Source: 2005-q1/txt/msg00000.txt.bz2 --=-YB1mmbvVWEBOiFIq5iVC Content-Type: text/plain Content-Transfer-Encoding: 7bit Content-length: 665 Hi, This patch adds support to batch_run for running GUI tests, either within an Xvfb server (default) or directly on the tester's desktop. It also introduces the GUI tag; all tests that require DISPLAY to be set should be tagged as GUI tests. I tested this with the java.awt.Robot tests I posted last week. The tests run properly both within Xvfb and on my desktop. I would like to rely on the metacity window manager, since it handles inset sizing correctly. Comments? Tom 2005-01-03 Thomas Fitzsimmons * batch_run: Invoke Xvfb and metacity if GUI key is specified. * choose: Handle GUI tag. * README: Add section on GUI tests. --=-YB1mmbvVWEBOiFIq5iVC Content-Description: Content-Disposition: inline; filename=mauve-gui-framework.patch Content-Type: text/x-patch; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-length: 2859 Index: README =================================================================== RCS file: /cvs/mauve/mauve/README,v retrieving revision 1.18 diff -u -r1.18 README --- README 12 Aug 2004 15:11:12 -0000 1.18 +++ README 3 Jan 2005 23:23:53 -0000 @@ -172,6 +172,15 @@ ================================================================ +Graphical tests that display windows and accept input are marked with +the GUI tag. GUI tests are not included in the default list of tags. +If the GUI tag does appear in KEYS, batch_run will spawn an Xvfb +process, set DISPLAY to that X server and run the +graphical/interactive tests there. If you'd rather run the tests +directly on your desktop, set SHOW_GUI_TESTS=1. + +================================================================ + The test harness can also ignore known failures. Simply create a file 'xfails' in the directory where the tests are being run which contains 'FAIL:' entries from previous test runs. The order of the Index: batch_run =================================================================== RCS file: /cvs/mauve/mauve/batch_run,v retrieving revision 1.5 diff -u -r1.5 batch_run --- batch_run 19 Nov 2004 10:09:28 -0000 1.5 +++ batch_run 3 Jan 2005 23:23:53 -0000 @@ -63,6 +63,30 @@ # Generate test classes list ./choose-classes . "$KEYS" +case $KEYS in + *GUI*) + + XVFB=`which Xvfb` + METACITY=`which metacity` + + if test -z "$SHOW_GUI_TESTS"; then + if test -z $XVFB; then + echo "warning: Xvfb not found on PATH. Showing GUI tests on main desktop..." + elif test -z $METACITY; then + echo "warning: metacity not found on PATH. Showing GUI tests on main desktop..." + else + export DISPLAY=:57 + echo localhost > Xvfb.cfg + $XVFB :57 -auth Xvfb.cfg > /dev/null 2>&1 & + XVFB_PID=$! + $METACITY > /dev/null 2>&1 & + METACITY_PID=$! + rm -f Xvfb.cfg + fi + fi + ;; +esac + # Compile and run all the tests for testclass in `cat test_classes`; do # Get all needed java sources @@ -81,3 +105,13 @@ echo "FAIL: $testclass COMPILE FAILED" fi done + +case $KEYS in + *GUI*) + + # killing Xvfb also kills the window manager process + if test ! -z "$XVFB_PID"; then + kill $XVFB_PID > /dev/null 2>&1 + fi + ;; +esac Index: choose =================================================================== RCS file: /cvs/mauve/mauve/choose,v retrieving revision 1.25 diff -u -r1.25 choose --- choose 14 Oct 2004 06:53:07 -0000 1.25 +++ choose 3 Jan 2005 23:23:53 -0000 @@ -69,6 +69,10 @@ # You can't specify this. : ;; + GUI) + tags="$tags GUI $i" + test -z "$seen_dashdash" && spectags="$spectags $i" + ;; JAVA2) tags="$tags JDK1.0 JDK1.1 JDK1.2 $i" test -z "$seen_dashdash" && spectags="$spectags $i" --=-YB1mmbvVWEBOiFIq5iVC--