This is the mail archive of the
mauve-patches@sources.redhat.com
mailing list for the Mauve project.
Patch: batch_run, runner and GUI improvements
- From: Thomas Fitzsimmons <fitzsim at redhat dot com>
- To: mauve-patches at sources dot redhat dot com
- Date: Mon, 21 Feb 2005 01:48:24 -0500
- Subject: Patch: batch_run, runner and GUI improvements
Hi,
I'm committing this patch. It makes some improvements in batch_run and
runner for the natively-compiled case, adds the createRobot convenience
method to TestHarness and changes some GUI tests to use
Robot.waitForIdle.
Tom
2005-02-21 Thomas Fitzsimmons <fitzsim@redhat.com>
* .cvsignore: Add testfilename.txt.
* batch_run (COMPILER_FLAGS): Set to -g -O0 if COMPILER is gcj.
(NATIVE): Set to true if COMPILER is gcj.
Try to use metacity as window manager. Default to /bin/true if
metacity is not found.
Add COMPILER_FLAGS to native compilation.
* runner: Run with -file option in native case. Elide
kill-on-timeout code.
* gnu/testlet/TestHarness.java (createRobot): New method.
* gnu/testlet/java/awt/Robot/createScreenCapture.java: Use
waitForIdle instead of arbitrary delay.
* gnu/testlet/java/awt/Robot/getPixelColor.java: Likewise.
* gnu/testlet/java/awt/Robot/keyPress.java: Likewise.
* gnu/testlet/java/awt/Robot/keyRelease.java: Likewise.
* gnu/testlet/java/awt/Robot/mouseMove.java: Likewise.
* gnu/testlet/java/awt/Robot/mousePress.java: Likewise.
* gnu/testlet/java/awt/Robot/mouseRelease.java: Likewise.
* gnu/testlet/java/awt/Robot/mouseWheel.java: Likewise.
Index: .cvsignore
===================================================================
RCS file: /cvs/mauve/mauve/.cvsignore,v
retrieving revision 1.5
diff -u -r1.5 .cvsignore
--- .cvsignore 14 Oct 2004 06:49:53 -0000 1.5
+++ .cvsignore 21 Feb 2005 06:46:13 -0000
@@ -15,6 +15,7 @@
dataoutput2.out
utf8test.out
todos.txt
+testfilename.txt
build
doc
SimpleTestHarness
Index: ChangeLog
===================================================================
RCS file: /cvs/mauve/mauve/ChangeLog,v
retrieving revision 1.884
diff -u -r1.884 ChangeLog
--- ChangeLog 21 Feb 2005 00:38:59 -0000 1.884
+++ ChangeLog 21 Feb 2005 06:46:18 -0000
@@ -1,3 +1,24 @@
+2005-02-21 Thomas Fitzsimmons <fitzsim@redhat.com>
+
+ * .cvsignore: Add testfilename.txt.
+ * batch_run (COMPILER_FLAGS): Set to -g -O0 if COMPILER is gcj.
+ (NATIVE): Set to true if COMPILER is gcj.
+ Try to use metacity as window manager. Default to /bin/true if
+ metacity is not found.
+ Add COMPILER_FLAGS to native compilation.
+ * runner: Run with -file option in native case. Elide
+ kill-on-timeout code.
+ * gnu/testlet/TestHarness.java (createRobot): New method.
+ * gnu/testlet/java/awt/Robot/createScreenCapture.java: Use
+ waitForIdle instead of arbitrary delay.
+ * gnu/testlet/java/awt/Robot/getPixelColor.java: Likewise.
+ * gnu/testlet/java/awt/Robot/keyPress.java: Likewise.
+ * gnu/testlet/java/awt/Robot/keyRelease.java: Likewise.
+ * gnu/testlet/java/awt/Robot/mouseMove.java: Likewise.
+ * gnu/testlet/java/awt/Robot/mousePress.java: Likewise.
+ * gnu/testlet/java/awt/Robot/mouseRelease.java: Likewise.
+ * gnu/testlet/java/awt/Robot/mouseWheel.java: Likewise.
+
2005-02-20 Mark Wielaard <mark@klomp.org>
* gnu/testlet/java/awt/font/TextAttribute/constants.java:
Index: batch_run
===================================================================
RCS file: /cvs/mauve/mauve/batch_run,v
retrieving revision 1.7
diff -u -r1.7 batch_run
--- batch_run 5 Jan 2005 00:15:11 -0000 1.7
+++ batch_run 21 Feb 2005 06:46:18 -0000
@@ -42,11 +42,16 @@
COMPILER="jikes -bootclasspath /usr/local/classpath/share/classpath/glibj.zip"
fi
+if test "x$COMPILER" = "xgcj"; then
+COMPILER_FLAGS="-g -O0"
+else
COMPILER_FLAGS="-g"
+fi
-if test "x$NATIVE" = "x"; then
+if test "x$COMPILER" = "xgcj"; then
+NATIVE="true"
+else
NATIVE=
-#NATIVE="true"
fi
# Cleanup
@@ -68,16 +73,16 @@
case $KEYS in
*GUI*)
- XVFB=`which Xvfb`
- if test "x$WM" = "x"; then
- WM=`which metacity`
- # check if we found metacity
+ if test -z "$SHOW_GUI_TESTS"; then
+ XVFB=`which Xvfb`
if test "x$WM" = "x"; then
- WM=`which true`
+ WM=`which metacity`
+ # check if we found metacity
+ if test "x$WM" = "x"; then
+ WM=`which true`
+ fi
fi
- 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
@@ -104,7 +109,7 @@
if test -z "$NATIVE"; then
$COMPILER $COMPILER_FLAGS @uses_files
else
- $COMPILER -o SimpleTestHarness --main=gnu.testlet.SimpleTestHarness \
+ $COMPILER $COMPILER_FLAGS -o SimpleTestHarness --main=gnu.testlet.SimpleTestHarness \
$framework_sources `cat uses_files`
fi
if test $? == 0; then
Index: runner
===================================================================
RCS file: /cvs/mauve/mauve/runner,v
retrieving revision 1.5
diff -u -r1.5 runner
--- runner 19 Dec 2004 20:36:41 -0000 1.5
+++ runner 21 Feb 2005 06:46:18 -0000
@@ -58,8 +58,9 @@
testclass=$1
# Run process
-if test "$RUNTIME" = "native"; then
- echo $testclass | ./SimpleTestHarness -resultsonly &
+if test "x$RUNTIME" = "xnative"; then
+ echo $testclass > testfilename.txt
+ ./SimpleTestHarness -debug -verbose -file testfilename.txt &
else
echo $testclass | $RUNTIME gnu.testlet.SimpleTestHarness -debug -verbose &
fi
@@ -68,10 +69,11 @@
result=$?
# cleanup timeout
-trap '' SIGALRM
-if test $KILLED != 1; then
- kill -9 $TIMEOUT > /dev/null 2>&1
-fi
+# FIXME: this kills tests too early:
+# trap '' SIGALRM
+# if test $KILLED != 1; then
+# kill -9 $TIMEOUT > /dev/null 2>&1
+# fi
# Test terminated unexpectedly?
if test $result != 0 -a $result != 1; then
Index: gnu/testlet/TestHarness.java
===================================================================
RCS file: /cvs/mauve/mauve/gnu/testlet/TestHarness.java,v
retrieving revision 1.18
diff -u -r1.18 TestHarness.java
--- gnu/testlet/TestHarness.java 30 Dec 2004 10:18:28 -0000 1.18
+++ gnu/testlet/TestHarness.java 21 Feb 2005 06:46:18 -0000
@@ -23,6 +23,8 @@
import java.io.File;
import java.io.Reader;
import java.io.InputStream;
+import java.awt.AWTException;
+import java.awt.Robot;
/**
* This base class defines the API that test cases can report against. This
@@ -155,6 +157,22 @@
check (result, expected);
}
+ public Robot createRobot ()
+ {
+ Robot r = null;
+
+ try
+ {
+ r = new Robot ();
+ }
+ catch (AWTException e)
+ {
+ fail ("TestHarness: couldn't create Robot: " + e.getMessage ());
+ }
+
+ return r;
+ }
+
/**
* A convenience method that sets a checkpoint with the specified name
* then records a failed check.
Index: gnu/testlet/java/awt/Robot/createScreenCapture.java
===================================================================
RCS file: /cvs/mauve/mauve/gnu/testlet/java/awt/Robot/createScreenCapture.java,v
retrieving revision 1.1
diff -u -r1.1 createScreenCapture.java
--- gnu/testlet/java/awt/Robot/createScreenCapture.java 5 Jan 2005 00:15:12 -0000 1.1
+++ gnu/testlet/java/awt/Robot/createScreenCapture.java 21 Feb 2005 06:46:19 -0000
@@ -65,7 +65,7 @@
f.setLocation (0, 0);
f.show ();
- r.delay (1000);
+ r.waitForIdle ();
BufferedImage screenshot = r.createScreenCapture (new Rectangle (50, 50, 100, 100));
Index: gnu/testlet/java/awt/Robot/getPixelColor.java
===================================================================
RCS file: /cvs/mauve/mauve/gnu/testlet/java/awt/Robot/getPixelColor.java,v
retrieving revision 1.1
diff -u -r1.1 getPixelColor.java
--- gnu/testlet/java/awt/Robot/getPixelColor.java 5 Jan 2005 00:15:12 -0000 1.1
+++ gnu/testlet/java/awt/Robot/getPixelColor.java 21 Feb 2005 06:46:19 -0000
@@ -64,11 +64,11 @@
f.setLocation (250, 250);
f.show ();
- r.delay (100);
+ r.waitForIdle ();
Color c = r.getPixelColor (300, 300);
- r.delay (100);
+ r.waitForIdle ();
// check that pixel is red
harness.check (c.getRed () == 255
Index: gnu/testlet/java/awt/Robot/keyPress.java
===================================================================
RCS file: /cvs/mauve/mauve/gnu/testlet/java/awt/Robot/keyPress.java,v
retrieving revision 1.1
diff -u -r1.1 keyPress.java
--- gnu/testlet/java/awt/Robot/keyPress.java 5 Jan 2005 00:15:12 -0000 1.1
+++ gnu/testlet/java/awt/Robot/keyPress.java 21 Feb 2005 06:46:19 -0000
@@ -93,7 +93,7 @@
r.keyPress (KeyEvent.VK_A);
r.keyRelease (KeyEvent.VK_A);
- r.delay (100);
+ r.waitForIdle ();
harness.check (pressChar == 'a');
harness.check (pressCount == 1);
Index: gnu/testlet/java/awt/Robot/keyRelease.java
===================================================================
RCS file: /cvs/mauve/mauve/gnu/testlet/java/awt/Robot/keyRelease.java,v
retrieving revision 1.1
diff -u -r1.1 keyRelease.java
--- gnu/testlet/java/awt/Robot/keyRelease.java 5 Jan 2005 00:15:12 -0000 1.1
+++ gnu/testlet/java/awt/Robot/keyRelease.java 21 Feb 2005 06:46:19 -0000
@@ -85,7 +85,7 @@
r.keyPress (KeyEvent.VK_A);
r.keyRelease (KeyEvent.VK_A);
- r.delay (100);
+ r.waitForIdle ();
harness.check (releaseChar == 'a');
harness.check (releaseCount == 1);
Index: gnu/testlet/java/awt/Robot/mouseMove.java
===================================================================
RCS file: /cvs/mauve/mauve/gnu/testlet/java/awt/Robot/mouseMove.java,v
retrieving revision 1.1
diff -u -r1.1 mouseMove.java
--- gnu/testlet/java/awt/Robot/mouseMove.java 5 Jan 2005 00:15:12 -0000 1.1
+++ gnu/testlet/java/awt/Robot/mouseMove.java 21 Feb 2005 06:46:19 -0000
@@ -81,7 +81,7 @@
r.mousePress (InputEvent.BUTTON1_MASK);
r.mouseRelease (InputEvent.BUTTON1_MASK);
- r.delay (100);
+ r.waitForIdle ();
Insets i = f.getInsets ();
Index: gnu/testlet/java/awt/Robot/mousePress.java
===================================================================
RCS file: /cvs/mauve/mauve/gnu/testlet/java/awt/Robot/mousePress.java,v
retrieving revision 1.1
diff -u -r1.1 mousePress.java
--- gnu/testlet/java/awt/Robot/mousePress.java 5 Jan 2005 00:15:12 -0000 1.1
+++ gnu/testlet/java/awt/Robot/mousePress.java 21 Feb 2005 06:46:19 -0000
@@ -79,7 +79,7 @@
r.mousePress (InputEvent.BUTTON1_MASK);
r.mouseRelease (InputEvent.BUTTON1_MASK);
- r.delay (100);
+ r.waitForIdle ();
harness.check (mousePressCount == 1);
}
Index: gnu/testlet/java/awt/Robot/mouseRelease.java
===================================================================
RCS file: /cvs/mauve/mauve/gnu/testlet/java/awt/Robot/mouseRelease.java,v
retrieving revision 1.1
diff -u -r1.1 mouseRelease.java
--- gnu/testlet/java/awt/Robot/mouseRelease.java 5 Jan 2005 00:15:12 -0000 1.1
+++ gnu/testlet/java/awt/Robot/mouseRelease.java 21 Feb 2005 06:46:19 -0000
@@ -79,7 +79,7 @@
r.mousePress (InputEvent.BUTTON1_MASK);
r.mouseRelease (InputEvent.BUTTON1_MASK);
- r.delay (100);
+ r.waitForIdle ();
harness.check (mouseReleaseCount == 1);
}
Index: gnu/testlet/java/awt/Robot/mouseWheel.java
===================================================================
RCS file: /cvs/mauve/mauve/gnu/testlet/java/awt/Robot/mouseWheel.java,v
retrieving revision 1.1
diff -u -r1.1 mouseWheel.java
--- gnu/testlet/java/awt/Robot/mouseWheel.java 5 Jan 2005 00:15:12 -0000 1.1
+++ gnu/testlet/java/awt/Robot/mouseWheel.java 21 Feb 2005 06:46:19 -0000
@@ -88,7 +88,7 @@
r.mouseWheel (2);
r.mouseWheel (-3);
- r.delay (100);
+ r.waitForIdle ();
harness.check (mouseWheelUpCount == -8);
harness.check (mouseWheelDownCount == 10);