You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by sm...@apache.org on 2007/06/01 07:22:51 UTC
svn commit: r543394 [3/3] - in /harmony/enhanced/buildtest/branches/2.0:
adaptors/ega/ tests/ega/
Added: harmony/enhanced/buildtest/branches/2.0/tests/ega/ega_eclipse_3.2.1.pl
URL: http://svn.apache.org/viewvc/harmony/enhanced/buildtest/branches/2.0/tests/ega/ega_eclipse_3.2.1.pl?view=auto&rev=543394
==============================================================================
--- harmony/enhanced/buildtest/branches/2.0/tests/ega/ega_eclipse_3.2.1.pl (added)
+++ harmony/enhanced/buildtest/branches/2.0/tests/ega/ega_eclipse_3.2.1.pl Thu May 31 22:22:50 2007
@@ -0,0 +1,831 @@
+#!/usr/bin/perl
+
+## ===================================================================
+## Licensed to the Apache Software Foundation (ASF) under one
+## or more contributor license agreements. See the NOTICE file
+## distributed with this work for additional information
+## regarding copyright ownership. The ASF licenses this file
+## to you under the Apache License, Version 2.0 (the
+## "License"); you may not use this file except in compliance
+## with the License. You may obtain a copy of the License at
+##
+## http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing,
+## software distributed under the License is distributed on an
+## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+## KIND, either express or implied. See the License for the
+## specific language governing permissions and limitations
+## under the License.
+## ===================================================================
+
+use X11::GUITest qw/
+
+ FindWindowLike
+
+ GetWindowName
+
+ SetInputFocus
+ GetInputFocus
+
+ WaitWindowViewable
+ WaitWindowClose
+
+ SendKeys
+ SetKeySendDelay
+
+ PressKey
+ ReleaseKey
+
+ StartApp
+ RunApp
+/;
+
+ # Set option
+ SetKeySendDelay(200);
+
+ # Current directory
+ $curdir = `pwd`;
+ $curdir =~ s/\n//;
+
+ # Set variables
+ if ((scalar(@ARGV) == 9) || (scalar(@ARGV) == 10)) {
+ $eclipse_home = $ARGV[0];
+ $java_home = $ARGV[1];
+ $resultsDir = $ARGV[2];
+ $os_arch = $ARGV[3];
+ $iter_num = $ARGV[4];
+ $time_frame = $ARGV[5];
+ $delay_factor = $ARGV[6];
+ $eclipse_kill = $ARGV[7];
+ $vm_options = $ARGV[8];
+ $vm_debug_options = "";
+ if (-e -d $resultsDir) {
+ die "ERROR: Result dir = $resultsDir doesn't exist!";
+ }
+ LogWrite("\n--- Automated EGA scenario for Eclipse 3.2.1 --- \n\n");
+ LogWrite("\nEclipse Home = $eclipse_home\n");
+ LogWrite("Tested JRE Home = $java_home\n");
+ LogWrite("OS_ARCH = $os_arch\n\n");
+ LogWrite("Tested JRE options for Eclipse launching = $vm_options\n");
+ if (scalar(@ARGV) == 10) {
+ $vm_debug_options = $ARGV[9];
+ LogWrite("Tested JRE options for debug step = $vm_debug_options\n");
+ }
+ LogWrite("\n");
+ if ($iter_num < 0) {
+ LogWrite("\nERROR: Iteration number < 0! \n\nEGA FAILED!\n");
+ die "ERROR: Iteration number < 0!";
+ }
+ if (($iter_num == 0) && ($time_frame <= 0)) {
+ LogWrite("\nERROR: Time frame for the scenario run <= 0! \n\nEGA FAILED!\n");
+ die "ERROR: Time frame for the scenario run <= 0!";
+ }
+ if ($delay_factor < 1) {
+ LogWrite("\nERROR: Delay factor < 1! \n\nEGA FAILED!\n");
+ die "ERROR: Delay factor < 1!";
+ }
+ if (($eclipse_kill != 0) && ($eclipse_kill != 1)) {
+ LogWrite("\nERROR: Wrong 'kill Eclipse' flag value! \n\nEGA FAILED!\n");
+ die "ERROR: Wrong 'kill Eclipse' flag value!";
+ }
+ if ($iter_num > 0) { LogWrite("Iteration number = $iter_num \n"); }
+ if (($iter_num == 0) && ($time_frame > 0)) {
+ LogWrite("Time frame for the scenario run = $time_frame hours \n");
+ }
+ if ($delay_factor >= 1) { LogWrite("Delay factor = $delay_factor \n"); }
+ LogWrite("Kill Eclipse if EGA scenario fails = $eclipse_kill \n");
+ } else {
+ die "ERROR: Wrong number of input parameters!";
+ }
+
+ # Check if some Eclipse window is already olpened
+ my ($eclipse_win) = FindWindowLike('Eclipse SDK');
+ if (($eclipse_win)) {
+ LogWrite("\nERROR: Some Eclipse window is already opened! \n\n EGA FAILED!\n");
+ die "ERROR: Some Eclipse window is already opened!"
+ }
+
+ LogWrite("Start: \n");
+
+ LogWrite("\tRun Eclipse \n");
+ $result = StartApp("$java_home/bin/java $vm_options -cp \"$eclipse_home/startup.jar\" -Dosgi.install.area=\"$eclipse_home\" org.eclipse.core.launcher.Main -ws gtk -os linux -arch $os_arch -debug > $resultsDir/eclipse.log 2\>\&1");
+
+ if ($result == 0) {
+ LogWrite("\nERROR: Can't start Eclipse! \n\n EGA FAILED!\n");
+ die "ERROR: Can't start Eclipse!"
+ }
+
+ # Select default workspace
+ LogWrite("\tSelect workspace \n");
+ my $winID = WinWaitImpl('Workspace Launcher');
+ LogWrite("\tSelect ".$curdir."/workspace as workspace \n");
+ WinSendKeys($curdir.'/workspace', 'Workspace Launcher');
+ LogWrite("\tPress 'OK' button \n");
+ WinSendKeys('{ENT}', 'Workspace Launcher');
+ WinWaitCloseImpl($winID);
+
+ # Prepare Eclipse environment
+ LogWrite("\nPrepare Eclipse environment: \n");
+
+ # Close Welcome page
+ LogWrite("\tClose Welcome page \n");
+ $winID = WinWaitImpl('Java - Eclipse SDK');
+ WinSendKeys('%({+}{-})', 'Java - Eclipse SDK');
+ SendKeys('c');
+ Sleep(3000);
+
+ # Uncheck Project->Build Automatically
+ LogWrite("\tUncheck Project->Build Automatically \n");
+ WinSendKeys('%(p)m', 'Java - Eclipse SDK');
+ Sleep(3000);
+
+ # Set M2_REPO variable
+ LogWrite("\tSelect Window->Preferences \n");
+ WinSendKeys('%(w)p', 'Java - Eclipse SDK');
+ $winID = WinWaitImpl('Preferences');
+ LogWrite("\tSelect Java->Build Path->Classpath Variables \n");
+ Sleep(3000);
+ WinSendKeys('{ENT}{DOW 4}', 'Preferences');
+ PressKey('{NUM}');
+ WinSendKeys('{+}{DOW 2}{+}{DOW}', 'Preferences');
+ ReleaseKey('{NUM}');
+ Sleep(10000);
+ LogWrite("\tCreate M2_REPO variable \n");
+ WinSendKeys('%(n)', 'Preferences');
+ $winID2 = WinWaitImpl('New Variable Entry');
+ Sleep(3000);
+ WinSendKeys('%(n)', 'New Variable Entry');
+ WinSendKeys('M2_REPO', 'New Variable Entry');
+ LogWrite("\tSet M2_REPO value to ".$curdir."/project/.m2/repository \n");
+ WinSendKeys('%(p)', 'New Variable Entry');
+ WinSendKeys($curdir.'/project/.m2/repository', 'New Variable Entry');
+ Sleep(3000);
+ LogWrite("\tPress OK button\n");
+ WinSendKeys('{ENT}', 'New Variable Entry');
+ WinWaitCloseImpl($winID2);
+ LogWrite("\tPress OK button to apply new preferences \n");
+ Sleep(3000);
+ WinSendKeys('{TAB 3}{ENT}', 'Preferences');
+ WinWaitCloseImpl($winID);
+ Sleep(3000);
+
+ # Import geronimo modules
+ WinWaitImpl('Java - Eclipse SDK');
+ LogWrite("\nImport geronimo modules into workspace: \n");
+ LogWrite("\tSelect File->Import... \n");
+ WinSendKeys('%(f)i', 'Java - Eclipse SDK');
+ $winID = WinWaitImpl('Import');
+ Sleep(3000);
+ LogWrite("\tSelect import existing project \n");
+ WinSendKeys('{ENT}', 'Import');
+ Sleep(3000);
+ PressKey('{NUM}');
+ Sleep(3000);
+ WinSendKeys('{+}', 'Import');
+ Sleep(3000);
+ ReleaseKey('{NUM}');
+ Sleep(3000);
+ WinSendKeys('{DOW 3}{ENT}', 'Import');
+ Sleep(3000);
+ LogWrite("\tType path to search projects: ".$curdir."/project/geronimo-1.2-beta/modules \n");
+ WinSendKeys('%(t)', 'Import');
+ WinSendKeys($curdir.'/project/geronimo-1.2-beta/modules', 'Import');
+ Sleep(3000);
+ WinSendKeys('%(e)', 'Import');
+ Sleep(10000); # Searching for projects
+ WinSendKeys("%(p)", 'Import');
+ Sleep(3000);
+ LogWrite("\tUncheck all builders \n");
+ WinSendKeys("{DOW 2}{SPA}", 'Import') ; #geronimo-activemq-gbean
+ WinSendKeys("{DOW 3}{SPA}", 'Import') ; #geronimo-axis-builder
+ WinSendKeys("{DOW 2}{SPA}", 'Import') ; #geronimo-client-builder
+ WinSendKeys("{DOW 2}{SPA}", 'Import') ; #geronimo-clustering-builder-wadi
+ WinSendKeys("{DOW 3}{SPA}", 'Import') ; #geronimo-connector
+ WinSendKeys("{DOW 1}{SPA}", 'Import') ; #geronimo-connector-builder
+ WinSendKeys("{DOW 5}{SPA}", 'Import') ; #geronimo-deployment
+ WinSendKeys("{DOW 1}{SPA}", 'Import') ; #geronimo-deploy-tool
+ WinSendKeys("{DOW 2}{SPA}", 'Import') ; #geronimo-directory
+ WinSendKeys("{DOW 1}{SPA}", 'Import') ; #geronimo-hot-deploy
+ WinSendKeys("{DOW 3}{SPA}", 'Import') ; #geronimo-j2ee-builder
+ WinSendKeys("{DOW 1}{SPA}", 'Import') ; #geronimo-j2ee-schema
+ WinSendKeys("{DOW 1}{SPA}", 'Import') ; #geronimo-jetty
+ WinSendKeys("{DOW 1}{SPA}", 'Import') ; #geronimo-jetty-builder
+ WinSendKeys("{DOW 1}{SPA}", 'Import') ; #geronimo-jetty-clustering-wadi
+ WinSendKeys("{DOW 6}{SPA}", 'Import') ; #geronimo-naming-builder
+ WinSendKeys("{DOW 1}{SPA}", 'Import') ; #geronimo-persistence-jpa10
+ WinSendKeys("{DOW 1}{SPA}", 'Import') ; #geronimo-persistence-jpa10-builder
+ WinSendKeys("{DOW 2}{SPA}", 'Import') ; #geronimo-security-builder
+ WinSendKeys("{DOW 1}{SPA}", 'Import') ; #geronimo-service-builder
+ WinSendKeys("{DOW 2}{SPA}", 'Import') ; #geronimo-test-ddbean
+ WinSendKeys("{DOW 1}{SPA}", 'Import') ; #geronimo-timer
+ WinSendKeys("{DOW 1}{SPA}", 'Import') ; #geronimo-tomcat
+ WinSendKeys("{DOW 1}{SPA}", 'Import') ; #geronimo-tomcat-builder
+ WinSendKeys("{DOW 3}{SPA}", 'Import') ; #geronimo-upgrade
+ WinSendKeys("{DOW 2}{SPA}", 'Import') ; #geronimo-web-builder
+ WinSendKeys("{DOW 2}{SPA}", 'Import') ; #geronimo-webservices-builder
+ Sleep(3000);
+ WinSendKeys('%(c)', 'Import');
+ Sleep(3000);
+ LogWrite("\tImport \n");
+ WinSendKeys('%(f)', 'Import');
+ WinWaitCloseImpl($winID, 600);
+ Sleep(3000);
+
+ # Import testsupport module
+ LogWrite("\nImport testsupport module into workspace: \n");
+ WinWaitImpl('Java - Eclipse SDK');
+ LogWrite("\tSelect File->Import... \n");
+ WinSendKeys('%(f)i', 'Java - Eclipse SDK');
+ $winID = WinWaitImpl('Import');
+ Sleep(3000);
+ LogWrite("\tSelect import existing project \n");
+ WinSendKeys('{ENT}{ENT}', 'Import');
+ Sleep(3000);
+ LogWrite("\tType path to search projects: ".$curdir."/project/geronimo-1.2-beta/testsupport \n");
+ WinSendKeys('%(t)', 'Import');
+ WinSendKeys($curdir.'/project/geronimo-1.2-beta/testsupport', 'Import');
+ Sleep(3000);
+ WinSendKeys('%(e)', 'Import');
+ Sleep(10000); # Searching for projects
+ LogWrite("\tImport \n");
+ WinSendKeys('%(f)', 'Import');
+ WinWaitCloseImpl($winID, 300);
+ Sleep(3000);
+
+
+ ########## REPEATABLE PART ##########
+
+ LogWrite("\nStart repetable part: \n");
+
+ # preparation for repeating
+ $start_time = time();
+ $time_dif = 0;
+ $iter = 1;
+
+ # repeat
+ if ($iter_num != 0) {
+ while($iter <= $iter_num) { # run given iteration number
+ Main($iter);
+ $iter = $iter+1;
+ $end_time = time();
+ $time_dif = ($end_time - $start_time)/3600;
+ LogWrite("\nTime passed: ".$time_dif."h \n");
+ }
+ } else {
+ while($time_dif < $time_frame) { # run given time
+ Main($iter);
+ $iter = $iter+1;
+ $end_time = time();
+ $time_dif = ($end_time - $start_time)/3600;
+ LogWrite("\nTime passed: ".$time_dif."h \n");
+ }
+ }
+
+ LogWrite("\nScenario execution time: ".$time_dif."h \n")/3600;
+
+ ########## END REPEATABLE PART ###########
+
+ # Exit Eclipse
+ ExitEclipse();
+
+ # EGA passed
+ LogWrite("\nEGA PASSED! \n");
+ exit 0;
+
+
+
+### User-defined functions ###
+
+sub Main {
+
+ my $iteration = shift;
+
+ LogWrite("\n-------------------- Iteration ".$iteration." start ------------------\n");
+
+ # Clean project
+ LogWrite("\nClean all Geronimo modules: \n");
+ WinWaitImpl('Java - Eclipse SDK');
+ LogWrite("\tSelect Project->Clean... \n");
+ WinSendKeys('%(p)n', 'Java - Eclipse SDK');
+ $winID = WinWaitImpl("Clean");
+ Sleep(3000);
+ if ($iteration == 1) {
+ LogWrite("\tUncheck start build immediatelly \n");
+ WinSendKeys("%(b)", "Clean");
+ }
+ Sleep(3000);
+ WinSendKeys("{ENT}", "Clean");
+ WinWaitCloseImpl($winID);
+ my ($cleaning) = WaitWindowViewable('Cleaning selected projects', 0, 15);
+ if (($cleaning)) {
+ LogWrite("\twindow 'Cleaning selected projects' (".($cleaning).") appeared\n");
+ WinWaitCloseImpl(($cleaning), 300);
+ } else {
+ Sleep(5000);
+ }
+ Sleep(5000); # Need some check here "Operation in progress" and "0 errors"!
+
+ # Build all Geronimo modules
+ LogWrite("\nBuild all Geronimo modules: \n");
+ WinWaitImpl('Java - Eclipse SDK');
+ LogWrite("\tSelect Project->Build All \n");
+ WinSendKeys('%(p)a', 'Java - Eclipse SDK');
+ $winID = WinWaitImpl("Building Workspace", false);
+ WinWaitCloseImpl($winID, 600);
+ Sleep(10000); # Need some check here "Operation in progress" and "0 errors"!
+
+ # Open Navigator view
+ WinWaitImpl('Java - Eclipse SDK');
+ LogWrite("\nOpen Navigator view: \n");
+ WinSendKeys('%(w)v{DOW 6}{ENT}', 'Java - Eclipse SDK');
+ Sleep(3000);
+
+ # Fix org.apache.geronimo.common.propertyeditor.PropertyEditorsTest
+ if ($iteration == 1) {
+ LogWrite("\nFix org.apache.geronimo.common.propertyeditor.PropertyEditorsTest: \n");
+ LogWrite("\tSelect 'Navigate->Open Resource' \n");
+ WinSendKeys('%(n)u', 'Java - Eclipse SDK');
+ $winID = WinWaitImpl('Open Resource');
+ LogWrite("\tType PropertyEditorsTest.java into 'Open Resource' dialog \n");
+ Sleep(3000);
+ WinSendKeys('PropertyEditorsTest.java', 'Open Resource');
+ Sleep(3000);
+ WinSendKeys('{ENT}', 'Open Resource');
+ WinWaitCloseImpl($winID);
+ WinWaitImpl("Java - PropertyEditorsTest.java - Eclipse SDK");
+ Sleep(5000);
+ LogWrite("\tGo to line 'protected void setUp() throws Exception {' \n");
+ WinSendKeys('^(l)', 'Java - PropertyEditorsTest.java - Eclipse SDK');
+ $winID = WinWaitImpl("Go to Line");
+ Sleep(3000);
+ WinSendKeys('52', 'Go to Line');
+ Sleep(3000);
+ WinSendKeys('{ENT}', 'Go to Line');
+ WinWaitCloseImpl($winID);
+ Sleep(3000);
+ $winID = WinWaitImpl("Java - PropertyEditorsTest.java - Eclipse SDK");
+ Sleep(3000);
+ LogWrite("\tAdd line Class.forName(\"org.apache.geronimo.common.propertyeditor.PropertyEditors\"); to setUp() method \n");
+ WinSendKeys('{END}{ENT}', 'Java - PropertyEditorsTest.java - Eclipse SDK');
+ WinSendKeys('Class.forName{(}"org.apache.geronimo.common.propertyeditor.PropertyEditors"{END};', 'Java - PropertyEditorsTest.java - Eclipse SDK');
+ Sleep(3000);
+ LogWrite("\tSave PropertyEditorsTest.java \n");
+ WinSendKeys('^(s)', 'Java - PropertyEditorsTest.java - Eclipse SDK');
+ Sleep(3000);
+ LogWrite("\tClose PropertyEditorsTest.java \n");
+ WinSendKeys('%(f)c', 'Java - PropertyEditorsTest.java - Eclipse SDK');
+ Sleep(3000);
+ WinWaitImpl("Java - Eclipse SDK");
+}
+
+ # Run JUnit tests from geronimo-common module
+ LogWrite("\nRun JUnit tests from geronimo-common module: \n");
+ LogWrite("\tSelect geronimo-common module \n");
+ WinSendKeys("{DOW 7}", 'Java - Eclipse SDK');
+ Sleep(3000);
+ LogWrite("\tOpen Run->Run \n");
+ WinSendKeys('%(r)n', 'Java - Eclipse SDK');
+ $winID = WinWaitImpl("Run");
+ Sleep(3000);
+ LogWrite("\tCreate new JUnit run configuration \n");
+ WinSendKeys("{TAB}", "Run");
+ Sleep(3000);
+ WinSendKeys("{DOW 4}", "Run");
+ Sleep(3000);
+ WinSendKeys("{SPA}", "Run");
+ Sleep(3000);
+ LogWrite("\tRun \n");
+ WinSendKeys("%(r)", "Run");
+ WinWaitCloseImpl($winID);
+ Sleep(20000); # Need some check here "Operation in progress" and "0 errors"!
+ if ($iteration > 50) { Sleep(20000); }
+
+ # Modify GBeanData class from geronimo-kernel module
+ LogWrite("\nModify GBeanData class from geronimo-kernel module: \n");
+ WinWaitImpl('Java - Eclipse SDK');
+ WinSendKeys('%(w)v{DOW 6}{ENT}', 'Java - Eclipse SDK');
+ Sleep(3000);
+ LogWrite("\tSelect geronimo-kernel module \n");
+ WinSendKeys("{DOW 9}", 'Java - Eclipse SDK');
+ Sleep(3000);
+ LogWrite("\tSelect Navigate->Go Into\n");
+ WinSendKeys('%(n)i', 'Java - Eclipse SDK');
+ Sleep(3000);
+ LogWrite("\tOpen GBeanData.java \n");
+ WinSendKeys("{DOW 1}{ENT}{DOW 1}{ENT}{DOW 1}{ENT}{DOW 1}{ENT}{DOW 1}{ENT}{DOW 1}{ENT}{DOW 1}{ENT}{DOW 10}{ENT}", 'Java - Eclipse SDK');
+ WinWaitImpl("Java - GBeanData.java - Eclipse SDK");
+ Sleep(6000);
+ LogWrite("\tSelect Edit->Find/Replace...\n");
+ WinSendKeys('%(e)f', "Java - GBeanData.java - Eclipse SDK");
+ $winID = WinWaitImpl("Find/Replace");
+ LogWrite("\tFind getAbstractName() method \n");
+ WinSendKeys("getAbstractName", "Find/Replace");
+ WinSendKeys("{ENT}", "Find/Replace");
+ Sleep(3000);
+ WinSendKeys("{ESC}", "Find/Replace");
+ WinWaitCloseImpl($winID);
+ Sleep(3000);
+ WinSendKeys("{END}", "Java - GBeanData.java - Eclipse SDK");
+ LogWrite("\tAdd System.out.println(\"Method getAbstractName() was called!\"); \n");
+ WinSendKeys("{ENT}", "Java - GBeanData.java - Eclipse SDK");
+ WinSendKeys('System.out.println{(}"Method getAbstractName{(}{)} was called{!}"{END};', "Java - GBeanData.java - Eclipse SDK");
+ Sleep(3000);
+ LogWrite("\tSave Class.java \n");
+ WinSendKeys("^(s)", "Java - GBeanData.java - Eclipse SDK");
+ Sleep(10000);
+
+ # Create JUnit test
+ LogWrite("\nCreate JUnit test: \n");
+ WinSendKeys("%(w)v{DOW 6}{ENT}", "Java - GBeanData.java - Eclipse SDK");
+ LogWrite("\tOpen geronimo-kernel/src/test/java/org/apache/geronimo/gbean folder\n");
+ WinSendKeys("{DOW 20}{ENT}{DOW 2}{ENT}{DOW 1}{ENT}{DOW 1}{ENT}{DOW 1}{ENT}{DOW 1}{ENT}", "Java - GBeanData.java - Eclipse SDK");
+ Sleep(3000);
+ LogWrite("\tSelect File->New->JUnit Test Case \n");
+ WinSendKeys("%(f)n{DOW 10}{ENT}", "Java - GBeanData.java - Eclipse SDK");
+ $winID = WinWaitImpl("New JUnit Test Case");
+ LogWrite("\tEnter SimpleGBeanDataTest as test name \n");
+ WinSendKeys("%(m)", "New JUnit Test Case");
+ WinSendKeys("SimpleGBeanDataTest", "New JUnit Test Case");
+ LogWrite("\tEnter org.apache.geronimo.gbean.GBeanData as class under test \n");
+ WinSendKeys("%(l)", "New JUnit Test Case");
+ WinSendKeys("org.apache.geronimo.gbean.GBeanData", "New JUnit Test Case");
+ Sleep(3000);
+ LogWrite("\tPress Next button \n");
+ WinSendKeys("{TAB 2}{ENT}", "New JUnit Test Case");
+ Sleep(3000);
+ LogWrite("\tEnter getAbstractName() as method under test \n");
+ WinSendKeys("{DOW 5}{SPA}", "New JUnit Test Case");
+ LogWrite("\tPress Finish button \n");
+ WinSendKeys("%(f)", "New JUnit Test Case");
+ WinWaitCloseImpl($winID);
+ $winID = WinWaitImpl("Java - SimpleGBeanDataTest.java - Eclipse SDK");
+ Sleep(3000);
+ LogWrite("\tFind string fail(\"Not yet implemented\"); \n");
+ WinSendKeys("{DOW 7}{END}", "Java - SimpleGBeanDataTest.java - Eclipse SDK");
+ LogWrite("\tDelete string fail(\"Not yet implemented\"); \n");
+ WinSendKeys("+({HOM})", "Java - SimpleGBeanDataTest.java - Eclipse SDK");
+ WinSendKeys("{DEL}", "Java - SimpleGBeanDataTest.java - Eclipse SDK");
+ LogWrite("\tAdd string System.out.println(new GBeanData().getAbstractName()); \n");
+ WinSendKeys("System.out.println{(}new GBeanData{(}{)}.getAbstractName{(}{)}{END};", "Java - SimpleGBeanDataTest.java - Eclipse SDK");
+ Sleep(3000);
+ LogWrite("\tSave SimpleGBeanDataTest.java \n");
+ WinSendKeys("^(s)", "Java - SimpleGBeanDataTest.java - Eclipse SDK");
+ Sleep(3000);
+ LogWrite("\tClose SimpleGBeanDataTest.java \n");
+ WinSendKeys("%(f)c", "Java - SimpleGBeanDataTest.java - Eclipse SDK");
+ WinWaitImpl("Java - GBeanData.java - Eclipse SDK");
+
+ # Build project
+ LogWrite("\nBuild project: \n");
+ Sleep(3000);
+ WinSendKeys('{F12}', "Java - GBeanData.java - Eclipse SDK");
+ WinSendKeys('%(p)b', "Java - GBeanData.java - Eclipse SDK");
+ Sleep(10000); # Need some check here "Operation in progress" and "0 errors"!
+
+ # Run SimpleGBeanDataTest
+ LogWrite("\nRun SimpleGBeanDataTest: \n");
+ WinSendKeys("%(w)v{DOW 6}{ENT}", "Java - GBeanData.java - Eclipse SDK");
+ LogWrite("\tSelect Run->Run As->JUnit Test\n");
+ WinSendKeys("%(r)s1", "Java - GBeanData.java - Eclipse SDK");
+ Sleep(10000); # Need some check here "Operation in progress" and "0 errors"!
+
+ # Set breakpoint
+ LogWrite("\nSet breakpoint in GBeanData.java: \n");
+ WinWaitImpl("Java - GBeanData.java - Eclipse SDK");
+ WinSendKeys("{F12}", "Java - GBeanData.java - Eclipse SDK"); #switch to main pane
+ Sleep(3000);
+ LogWrite("\tGo to line: System.out.println(\"Method getAbstractName() was called!\");\n");
+ WinSendKeys("^(l)", "Java - GBeanData.java - Eclipse SDK");
+ $winID = WinWaitImpl("Go to Line");
+ Sleep(3000);
+ WinSendKeys("75", "Java - GBeanData.java - Eclipse SDK");
+ WinSendKeys("{ENT}", "Java - GBeanData.java - Eclipse SDK");
+ WinWaitCloseImpl($winID);
+ Sleep(3000);
+ LogWrite("\tSet breakpoint\n");
+ #WinSendKeys("^(+(b))", "Java - GBeanData.java - Eclipse SDK");
+ WinSendKeys("%(r)kk{ENT}", "Java - GBeanData.java - Eclipse SDK");
+ Sleep(3000);
+
+ # Debug
+ LogWrite("\nDebug: \n");
+ WinWaitImpl("Java - GBeanData.java - Eclipse SDK");
+ LogWrite("\tSelect Run->Debug... \n");
+ WinSendKeys("%(r)b", "Java - GBeanData.java - Eclipse SDK");
+ $winID = WinWaitImpl("Debug");
+ LogWrite("\tSelect SimpleGBeanDataTest run configuration \n");
+ Sleep(6000);
+ WinSendKeys("{ENT}", "Debug");
+ Sleep(6000);
+ if (length($vm_debug_options) > 0) {
+ LogWrite("\tAdd vm options $vm_debug_options for debug step\n");
+ WinSendKeys("{TAB 2}{RIG}", "Debug");
+ Sleep(6000);
+ WinSendKeys("%(g)", "Debug");
+ Sleep(6000);
+ WinSendKeys("$vm_debug_options", "Debug");
+ Sleep(6000);
+ WinSendKeys("%(y)", "Debug");
+ }
+ LogWrite("\tPress Debug button \n");
+ WinSendKeys("{ENT}", "Debug");
+ WinWaitCloseImpl($winID);
+ $winID = WinWaitImpl("Confirm Perspective Switch");
+ LogWrite("\tPress Yes button \n");
+ WinSendKeys("%(y)", "Confirm Perspective Switch");
+ WinWaitCloseImpl($winID);
+ Sleep(6000);
+ LogWrite("\tStep over \n");
+ WinSendKeys("%(r)o", "Debug - GBeanData.java - Eclipse SDK");
+ Sleep(6000);
+ LogWrite("\tStep over \n");
+ WinSendKeys("%(r)o", "Debug - GBeanData.java - Eclipse SDK");
+ Sleep(6000);
+ WinWaitImpl("Debug - SimpleGBeanDataTest.java - Eclipse SDK");
+ LogWrite("\tStep over \n");
+ WinSendKeys("%(r)o", "Debug - SimpleGBeanDataTest.java - Eclipse SDK");
+ Sleep(6000);
+ LogWrite("\tResume \n");
+ WinSendKeys("%(r)mm{ENT}", "Debug - SimpleGBeanDataTest.java - Eclipse SDK");
+ Sleep(6000); # Some check is needed here!!!
+
+ # Switch to Java view
+ LogWrite("\nSwitch to Java perspective: \n");
+ WinWaitImpl("Debug - SimpleGBeanDataTest.java - Eclipse SDK");
+ LogWrite("\tSwitch perspective\n");
+ WinSendKeys("%(w)o{ENT}", "Debug - SimpleGBeanDataTest.java - Eclipse SDK");
+ WinWaitImpl("Java - SimpleGBeanDataTest.java - Eclipse SDK");
+ Sleep(3000);
+ LogWrite("\tClose SimpleGBeanDataTest.java \n");
+ WinSendKeys('%(f)c', "Java - SimpleGBeanDataTest.java - Eclipse SDK");
+ WinWaitImpl("Java - GBeanData.java - Eclipse SDK");
+
+ # Unset breakpoint
+ LogWrite("\nUnset breakpoint: \n");
+ Sleep(3000);
+ LogWrite("\tSelect Navigate->Go to Line... \n");
+ WinSendKeys("^(l)", "Java - GBeanData.java - Eclipse SDK");
+ $winID = WinWaitImpl("Go to Line");
+ Sleep(3000);
+ LogWrite("\tSelect line 75 of GBeanData.java \n");
+ WinSendKeys("75", "Go to Line");
+ LogWrite("\tPress OK button \n");
+ WinSendKeys("{ENT}", "Go to Line");
+ WinWaitCloseImpl($winID);
+ Sleep(3000);
+ LogWrite("\tUnset breakpoint \n");
+ WinSendKeys("^(+(b))", "Java - GBeanData.java - Eclipse SDK");
+ Sleep(3000);
+
+ # Remove GBeanData.java modifications
+ LogWrite("\nRemove GBeanData.java modifications: \n");
+ LogWrite("\tDelete string System.out.println(\"Method getAbstractName() was called!\"); \n");
+ WinSendKeys("{END}+({HOM}){DEL}{BS 6}", "Java - GBeanData.java - Eclipse SDK");
+ Sleep(3000);
+ LogWrite("\tSave GBeanData.java\n");
+ WinSendKeys("^(s)", "Java - GBeanData.java - Eclipse SDK");
+ Sleep(3000);
+ LogWrite("\tClose GBeanData.java \n");
+ WinSendKeys("%(f)c", "Java - GBeanData.java - Eclipse SDK");
+ Sleep(6000);
+ WinWaitImpl("Java - Eclipse SDK");
+
+ # Remove JUnit test
+ LogWrite("\nRemove JUnit test: \n");
+ WinSendKeys("%(w)v{DOW 6}{ENT}", "Java - Eclipse SDK");
+ LogWrite("\tSelect Edit->Delete \n");
+ WinSendKeys("%(e)d", "Java - Eclipse SDK");
+ $winID = WinWaitImpl("Confirm Resource Delete");
+ LogWrite("\tPress OK button \n");
+ WinSendKeys("{ENT}", "Confirm Resource Delete");
+ WinWaitCloseImpl($winID);
+ Sleep(3000);
+
+ # Remove run configurations
+ LogWrite("\nRemove run configurations: \n");
+ WinSendKeys("%(r)n", "Java - Eclipse SDK");
+ $winID = WinWaitImpl("Run");
+ Sleep(6000);
+ LogWrite("\tDelete configuration \n");
+ WinSendKeys("{ENT}", "Run");
+ Sleep(6000);
+ WinSendKeys("{DEL}", "Run");
+ $winID2 = WinWaitImpl("Confirm Launch Configuration Deletion");
+ Sleep(3000);
+ WinSendKeys("%(y)", "Confirm Launch Configuration Deletion");
+ WinWaitCloseImpl($winID2);
+ Sleep(3000);
+ LogWrite("\tDelete configuration \n");
+ WinSendKeys("{DEL}", "Run");
+ $winID2 = WinWaitImpl("Confirm Launch Configuration Deletion");
+ Sleep(3000);
+ WinSendKeys("%(y)", "Confirm Launch Configuration Deletion");
+ WinWaitCloseImpl($winID2);
+ Sleep(3000);
+ WinSendKeys("{HOM}", "Run");
+ Sleep(3000);
+ WinSendKeys("{ESC}", "Run");
+ WinWaitCloseImpl($winID);
+ WinWaitImpl("Java - Eclipse SDK");
+
+ # Reset perspective
+ LogWrite("\nReset perspective: \n");
+ WinSendKeys("%(w)r", "Java - Eclipse SDK");
+ $winID = WinWaitImpl("Reset Perspective");
+ Sleep(3000);
+ LogWrite("\tPress OK button \n");
+ WinSendKeys("{ENT}", "Reset Perspective");
+ WinWaitCloseImpl($winID);
+ WinWaitImpl("Java - Eclipse SDK");
+ Sleep(3000);
+ LogWrite("\tRestore folders structure in package explorer view \n");
+ WinSendKeys("{HOM}{DOW 24}", "Java - Eclipse SDK");
+ PressKey('{NUM}');
+ WinSendKeys('{-}{UP 4}{-}{UP 4}{-}', "Java - Eclipse SDK");
+ ReleaseKey('{NUM}');
+ WinSendKeys("{HOM}", "Java - Eclipse SDK");
+ Sleep(3000);
+
+ # Help - Mozilla must be the default browser
+ LogWrite("\nHelp: \n");
+ my $delete_locks = `find ~/.mozilla/ -name "*lock*" -exec rm \{\} \\;`;
+ Sleep(6000);
+ LogWrite("\tSelect Help->Help Contents \n");
+ WinSendKeys("%(h)h", "Java - Eclipse SDK");
+ Sleep(6000);
+ my @winIds = FindWindowLike('Select User Profile');
+ if (scalar(@winIds) > 0) {
+ SetInputFocus($winIds[0]);
+ WinSendKeys('{ENT}', 'Select User Profile');
+ WinWaitCloseImpl($winIds[0]);
+ }
+ $winID = WinWaitImpl("Help - Eclipse SDK");
+ Sleep(3000);
+ LogWrite("\tClose Help \n");
+ WinSendKeys('^(q)', "Help - Eclipse SDK");
+ WinWaitCloseImpl($winID);
+ LogWrite("\tEnd Help \n");
+ Sleep(6000);
+ LogWrite("\n-------------------- Iteration ".$iteration." end --------------------\n");
+}
+
+sub LogWrite {
+ open(LOG, ">>$resultsDir/EGA.log") || die("ERROR: Can't open log file $resultsDir/EGA.log! \n");
+ my $text = shift;
+ print LOG $text;
+ close(LOG);
+}
+
+sub ExitEclipse {
+ LogWrite("\nExit Eclipse: \n");
+ $winID = WinWaitImpl('Java - Eclipse SDK');
+ WinSendKeys('%(f)x', 'Java - Eclipse SDK');
+ WinWaitCloseImpl($winID);
+ Sleep(10000);
+}
+
+sub KillEclipse {
+ if (-e "$curdir/workspace/.metadata/.log") {
+ my $result =`cp -f $curdir/workspace/.metadata/.log $resultsDir/workspace.log`;
+ }
+ if ($eclipse_kill == 0) { return; }
+ LogWrite("\nKill Eclipse: \n");
+ my $user = `whoami`;
+ $user =~ s/\n//;
+ my $proc_info = `ps U $user | grep $eclipse_home/startup.jar | grep -v grep`;
+ my @procs = split(/\n/, $proc_info);
+ my $length = scalar(@procs);
+ if ($length < 1) {
+ LogWrite("\tEclipse process wasn't found \n");
+ return;
+ } else {
+ LogWrite("\tFound ".$length." Eclipse processes \n");
+ for ($i = 0; $i < $length; $i++) {
+ LogWrite("\tProcess ".$i.": \n");
+ my $proc_ID = $procs[$i];
+ $proc_ID =~ s/\s*(\d\d*).*/\1/;
+ if ($proc_ID != 0) {
+ my $result = kill(9, $proc_ID);
+ if ($result == 1) {
+ LogWrite("\tEclipse process was killed \n");
+ } else {
+ if ($result == 0) {
+ LogWrite("\tERROR: Eclipse process can't be killed! \n");
+ }
+ if ($result > 1) {
+ LogWrite("\tERROR: More than one process was killed! \n");
+ }
+ }
+ }
+ }
+ }
+}
+
+sub PrintScreen {
+ my $user = `whoami`;
+ $user =~ s/\n//;
+ my $proc_info = `ps U $user | grep $eclipse_home/startup.jar | grep -v grep`;
+ my @procs = split(/\n/, $proc_info);
+ my $length = scalar(@procs);
+ if ($length < 1) { return; }
+ LogWrite("\nPrint error screen picture: \n");
+ $result = RunApp("xwd -root -screen -silent -out $resultsDir/error.xwd");
+ if ($result != 0) {
+ LogWrite("\tERROR: Can't save screen picture to $resultsDir/error.xwd! \n");
+ } else {
+ LogWrite("\tPicture was saved to $resultsDir/error.xwd \n");
+ LogWrite("\tPlease, use command 'xwud -in ./error.xwd' to view the error screen picture \n");
+ }
+}
+
+sub WinWaitImpl {
+ my $winName = shift;
+ my $setFocus = shift || true;
+ my $delay = 100*$delay_factor;
+ LogWrite("\twait window '".$winName."' to appear ...\n");
+ my @wins = WaitWindowViewable($winName, 0, $delay);
+ if(scalar(@wins) > 0) {
+ my $win = $wins[0];
+ LogWrite("\twindow '".$winName."' (".$win.") appeared\n");
+ Sleep(200);
+ if ((GetInputFocus() != $win) && $setFocus){
+ SetInputFocus($win);
+ if (GetInputFocus() != $win) {
+ LogWrite("\nERROR: Unable to set focus to '".$winName."' window! \n");
+ PrintScreen();
+ KillEclipse();
+ LogWrite("\n\nEGA FAILED! \n");
+ die "ERROR: Unable to set focus to '".$winName."' window!";
+ }
+ }
+ return $win;
+ } else {
+ LogWrite("\nERROR: Window '".$winName."' didn't appear for ".$delay." sec! \n");
+ PrintScreen();
+ KillEclipse();
+ LogWrite("\n\nEGA FAILED! \n");
+ die "ERROR: Window '".$winName."' didn't appear for ".$delay." sec!";
+ }
+}
+
+sub WinWaitCloseImpl {
+ my $win = shift;
+ my $winName = GetWindowName($win);
+ my $delay = shift || 100;
+ $delay = $delay*$delay_factor;
+ LogWrite("\twait window (".$win.") to close ...\n");
+ my $result = WaitWindowClose($win, $delay);
+ if($result > 0) {
+ LogWrite("\twindow (".$win.") successfully closed \n");
+ } else {
+ LogWrite("\nERROR: Failed to close (".$win.") window during ".$delay." sec! \n");
+ PrintScreen();
+ KillEclipse();
+ LogWrite("\n\nEGA FAILED! \n");
+ die "ERROR: Failed to close (".$win.") window during ".$delay." sec!";
+ }
+}
+
+sub WinSendKeys {
+ my $keys = shift;
+ my $target_win_name = shift;
+ my @ids = WaitWindowViewable($target_win_name, 0, 5);
+ if (scalar(@ids) > 0) {
+ my $focus_win_id = GetInputFocus();
+ my $focus_win_name = GetWindowName($focus_win_id);
+ my $target_win_id = $ids[0];
+ if ($focus_win_id == $target_win_id) {
+ SendKeys($keys);
+ } else {
+ #LogWrite("WARNING: Focus is not on window '".$target_win_name."' (".$target_win_id.") but on window '".$focus_win_name."' (".$focus_win_id.")! \n");
+ if (index($focus_win_name, "error") != -1 || index($focus_win_name, "Error") != -1 ) {
+ LogWrite("\nERROR: Some error window is appeared: '".$focus_win_name."'! \n");
+ PrintScreen();
+ KillEclipse();
+ LogWrite("\n\nEGA FAILED! \n");
+ die "ERROR: Some error window is appeared: '".$focus_win_name."'!";
+ } else {
+ SendKeys($keys);
+ }
+ }
+ } else {
+ LogWrite("\nERROR: Window '".$target_win_name."' isn't viewable! \n");
+ PrintScreen();
+ KillEclipse();
+ LogWrite("\n\nEGA FAILED! \n");
+ die "ERROR: Window '".$target_win_name."' isn't viewable!";
+ }
+}
+
+sub Sleep {
+ my $delay = shift;
+ $delay = $delay*$delay_factor;
+ #LogWrite("\tSleep for $delay mc \n");
+ SendKeys('{PAUSE '.$delay.'}');
+}
+
+
+
+### END ###
+
Propchange: harmony/enhanced/buildtest/branches/2.0/tests/ega/ega_eclipse_3.2.1.pl
------------------------------------------------------------------------------
svn:eol-style = native
Added: harmony/enhanced/buildtest/branches/2.0/tests/ega/test.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/buildtest/branches/2.0/tests/ega/test.java?view=auto&rev=543394
==============================================================================
--- harmony/enhanced/buildtest/branches/2.0/tests/ega/test.java (added)
+++ harmony/enhanced/buildtest/branches/2.0/tests/ega/test.java Thu May 31 22:22:50 2007
@@ -0,0 +1,25 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+// ================================================================
+
+public class test {
+
+ int test = 0;
+
+ public static void main(String agrs[]) {
+ }
+}
\ No newline at end of file
Propchange: harmony/enhanced/buildtest/branches/2.0/tests/ega/test.java
------------------------------------------------------------------------------
svn:eol-style = native