public inbox for mauve-discuss@sourceware.org
 help / color / mirror / Atom feed
From: Thomas Fitzsimmons <fitzsim@redhat.com>
To: Thomas Zander <zander@kde.org>
Cc: mauve-discuss@sources.redhat.com
Subject: Re: Patch: GUI testing framework
Date: Tue, 04 Jan 2005 18:08:00 -0000	[thread overview]
Message-ID: <1104862126.6374.150.camel@tortoise.toronto.redhat.com> (raw)
In-Reply-To: <200501040930.18433.zander@kde.org>

[-- Attachment #1: Type: text/plain, Size: 1234 bytes --]

On Tue, 2005-01-04 at 09:30 +0100, Thomas Zander wrote:
> On Tuesday 04 January 2005 00:36, Thomas Fitzsimmons wrote:
> > I would like to rely on the metacity window manager, since it handles
> > inset sizing correctly.
> 
> If you feel the KWin WM does not, please make sure to inform the KWin 
> developers where they don't follow the spec.
> I'd find it slightly amuzing if KDE does not since at least the main 
> developer is also part of the spec lead..
> 

It's not that they don't follow the spec, it's just that they don't
interpret it as strictly as metacity does.  See this thread for the
original discussion:

http://mail.gnome.org/archives/wm-spec-list/2003-December/msg00005.html

> If you don't want to create a bugreport, please tell me exactly what the 
> problem is (a reproducable c/c++ testcase would be great) so I can 
> contact Lubos about this.
> 

Try running gnu.testlet.java.awt.Robot.mouseMove under KWin and then
under Metacity.  I've attached a new patch that makes it easier to
override the default window manager.

Tom

2005-01-03  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* batch_run: Invoke Xvfb and metacity if GUI key is specified.
	* choose: Handle GUI tag.
	* README: Add section on GUI tests.


[-- Attachment #2: Type: text/x-patch, Size: 2994 bytes --]

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	4 Jan 2005 18:05:58 -0000
@@ -172,6 +172,17 @@
 
 ================================================================
 
+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.  By default, metacity is run in
+Xvfb; use the WM environment variable to run a different window
+manager.  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	4 Jan 2005 18:05:58 -0000
@@ -63,6 +63,32 @@
 # Generate test classes list
 ./choose-classes . "$KEYS"
 
+case $KEYS in
+    *GUI*)
+
+        XVFB=`which Xvfb`
+        if test "x$WM" = "x"; then
+            WM=`which metacity`
+        fi
+
+        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 $WM; 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=$!
+		$WM > /dev/null 2>&1 &
+		WM_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 +107,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	4 Jan 2005 18:05:58 -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"

  reply	other threads:[~2005-01-04 18:08 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-01-03 23:37 Thomas Fitzsimmons
2005-01-04  8:31 ` Thomas Zander
2005-01-04 18:08   ` Thomas Fitzsimmons [this message]
2005-01-04 21:16     ` Thomas Fitzsimmons
2005-01-04  9:01 ` Michael Koch
2005-01-04 16:39   ` Thomas Fitzsimmons
2005-01-04 17:35     ` Michael Koch
2005-01-04 18:28       ` Thomas Fitzsimmons
2005-01-04 19:28     ` Tom Tromey
2005-01-04 21:08     ` Michael Koch

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1104862126.6374.150.camel@tortoise.toronto.redhat.com \
    --to=fitzsim@redhat.com \
    --cc=mauve-discuss@sources.redhat.com \
    --cc=zander@kde.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).