This is the mail archive of the
mailing list for the Mauve project.
Re: Patch: GUI testing framework
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
> 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.
2005-01-03 Thomas Fitzsimmons <email@example.com>
* batch_run: Invoke Xvfb and metacity if GUI key is specified.
* choose: Handle GUI tag.
* README: Add section on GUI tests.
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
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
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
+ XVFB=`which Xvfb`
+ if test "x$WM" = "x"; then
+ WM=`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 $WM; then
+ echo "warning: metacity not found on PATH. Showing GUI tests on main desktop..."
+ export DISPLAY=:57
+ echo localhost > Xvfb.cfg
+ $XVFB :57 -auth Xvfb.cfg > /dev/null 2>&1 &
+ $WM > /dev/null 2>&1 &
+ rm -f Xvfb.cfg
# 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"
+case $KEYS in
+ # killing Xvfb also kills the window manager process
+ if test ! -z "$XVFB_PID"; then
+ kill $XVFB_PID > /dev/null 2>&1
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.
+ tags="$tags GUI $i"
+ test -z "$seen_dashdash" && spectags="$spectags $i"
tags="$tags JDK1.0 JDK1.1 JDK1.2 $i"
test -z "$seen_dashdash" && spectags="$spectags $i"