diff -urN old/PRTI/README new/PRTI/README --- old/PRTI/README 2007-06-10 18:04:23.658004900 +0700 +++ new/PRTI/README 2007-06-25 12:00:48.329188200 +0700 @@ -22,10 +22,11 @@ bin/db - Files required for interaction with the database bin/agents - PRTI agents responsible for running and processing specific test suites - bin/lib - Store auxiliary libraries for PRTI run agents, such as junit.jar here + bin/lib - Auxiliary libraries for PRTI. bin/tasks - PRTI tasks containing files required for running a specific test suite log - The test suite run logs storage + log/tmp - A temporary storage for PRTI. prti_runtime - The compiled JDK storage prti_tests - The test suites storage prti_results - The test suite results storage @@ -39,29 +40,44 @@ To build PRTI, install and configure the following tools in the user environment: -+ Perl interpreter - On Windows*: - + ActivePerl, version 5.8.6 or higher - http://www.activestate.com/Products/ActivePerl/?mp=1 - - - On Linux*: - + ActivePerl, version 5.8.3 or higher - http://www.activestate.com/Products/ActivePerl/?mp=1 - -+ Cygwin - On Windows*: - + Cygwin bash shell, version 1.5.12 or higher - http://www.cygwin.com/ - -+ MySQL (optional) - MySQL database server, version 5.0 or higher - http://www.mysql.org - -+ Perl DBI module - Perl Database independent interface, version 1.50 or - higher - http://www.cpan.org - -+ Perl DBD::mysql - A MySQL driver for the Perl5 DBI, version 3.0002 or - higher - http://www.cpan.org - ++ Perl interpreter - On Windows*: + + ActivePerl, version 5.8.6 or higher + http://www.activestate.com/Products/ActivePerl/?mp=1 + + - On Linux*: + + ActivePerl, version 5.8.3 or higher + http://www.activestate.com/Products/ActivePerl/?mp=1 + ++ Cygwin - On Windows*: + + Cygwin bash shell, version 1.5.12 or higher + http://www.cygwin.com/ + ++ MySQL (optional) - MySQL database server, version 5.0 or higher + http://www.mysql.org + ++ AutoIt (optional) - On Windows*: + + Freeware BASIC-like scripting language for automating + the Windows GUI and general scripting, version 3.1.1 + or higher + http://www.autoitscript.com/autoit3/ + + ++ Perl DBI module - Perl Database independent interface, version 1.50 or + higher + http://www.cpan.org + ++ Perl DBD::mysql - A MySQL driver for the Perl5 DBI, version 3.0002 or + higher + http://www.cpan.org + ++ Eclipse (optional) - Eclipse SDK version 3.2.1 or higher + http://www.eclipse.org + ++ X11 GUITest (optional) - On Linux*: + + A Perl package intended to facilitate the testing of + applications by means of user emulation, + version 0.20 or higher + http://sourceforge.net/projects/x11guitest 3. BUILDING PRTI ---------------- @@ -96,6 +112,8 @@ Example: prti_tests/DaCapo prti_tests/SciMark prti_tests/SPECjbb200 + prti_tests/EHWA + prti_tests/EST 1.3. If a set of variables with default values was change in the particular test suite, set required variables specified in the bin/Defs_task file @@ -105,26 +123,69 @@ export RUNS=5 export REGRESSION_PERCENT=1.5 - 1.4. Run a task not included in the predefined set of the tasks by doing the + 1.4. In case a test suite doesn't provide ways to measure performance by itself, + e.g. EHWA, specify a standalone measurer in the MEASURER variable + in the corresponding task file. + + Example: export MEASURER="/usr/bin/time -f %e --verbose" + + 1.5. If necessary, put auxiliary libraries, e.g. junit.jar, into bin/lib + directory and add them to CLASSPATH. + + 1.6. Run a task not included in the predefined set of the tasks by doing the following: - 1.4.1. Place the required content into a new task file in the bin/task/ + 1.6.1. Place the required content into a new task file in the bin/task/ directory according to one of the predefined tasks. To name the task file, use the __ naming format. Example: bin/tasks/HARMONY_DEF_SPECjvm98 - 1.4.2. Set all required variables to their specific values according to + 1.6.2. Set all required variables to their specific values according to any predefined task. - 1.4.3. Create the bin/agents/run.sh file responsible for running + 1.6.3. Create the bin/agents/run.sh file responsible for running the newly created task. - 1.4.4. Create the bin/agents/process.sh file responsible for + 1.6.4. Create the bin/agents/process.sh file responsible for processing the task results. - 1.4.5. To use the database as a results storage, set the variable $passwd - in the bin/db/prtidb.pm file. + 1.7. To use the database as a results storage, set the variable $passwd + in the bin/db/prtidb.pm file. + + 1.8. On Windows* add AutoIt3 home directory to PATH variable before running + GUI based scenarios like EHWA and EST. + + 1.9. Install, if necessary, X11 GUITest using the following steps: + 1) perl Makefile.PL + 2) make + 3) make test + 4) make install + + Keep in mind, however, that you might need to set a valid path to X11 + libraries on Linux/em64t. In that case you have to substitute a string + + 'LIBS' => ['-L/usr/X11R6/lib -L/usr/X/lib -lX11 -lXtst -lXext'] + + for + + 'LIBS' => ['-L/usr/X11R6/lib64 -L/usr/X/lib -lX11 -lXtst -lXext'], + + in Makefile.PL before the step 1. + + Also, the following changes might be required after step 1 in the generated + Makefile: + + LIBC = /lib64/libc.so.6 -> + LIBC = /lib64//lib64/libc.so.6 + + 1.10. For EHWA and EST scenarios either extract Eclipse SDK into the + corresponding folder or set ECLIPSE_HOME variable to its proper value + in the appropriate task file. + + Example: prti_tests/EHWA/eclipse + export ECLIPSE_HOME="path_to_Eclipse" + 2. Run PRTI using the prti_run.sh shell script with the options specified below. @@ -262,7 +323,7 @@ To get the report based on the default settings, use the following: perl -Ic:/tools/tst/PRTI/bin/db compare.pl --use_db --suite SciMark - --build apache-harmony-hdk-r522038-windows-x86-32-snapshot + --build apache-harmony-hdk-r522038-windows-x86-32-snapshot --rev 522038 --type nightly --os windows --cpu x86-32 To get the report based on five percent performance regressions, use @@ -287,6 +348,12 @@ - Do not change the run-time environment between test runs. +6. TODO +------- + +- Add suport for classlib tests running + + 7. DISCLAIMER AND LEGAL INFORMATION ------------------------------------ diff -urN old/PRTI/bin/Defs new/PRTI/bin/Defs --- old/PRTI/bin/Defs 2007-05-25 12:20:28.000000000 +0700 +++ new/PRTI/bin/Defs 2007-06-01 15:48:27.155319700 +0700 @@ -122,10 +122,6 @@ export WORKLOAD=${SUITE} # ID of the task to launch several tasks in parallel export TASK_UID=${TOKEN_KERNEL}_${TOKEN_PROCESSOR}_${RUNTIME_TAG}_${RUNTIME_MODE_TAG}_${SUITE} -if [[ ! -z ${MEASURER} ]]; then - export TASK_UID=${TASK_UID}_${MEASURER} - export WORKLOAD=${SUITE}.${MEASURER} -fi ################################################################################ # Define directories diff -urN old/PRTI/bin/Defs_platform new/PRTI/bin/Defs_platform --- old/PRTI/bin/Defs_platform 2007-06-10 18:02:44.870322700 +0700 +++ new/PRTI/bin/Defs_platform 2007-06-15 11:43:01.633063500 +0700 @@ -47,7 +47,7 @@ export TOKEN_PROCESSOR="x86_64-64" ;; "amd64"*) - export TOKEN_PROCESSOR="x86-32" + export TOKEN_PROCESSOR="x86_64-64" ;; *) export TOKEN_PROCESSOR=UNKNOWN @@ -91,7 +91,7 @@ export IP=$(echo ${IP}|awk -F. '{ printf("%s.%s.%s.%d", $1,$2,$3,$4);}') export OSVERSION=$(uname -s | sed -e "s/[-]/ /" | awk '{print $2}') export TOKEN_KERNEL=windows - export PATH=${JAVA_HOME}/bin${CPATH_DELIM}${PATH} + export PATH=${BEA_JAVA_HOME}/bin${CPATH_DELIM}${PATH} ;; *) echo "[Defs_platform:ERROR] Unknown kernel name... Stop."; exit 1 diff -urN old/PRTI/bin/ProcessManager.pl new/PRTI/bin/ProcessManager.pl --- old/PRTI/bin/ProcessManager.pl 2007-05-29 19:42:32.000000000 +0700 +++ new/PRTI/bin/ProcessManager.pl 2007-06-05 13:24:15.029446900 +0700 @@ -102,8 +102,8 @@ alarm($timeout); while ((my $stiff = waitpid($kid, WNOHANG)) != -1) { $status = $?; - if (($timeout / 10) > 20) { - sleep 20; + if (($timeout / 10) > 10) { + sleep 10; } -f $kids_file && CheckIt($mpid_file, $kids_file); } @@ -118,7 +118,7 @@ $failure=q(Timeout has been reached); } - Cleanup($mpid_file); + Cleanup($mpid_file) if -f $mpid_file; `rm -rf $kids_file` if -f $kids_file; @@ -153,7 +153,7 @@ print "[ProcessManager.pl] [FAILED] $failure\n"; } - `rm -rf $mpid_file`; + `rm -rf $mpid_file` if -f $mpid_file; } #-------------------------------------------------# @@ -165,9 +165,6 @@ # there are no child processes running in foreground, but the measurer is still alive. It must be forced to terminate # nevertheless, there may be child processes running in background, let's finish 'em all Cleanup($mpid_file); - - `rm -rf $mpid_file`; - $forced_to_finish = 1; } } } @@ -223,8 +220,12 @@ kill 9 => $_ if kill 0 => $_; } keys %{$childs}; - print "killing measurer $mpid\n" if $debug; - kill 9 => $mpid if kill 0 => $mpid; + if (kill 0 => $mpid) { + print "killing measurer $mpid\n" if $debug; + kill 9 => $mpid; + `rm -rf $mpid_file`; + $forced_to_finish = 1; + } } # End of ProcessManager.pl diff -urN old/PRTI/bin/agents/ehwa_eclipse_3.2.1.au3 new/PRTI/bin/agents/ehwa_eclipse_3.2.1.au3 --- old/PRTI/bin/agents/ehwa_eclipse_3.2.1.au3 1970-01-01 06:00:00.000000000 +0600 +++ new/PRTI/bin/agents/ehwa_eclipse_3.2.1.au3 2007-06-05 16:13:37.538375200 +0700 @@ -0,0 +1,332 @@ +; +; Copyright 2005-2007 The Apache Software Foundation or its licensors, as applicable +; +; Licensed 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. +; + +; Set options +Opt("WinWaitDelay", 1000) ; wait for 1c +Opt("SendKeyDelay", 150) ; wait for 150mc +Opt("WinTitleMatchMode", 4) +Opt("WinDetectHiddenText", 1) +Opt("TrayIconDebug", 1) + +; Set variables +Dim Const $resultsDir = $CmdLine[1] +Dim Const $extra_delay = 120 + +; 1 +LogWrite(@TAB & "Wait Eclipse 'Workspace Launcher' window to appear " & @LF) +$start = TimerInit() +WinWaitImpl("Workspace Launcher", "", 180) +If Not WinActive("Workspace Launcher", "Select a workspace") Then WinActivate("Workspace Launcher") +WinWaitActiveImpl("Workspace Launcher", "", 30) +LogWrite(@TAB & "window appeared " & @LF) + +; 2 +LogWrite(@TAB & StringFormat("Select %s as workspace", @WorkingDir & "\eclipse\workspace") & @LF) +ControlFocus("Workspace Launcher", "", "Edit1") +ControlSetText("Workspace Launcher", "", "Edit1", @WorkingDir & "\eclipse\workspace" ) +LogWrite(@TAB & "Press OK button" & @LF) +ControlSend("Workspace Launcher", "", "", "{ENTER}") +WinWaitCloseImpl("Workspace Launcher", "", 60) + +; 3 +LogWrite(@TAB & "Wait 'Java - Eclipse SDK' window to appear " & @LF) +WinWaitImpl("Java - Eclipse SDK", "", 180) +If Not WinActive("Java - Eclipse SDK", "") Then WinActivate("Java - Eclipse SDK","") +WinWaitActiveImpl("Java - Eclipse SDK", "", 30) +LogWrite(@TAB & "window appeared " & @LF) +Send("!+Q") +WinWaitNotActive("Java - Eclipse SDK", "") +Send("p") +WinWaitActiveImpl("Java - Eclipse SDK", "", 30) +Sleep(2000) + +; 4 +LogWrite(@TAB & "Create new Java project" & @LF) +Send("!f") +Send("n") +Send("r") + +; 5 +LogWrite(@TAB & "Wait 'New Project' window to appear" & @LF) +WinWaitImpl("New Project","",60) +If Not WinActive("New Project","") Then WinActivate("New Project","") +WinWaitActiveImpl("New Project","",30) +LogWrite(@TAB & "window appeared " & @LF) +LogWrite(@TAB & "Select Java project" & @LF) +ControlFocus("New Project", "", "Edit1") +ControlSend("New Project", "", "Edit1", "{ENTER}") +LogWrite(@TAB & "Press Next button" & @LF) +ControlFocus("New Project", "&Next >", "Button2",) +ControlClick("New Project", "&Next >", "Button2") +If @error=1 Then + LogWrite(@TAB & "ERROR: Next button wasn't found. STOP." & @LF) + ExitImpl(1) +EndIf +WinWaitCloseImpl("New Project", "", 60) + +; 6 +LogWrite(@TAB & "Wait 'New Java Project' window to appear " & @LF) +WinWaitImpl("New Java Project","",60) +If Not WinActive("New Java Project") Then WinActivate("New Java Project") +WinWaitActiveImpl("New Java Project","",30) +LogWrite(@TAB & "window appeared, " & @LF) +LogWrite(@TAB & "Type EHWA as a project name" & @LF) +ControlFocus("New Java Project", "", "Edit2") +ControlSetText("New Java Project", "", "Edit2", "EHWA" ) +LogWrite(@TAB & "Press Finish button" & @LF) +ControlFocus("New Java Project", "&Finish", "Button27",) +ControlClick("New Java Project", "&Finish", "Button27") +If @error=1 Then + LogWrite(@TAB & "ERROR: Finish button wasn't found. STOP." & @LF) + ExitImpl(1) +EndIf +LogWrite(@TAB & "Wait while project is being created ... " & @LF) +WinWaitClose("New Java Project", "", 60) +LogWrite(@TAB & "Project was created" & @LF) + +; 7 +WinWaitImpl("Java - Eclipse SDK", "", 60) +If Not WinActive("Java - Eclipse SDK", "") Then WinActivate("Java - Eclipse SDK","") +WinWaitActiveImpl("Java - Eclipse SDK", "", 30) +LogWrite(@TAB & "Create new Java class" & @LF) +$result=WinMenuSelectItem("Java - Eclipse SDK", "", "&File", "&New", "Class") +if $result=0 Then + LogWrite(@TAB & "ERROR: Menu 'File -> New -> Class' wasn't found. STOP." & @LF) + ExitImpl(1) +EndIf +LogWrite(@TAB & "Wait 'New Java Class' window to appear" & @LF) +WinWaitImpl("New Java Class","",60) +If Not WinActive("New Java Class") Then WinActivate("New Java Class") +WinWaitActiveImpl("New Java Class","",30) +LogWrite(@TAB & "window appeared " & @LF) + +; 8 +LogWrite(@TAB & "Type EHWA as class name" & @LF) +ControlFocus("New Java Class", "", "Edit4") +ControlSetText("New Java Class", "", "Edit4", "EHWA" ) + +;9 +LogWrite(@TAB & "Select 'public static void main(String[] args)' checkbox" & @LF) +ControlFocus("New Java Class", "", "Button15") +ControlCommand("New Java Class", "", "Button15", "Check", "") + +; 10 +LogWrite(@TAB & "Click Finish button" & @LF) +ControlFocus("New Java Class", "&Finish", "Button19") +ControlClick("New Java Class", "&Finish", "Button19") +If @error=1 Then + LogWrite(@TAB & "ERROR: Finish button wasn't found. STOP." & @LF) + ExitImpl(1) +EndIf +LogWrite(@TAB & "Wait while EHWA class is being created ..." & @LF) +WinWaitClose("New Java Class", "", 60) + +; 11 +WinWaitImpl("Java - EHWA.java - Eclipse SDK","",60) +If Not WinActive("New Java Class") Then WinActivate("Java - EHWA.java - Eclipse SDK") +WinWaitActiveImpl("Java - EHWA.java - Eclipse SDK","",30) +LogWrite(@TAB & "EHWA class was successfully created" & @LF) +Sleep(3000) +LogWrite(@TAB & "Add System.out.println(""Hello, world!""); string in the main method of EHWA class" & @LF) +ControlFocus("Java - EHWA.java - Eclipse SDK", "", "SWT_Window039") +ControlSend("Java - EHWA.java - Eclipse SDK", "", "SWT_Window039", "{DOWN 8}{TAB}") +ControlSend("Java - EHWA.java - Eclipse SDK", "", "SWT_Window039", "System.out.println(""Hello, world{!}"");") +Sleep(3000) + +; 12 +WinWaitImpl("Java - EHWA.java - Eclipse SDK","",60) +If Not WinActive("Java - EHWA.java - Eclipse SDK","") Then WinActivate("Java - EHWA.java - Eclipse SDK","") +WinWaitActiveImpl("Java - EHWA.java - Eclipse SDK","",30) +LogWrite(@TAB & "Save EHWA class " & @LF) +$result=WinMenuSelectItem("Java - EHWA.java - Eclipse SDK", "", "&File", "&Save") +if $result=0 Then + LogWrite(@TAB & "ERROR: Menu 'File->Save' wasn't found. Stop." & @LF) + ExitImpl(1) +EndIf +LogWrite(@TAB & "Open console" & @LF) +Send("!w") +Send("v") +Send("c") +Sleep(3000) + +; 13 +WinWaitImpl("Java - EHWA.java - Eclipse SDK","",60) +If Not WinActive("Java - EHWA.java - Eclipse SDK","") Then WinActivate("Java - EHWA.java - Eclipse SDK","") +WinWaitActiveImpl("Java - EHWA.java - Eclipse SDK","",30) +LogWrite(@TAB & "Run EHWA class" & @LF) +Send("!r") +Send("n") +LogWrite(@TAB & "Wait 'Run' window to appear " & @LF) +WinWaitImpl("Run","",60) +If Not WinActive("Run") Then WinActivate("Run") +WinWaitActiveImpl("Run","",30) +LogWrite(@TAB & "window appeared " & @LF) + +; 14 +LogWrite(@TAB & "Select Java application " & @LF) +ControlFocus("Run", "", "Edit1") +ControlSend("Run", "", "Edit1", "{ENTER}") +ControlFocus("Run", "", "SysTreeView321") +ControlSend("Run", "", "SysTreeView321", "{j 2}") +LogWrite(@TAB & "Create new run configuration" & @LF) +ControlSend("Run", "", "SysTreeView321", "{ENTER}") + +; 15 +WinWaitImpl("Run","",60) +If Not WinActive("Run","") Then WinActivate("Run","") +WinWaitActiveImpl("Run","",30) +LogWrite(@TAB & "Wait while EHWA run configuration is being created ..." & @LF) +$iter = 0 +While StringInStr(WinGetText("Run"), "EHWA") = 0 + $iter = $iter+1 + Sleep(500) + If $iter = 360 Then + LogWrite(@TAB & "ERROR: Can't create EHWA run configuration diring 3 min. STOP." & @LF) + ExitImpl(1) + EndIf +WEnd +LogWrite(@TAB & "Run EHWA class" & @LF) +ControlFocus("Run", "&Run", "Button55") +ControlSend("Run", "&Run", "Button55", "{ENTER}") +WinWaitClose("Run", "", 60) + +; 16 +WinWaitActiveImpl("Java - EHWA.java - Eclipse SDK","",30) +LogWrite(@TAB & "Check Run result" & @LF) +$iter = 0 +While StringInStr(WinGetText("Java - EHWA.java - Eclipse SDK"), "") = 0 + $iter = $iter+1 + Sleep(500) + If $iter = 360 Then + LogWrite(@TAB & "ERROR: EHWA run didn't stop diring 3 min. STOP." & @LF) + ExitImpl(1) + EndIf +WEnd +Sleep(3000) +If Not WinExists("Java - EHWA.java - Eclipse SDK") Then + LogWrite(@TAB & "ERROR: Window 'Java - EHWA.java - Eclipse SDK' doesn't exists. STOP." & @LF) + ExitImpl(1) +EndIf + + +; Exit +ExitImpl(0) + +; Auxiliary functions + +Func LogWrite($string) + Dim Const $logfile = $resultsDir & "\EHWA.log" + Local Const $log = FileOpen($logfile, 1) + FileWrite($logfile, $string) + FileClose($log) +EndFunc + +Func WinWaitImpl($wname, $wtext, $wdelay) + Dim $wreturn = WinWait($wname, $wtext, $wdelay) + If $wreturn=0 Then + LogWrite(@TAB & StringFormat("WARNING! Window '%s' didn't appear during %i sec. Add extra delay for %i sec.", $wname, $wdelay, $extra_delay) & @LF) + $wreturn = WinWait($wname, $wtext, $extra_delay) + If $wreturn=0 Then + LogWrite(@TAB & StringFormat("ERROR: Window '%s' didn't appear during additional %i sec. STOP", $wname, $extra_delay) & @LF) + ExitImpl(1) + Else + LogWrite(@TAB & StringFormat("Window '%s' appeared in additional time!", $wname) & @LF) + EndIf + EndIf +EndFunc + +Func WinWaitActiveImpl($wname, $wtext, $wdelay) + Dim $wreturn = WinWaitActive($wname, $wtext, $wdelay) + If $wreturn=0 Then + LogWrite(@TAB & StringFormat("WARNING! Window '%s' didn't become active during %i sec. Add extra delay for %i sec.", $wname, $wdelay, $extra_delay) & @LF) + $wreturn = WinWaitActive($wname, $wtext, $extra_delay) + If $wreturn=0 Then + LogWrite(@TAB & StringFormat("ERROR: Window '%s' didn't become active during additional %i sec. STOP.", $wname, $extra_delay) & @LF) + ExitImpl(1) + Else + LogWrite(@TAB & StringFormat("Window '%s' became active in additional time!", $wname) & @LF) + EndIf + EndIf +EndFunc + +Func WinWaitCloseImpl($wname, $wtext, $wdelay) + LogWrite(@TAB & StringFormat("Closing window %s", $wname) & @LF) + Dim $wreturn = WinWaitClose($wname, $wtext, $wdelay) + If $wreturn=0 Then + LogWrite(@TAB & StringFormat("WARNING! Window '%s' wasn't close during %i sec. Add extra delay for %i sec.", $wname, $wdelay, $extra_delay) & @LF) + $wreturn = WinWaitClose($wname, $wtext, $newdelay) + If $wreturn=0 Then + LogWrite(@TAB & StringFormat("ERROR: Window '%s' wasn't close during additional %i sec. STOP.", $wname, $extra_delay) & @LF) + ExitImpl(1) + Else + LogWrite(@TAB & StringFormat("Window '%s' was closed in additional time!", $wname) & @LF) + EndIf + EndIf +EndFunc + +Func ExitImpl($error_code) + Opt("WinTitleMatchMode",2) + LogWrite(@LF & "Exit Eclipse: " & @LF) + if WinExists("Eclipse SDK") Then + If Not WinActive("Eclipse SDK","") Then WinActivate("Eclipse SDK","") + $wr = WinWaitActive("Eclipse SDK", "", 30) + If $wr=1 Then + $title = WinGetTitle("Eclipse SDK") + $exit = WinMenuSelectItem($title, "", "&File", "E&xit" ) + if $exit=0 Then + LogWrite(@TAB & StringFormat("Menu %s->File->Exit wasn't found", $title) & @LF) + Send("!f") + Send("x") + EndIf + WinWaitClose("Progress Information", "", 120) + $wr = WinWaitClose("Eclipse SDK", "", 60) + If $wr=1 Then + LogWrite(@TAB & "Eclipse was found and closed." & @LF) + Else + KillEclipse() + EndIf + Else + KillEclipse() + EndIf + Else + LogWrite(@TAB & "Eclipse wasn't found" & @LF) + $error_code=1 + EndIf + Exit($error_code) +EndFunc + +Func KillEclipse() + LogWrite(@TAB & "Can't exit Eclipse! Trying to kill ..." & @LF) + WinKill("Eclipse SDK") + If Not WinExists("Eclipse SDK") Then + LogWrite(@TAB & "Eclipse window was found and killed" & @LF) + Else + $pid = WinGetProcess("Eclipse SDK") + If ProcessExists($pid) Then + ProcessClose($pid) + EndIf + Sleep(3000) + If ProcessExists($pid) Then + LogWrite(@TAB & "Can't kill Eclipse!" & @LF) + Else + LogWrite(@TAB & "Eclipse was killed!" & @LF) + EndIf + EndIf +EndFunc + +; + diff -urN old/PRTI/bin/agents/ehwa_eclipse_3.2.1.pl new/PRTI/bin/agents/ehwa_eclipse_3.2.1.pl --- old/PRTI/bin/agents/ehwa_eclipse_3.2.1.pl 1970-01-01 06:00:00.000000000 +0600 +++ new/PRTI/bin/agents/ehwa_eclipse_3.2.1.pl 2007-06-15 12:50:50.000000000 +0700 @@ -0,0 +1,282 @@ +#!/usr/bin/perl + +# Copyright 2005-2007 The Apache Software Foundation or its licensors, as applicable +# +# Licensed 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 strict; +use X11::GUITest qw/ + + FindWindowLike + + GetWindowName + + SetInputFocus + GetInputFocus + + WaitWindowViewable + WaitWindowClose + + SendKeys + SetKeySendDelay + + StartApp + RunApp +/; + + # Set option + SetKeySendDelay(150); + + # Current directory + my $curdir = `pwd`; + $curdir =~ s/\n//; + + # Set variables + my ($eclipse_home, $resultsDir) = @ARGV; + + LogWrite("--- Automated EHWA scenario for Eclipse 3.2.1 --- \n\n"); + + # 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 EHWA FAILED!\n"); +# die "ERROR: Some Eclipse window is already opened!" +# } + + + # Select default workspace + LogWrite("Select workspace \n"); + my $winID = WinWaitImpl('Workspace Launcher', 180); + SleepImpl(); + WinSendKeys($curdir.'/eclipse/workspace', 'Workspace Launcher'); + LogWrite("Press 'OK' button \n"); + SleepImpl(); + WinSendKeys('{ENT}', 'Workspace Launcher'); + WinWaitCloseImpl($winID); + + # Close Welcome page + LogWrite("Close Welcome page \n"); + $winID = WinWaitImpl('Java - Eclipse SDK', 180); + SleepImpl(); + WinSendKeys('%({+}{-})', 'Java - Eclipse SDK'); + SleepImpl(); + WinSendKeys('c', 'Java - Eclipse SDK'); + SleepImpl(); + + # Create new Java project + LogWrite("Create new project \n"); + WinSendKeys('^(n)', 'Java - Eclipse SDK'); + SleepImpl(); + $winID = WinWaitImpl('New'); + LogWrite("Select new Java project \n"); + WinSendKeys('{ENT}', 'New'); + SleepImpl(); + WinSendKeys('{DOW 2} {ENT}', 'New'); + + # Wait New Java Project window to appear + $winID = WinWaitImpl('New Java Project'); + LogWrite("Type 'EHWA' as project name \n"); + WinSendKeys('EHWA', 'New Java Project'); + SleepImpl(); + LogWrite("Press 'Finish' button \n"); + WinSendKeys('{ENT}', 'New Java Project'); + WinWaitCloseImpl($winID); + + # Create New Java Class + LogWrite("Create new Java class \n"); + $winID = WinWaitImpl('Java - Eclipse SDK'); + SleepImpl(); + WinSendKeys('^(n)', 'Java - Eclipse SDK'); + + # Wait 'New' dialog window to appear + $winID = WinWaitImpl('New'); + SleepImpl(); + + # Select new Java class + LogWrite("Select new Java class for 'EHWA' project \n"); + WinSendKeys('c', 'New'); + SleepImpl(); + WinSendKeys('{ENT 2}', 'New'); + + # Wait 'Java Class' window to appear + $winID = WinWaitImpl('Java Class'); + + # Create EHWA class + LogWrite("Type 'EHWA' as class name, press 'Finish' button \n"); + SleepImpl(); + WinSendKeys('EHWA', 'Java Class'); + LogWrite("Select the 'public static void main(String[] args)' checkbox \n"); + SleepImpl(); + WinSendKeys('%(g)', 'Java Class'); + LogWrite("Press 'Finish' button \n"); + SleepImpl(); + WinSendKeys('%(f)', 'Java Class'); + WinWaitCloseImpl($winID); + + # Paste System.out.println("Hello, world"); into EHWA class + LogWrite("Put System.out.println(\"Hello, world\"); into EHWA class \n"); + $winID = WinWaitImpl('Java - EHWA.java - Eclipse SDK'); + SleepImpl(); + WinSendKeys('{DOW 8}', 'Java - EHWA.java - Eclipse SDK'); + SleepImpl(); + WinSendKeys('{TAB}', 'Java - EHWA.java - Eclipse SDK'); + SleepImpl(); + WinSendKeys('System.out.println{(}"Hello, World{RIG}{RIG};', 'Java - EHWA.java - Eclipse SDK'); + SleepImpl(); + + # Save EHWA class + LogWrite("Save EHWA class \n"); + WinSendKeys('^(s)', 'Java - EHWA.java - Eclipse SDK'); + SleepImpl(); + + # Run EHWA class + LogWrite("Run EHWA class \n"); + WinSendKeys('%(r)s', 'Java - EHWA.java - Eclipse SDK'); + SleepImpl(); + WinSendKeys('{ENT}', 'Java - EHWA.java - Eclipse SDK'); + SleepImpl(10000); + my @winIds = FindWindowLike('Progress Information'); + if (scalar(@winIds) > 0) { + WinWaitCloseImpl($winIds[0], 300); + } + + # Exit Eclipse + LogWrite("Exit Eclipse \n"); + $winID = WinWaitImpl('Java - EHWA.java - Eclipse SDK'); + WinSendKeys('%(f)', 'Java - EHWA.java - Eclipse SDK'); + SleepImpl(); + WinSendKeys('x', 'Java - EHWA.java - Eclipse SDK'); + WinWaitCloseImpl($winID); + SleepImpl(); + + # EHWA passed + exit 0; + + +### User-defined functions ### + +sub WinWaitImpl { + my $winName = shift; + my $delay = shift || 120; + LogWrite(" wait window '".$winName."' to appear ...\n"); + my @wins = WaitWindowViewable($winName, 0, $delay); + if(scalar(@wins) > 0) { + my $win = @wins[0]; + LogWrite(" window '".$winName."' appeared\n"); + if (GetInputFocus() != $win) { + SetInputFocus($win); + if (GetInputFocus() != $win) { + LogWrite("ERROR: Unable to set focus to '".$winName."' window! \n"); + KillEclipse(); + die "ERROR: Unable to set focus to '".$winName."' window!"; + } + } + return $win; + } else { + LogWrite("ERROR: Window '".$winName."' didn't appear for ".$delay." sec! \n"); + KillEclipse(); + die "ERROR: Window '".$winName."' didn't appear for ".$delay." sec!"; + } +} + +sub WinWaitCloseImpl { + my $win = shift; + my $winName = GetWindowName($win); + my $delay = shift || 120; + LogWrite(" wait window '".$winName."' to close ...\n"); + my $result = WaitWindowClose($win, $delay); + if($result > 0) { + LogWrite(" window '".$winName."' successfully closed \n"); + } else { + LogWrite("ERROR: Failed to close '".$winName."' window during ".$delay." sec! \n"); + KillEclipse(); + die "ERROR: Failed to close '".$winName."' 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 { + if (index($focus_win_name, "error") != -1 || index($focus_win_name, "Error") != -1 ) { + LogWrite("\nERROR: Some error window is appeared: '".$focus_win_name."'! \n"); + KillEclipse(); + die "ERROR: Some error window is appeared: '".$focus_win_name."'!"; + } else { + SendKeys($keys); + } + } + } else { + LogWrite("\nERROR: Window '".$target_win_name."' isn't viewable! \n"); + KillEclipse(); + die "ERROR: Window '".$target_win_name."' isn't viewable!"; + } +} + +sub LogWrite { + open(LOG, ">>$resultsDir/EHWA.log") || die("ERROR: Can't open log file $resultsDir/EHWA.log! \n"); + my $text = shift; + print LOG $text; + close(LOG); +} + +sub KillEclipse { + 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 (my $i = 0; $i<$length; $i++) { + LogWrite("\tProcess ".$i.": \n"); + my @proc_ID = split(/ /, @procs[$i]); + if (@proc_ID[0] != 0) { + my $result = kill(9, @proc_ID[0]); + if ($result == 1) { + LogWrite("\tEclipse process was killed \n"); + } else { + if ($result == 0) { + LogWrite("\tERROR: Eclipse process can't be killed! \n"); + } elsif ($result > 1) { + LogWrite("\tERROR: More than one process was killed! \n"); + } + LogWrite("\tUser: $user \n"); + LogWrite("\tGrep returned: @procs[$i] \n"); + LogWrite("\tEclipse process ID: @proc_ID[0] \n"); + } + } + } + } +} + +sub SleepImpl { + my $delay = shift || 6000; + SendKeys('{PAUSE '.$delay.'}'); +} + +### END ### + diff -urN old/PRTI/bin/agents/est_eclipse_3.2.1.au3 new/PRTI/bin/agents/est_eclipse_3.2.1.au3 --- old/PRTI/bin/agents/est_eclipse_3.2.1.au3 1970-01-01 06:00:00.000000000 +0600 +++ new/PRTI/bin/agents/est_eclipse_3.2.1.au3 2007-06-05 16:13:54.280947200 +0700 @@ -0,0 +1,153 @@ +; +; Copyright 2005-2007 The Apache Software Foundation or its licensors, as applicable +; +; Licensed 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. +; + +; Set options +Opt("SendKeyDelay", 100) ; wait for 100ms +Opt("WinTitleMatchMode", 4) +Opt("WinDetectHiddenText", 1) +Opt("TrayIconDebug", 1) + +; Set variables +Dim Const $resultsDir = $CmdLine[1] +Dim Const $extra_delay = 3600 + +; 1 +LogWrite(@TAB & "Wait Eclipse 'Workspace Launcher' window to appear " & @LF) +WinWaitImpl("Workspace Launcher", "", 3600) +If Not WinActive("Workspace Launcher", "Select a workspace") Then WinActivate("Workspace Launcher") +WinWaitActiveImpl("Workspace Launcher", "", 3600) +LogWrite(@TAB & "window appeared " & @LF) + +; 2 +LogWrite(@TAB & "Press OK button" & @LF) +ControlSend("Workspace Launcher", "", "", "{ENTER}") +WinWaitCloseImpl("Workspace Launcher", "", 3600) + +; 3 +LogWrite(@TAB & "Wait 'Java - Eclipse SDK' window to appear " & @LF) +WinWaitImpl("Java - Eclipse SDK", "", 3600) +If Not WinActive("Java - Eclipse SDK", "") Then WinActivate("Java - Eclipse SDK","") +WinWaitActiveImpl("Java - Eclipse SDK", "", 3600) +LogWrite(@TAB & "window appeared " & @LF) + +; Exit +ExitImpl(0) + +; Auxiliary functions + +Func LogWrite($string) + Dim Const $logfile = $resultsDir & "\EST.log" + Local Const $log = FileOpen($logfile, 1) + FileWrite($logfile, $string) + FileClose($log) +EndFunc + +Func WinWaitImpl($wname, $wtext, $wdelay) + Dim $wreturn = WinWait($wname, $wtext, $wdelay) + If $wreturn=0 Then + LogWrite(@TAB & StringFormat("WARNING! Window '%s' didn't appear during %i sec. Add extra delay for %i sec.", $wname, $wdelay, $extra_delay) & @LF) + $wreturn = WinWait($wname, $wtext, $extra_delay) + If $wreturn=0 Then + LogWrite(@TAB & StringFormat("ERROR: Window '%s' didn't appear during additional %i sec. STOP", $wname, $extra_delay) & @LF) + ExitImpl(1) + Else + LogWrite(@TAB & StringFormat("Window '%s' appeared in additional time!", $wname) & @LF) + EndIf + EndIf +EndFunc + +Func WinWaitActiveImpl($wname, $wtext, $wdelay) + Dim $wreturn = WinWaitActive($wname, $wtext, $wdelay) + If $wreturn=0 Then + LogWrite(@TAB & StringFormat("WARNING! Window '%s' didn't become active during %i sec. Add extra delay for %i sec.", $wname, $wdelay, $extra_delay) & @LF) + $wreturn = WinWaitActive($wname, $wtext, $extra_delay) + If $wreturn=0 Then + LogWrite(@TAB & StringFormat("ERROR: Window '%s' didn't become active during additional %i sec. STOP.", $wname, $extra_delay) & @LF) + ExitImpl(1) + Else + LogWrite(@TAB & StringFormat("Window '%s' became active in additional time!", $wname) & @LF) + EndIf + EndIf +EndFunc + +Func WinWaitCloseImpl($wname, $wtext, $wdelay) + LogWrite(@TAB & StringFormat("Closing window %s", $wname) & @LF) + Dim $wreturn = WinWaitClose($wname, $wtext, $wdelay) + If $wreturn=0 Then + LogWrite(@TAB & StringFormat("WARNING! Window '%s' wasn't close during %i sec. Add extra delay for %i sec.", $wname, $wdelay, $extra_delay) & @LF) + $wreturn = WinWaitClose($wname, $wtext, $newdelay) + If $wreturn=0 Then + LogWrite(@TAB & StringFormat("ERROR: Window '%s' wasn't close during additional %i sec. STOP.", $wname, $extra_delay) & @LF) + ExitImpl(1) + Else + LogWrite(@TAB & StringFormat("Window '%s' was closed in additional time!", $wname) & @LF) + EndIf + EndIf +EndFunc + +Func ExitImpl($error_code) + Opt("WinTitleMatchMode",2) + LogWrite(@LF & "Exit Eclipse: " & @LF) + if WinExists("Eclipse SDK") Then + If Not WinActive("Eclipse SDK","") Then WinActivate("Eclipse SDK","") + $wr = WinWaitActive("Eclipse SDK", "", 3600) + If $wr=1 Then + $title = WinGetTitle("Eclipse SDK") + $exit = WinMenuSelectItem($title, "", "&File", "E&xit" ) + if $exit=0 Then + LogWrite(@TAB & StringFormat("Menu %s->File->Exit wasn't found", $title) & @LF) + Send("!f") + Send("x") + EndIf + WinWaitClose("Progress Information", "", 3600) + $wr = WinWaitClose("Eclipse SDK", "", 3600) + If $wr=1 Then + LogWrite(@TAB & "Eclipse was found and closed." & @LF) + Else + KillEclipse() + EndIf + Else + KillEclipse() + EndIf + Else + LogWrite(@TAB & "Eclipse wasn't found" & @LF) + $error_code=1 + EndIf + Exit($error_code) +EndFunc + +Func KillEclipse() + LogWrite(@TAB & "Can't exit Eclipse! Trying to kill ..." & @LF) + WinKill("Eclipse SDK") + If Not WinExists("Eclipse SDK") Then + LogWrite(@TAB & "Eclipse window was found and killed" & @LF) + Else + $pid = WinGetProcess("Eclipse SDK") + If ProcessExists($pid) Then + ProcessClose($pid) + EndIf + Sleep(3000) + If ProcessExists($pid) Then + LogWrite(@TAB & "Can't kill Eclipse!" & @LF) + Else + LogWrite(@TAB & "Eclipse was killed!" & @LF) + EndIf + EndIf +EndFunc + +; + diff -urN old/PRTI/bin/agents/est_eclipse_3.2.1.pl new/PRTI/bin/agents/est_eclipse_3.2.1.pl --- old/PRTI/bin/agents/est_eclipse_3.2.1.pl 1970-01-01 06:00:00.000000000 +0600 +++ new/PRTI/bin/agents/est_eclipse_3.2.1.pl 2007-06-15 14:14:26.000000000 +0700 @@ -0,0 +1,196 @@ +#!/usr/bin/perl + +# Copyright 2005-2007 The Apache Software Foundation or its licensors, as applicable +# +# Licensed 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 strict; +use X11::GUITest qw/ + + FindWindowLike + + GetWindowName + + SetInputFocus + GetInputFocus + + WaitWindowViewable + WaitWindowClose + + SendKeys + SetKeySendDelay + + StartApp + RunApp +/; + + # Set option + SetKeySendDelay(150); + + # Current directory + my $curdir = `pwd`; + $curdir =~ s/\n//; + + # Set variables + my ($eclipse_home, $resultsDir) = @ARGV; + + LogWrite("--- Automated EST scenario for Eclipse 3.2.1 --- \n\n"); + + # 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 EHWA FAILED!\n"); +# die "ERROR: Some Eclipse window is already opened!" +# } + + + # Select default workspace + LogWrite("Select workspace \n"); + my $winID = WinWaitImpl('Workspace Launcher', 180); + SleepImpl(); + LogWrite("Press 'OK' button \n"); + SleepImpl(); + WinSendKeys('{ENT}', 'Workspace Launcher'); + WinWaitCloseImpl($winID); + $winID = WinWaitImpl('Java - Eclipse SDK', 180); + SleepImpl(); + + # Exit Eclipse + LogWrite("Exit Eclipse \n"); + WinSendKeys('%(f)', 'Java - Eclipse SDK'); + SleepImpl(); + WinSendKeys('x', 'Java - Eclipse SDK'); + WinWaitCloseImpl($winID); + SleepImpl(); + + # EHWA passed + exit 0; + + +### User-defined functions ### + +sub WinWaitImpl { + my $winName = shift; + my $delay = shift || 120; + LogWrite(" wait window '".$winName."' to appear ...\n"); + my @wins = WaitWindowViewable($winName, 0, $delay); + if(scalar(@wins) > 0) { + my $win = @wins[0]; + LogWrite(" window '".$winName."' appeared\n"); + if (GetInputFocus() != $win) { + SetInputFocus($win); + if (GetInputFocus() != $win) { + LogWrite("ERROR: Unable to set focus to '".$winName."' window! \n"); + KillEclipse(); + die "ERROR: Unable to set focus to '".$winName."' window!"; + } + } + return $win; + } else { + LogWrite("ERROR: Window '".$winName."' didn't appear for ".$delay." sec! \n"); + KillEclipse(); + die "ERROR: Window '".$winName."' didn't appear for ".$delay." sec!"; + } +} + +sub WinWaitCloseImpl { + my $win = shift; + my $winName = GetWindowName($win); + my $delay = shift || 120; + LogWrite(" wait window '".$winName."' to close ...\n"); + my $result = WaitWindowClose($win, $delay); + if($result > 0) { + LogWrite(" window '".$winName."' successfully closed \n"); + } else { + LogWrite("ERROR: Failed to close '".$winName."' window during ".$delay." sec! \n"); + KillEclipse(); + die "ERROR: Failed to close '".$winName."' 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 { + if (index($focus_win_name, "error") != -1 || index($focus_win_name, "Error") != -1 ) { + LogWrite("\nERROR: Some error window is appeared: '".$focus_win_name."'! \n"); + KillEclipse(); + die "ERROR: Some error window is appeared: '".$focus_win_name."'!"; + } else { + SendKeys($keys); + } + } + } else { + LogWrite("\nERROR: Window '".$target_win_name."' isn't viewable! \n"); + KillEclipse(); + die "ERROR: Window '".$target_win_name."' isn't viewable!"; + } +} + +sub LogWrite { + open(LOG, ">>$resultsDir/EHWA.log") || die("ERROR: Can't open log file $resultsDir/EHWA.log! \n"); + my $text = shift; + print LOG $text; + close(LOG); +} + +sub KillEclipse { + 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 (my $i = 0; $i<$length; $i++) { + LogWrite("\tProcess ".$i.": \n"); + my @proc_ID = split(/ /, @procs[$i]); + if (@proc_ID[0] != 0) { + my $result = kill(9, @proc_ID[0]); + if ($result == 1) { + LogWrite("\tEclipse process was killed \n"); + } else { + if ($result == 0) { + LogWrite("\tERROR: Eclipse process can't be killed! \n"); + } elsif ($result > 1) { + LogWrite("\tERROR: More than one process was killed! \n"); + } + LogWrite("\tUser: $user \n"); + LogWrite("\tGrep returned: @procs[$i] \n"); + LogWrite("\tEclipse process ID: @proc_ID[0] \n"); + } + } + } + } +} + +sub SleepImpl { + my $delay = shift || 2000; + SendKeys('{PAUSE '.$delay.'}'); +} + +### END ### + diff -urN old/PRTI/bin/agents/processEHWA.sh new/PRTI/bin/agents/processEHWA.sh --- old/PRTI/bin/agents/processEHWA.sh 1970-01-01 06:00:00.000000000 +0600 +++ new/PRTI/bin/agents/processEHWA.sh 2007-06-05 13:25:27.587397400 +0700 @@ -0,0 +1,44 @@ +#!/bin/bash +# +# Copyright 2005-2007 The Apache Software Foundation or its licensors, as applicable +# +# Licensed 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. +# + +sleep 1 + +TIMESTAMP=`date +"%D %H:%M:%S"` +STATUSPROCESS=`cat $1 | grep "\[PASSED\]"` +if [[ ! -z ${STATUSPROCESS} ]]; then + STATUSPROCESS="passed" +else + STATUSPROCESS="failed" +fi + +ELAPSED_TIME=`cat $1 | grep -m 1 "Elapsed" | awk -F ": " '{print $2}' | awk -F ":" '{print $1*60+$2}'` +BUILDNAME=$2 + +cat << EOF + + + + + + + + + + + +EOF diff -urN old/PRTI/bin/agents/processEST.sh new/PRTI/bin/agents/processEST.sh --- old/PRTI/bin/agents/processEST.sh 1970-01-01 06:00:00.000000000 +0600 +++ new/PRTI/bin/agents/processEST.sh 2007-06-05 13:25:30.411599200 +0700 @@ -0,0 +1,44 @@ +#!/bin/bash +# +# Copyright 2005-2007 The Apache Software Foundation or its licensors, as applicable +# +# Licensed 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. +# + +sleep 1 + +TIMESTAMP=`date +"%D %H:%M:%S"` +STATUSPROCESS=`cat $1 | grep "\[PASSED\]"` +if [[ ! -z ${STATUSPROCESS} ]]; then + STATUSPROCESS="passed" +else + STATUSPROCESS="failed" +fi + +ELAPSED_TIME=`cat $1 | grep -m 1 "Elapsed" | awk -F ": " '{print $2}' | awk -F ":" '{print $1*60+$2}'` +BUILDNAME=$2 + +cat << EOF + + + + + + + + + + + +EOF diff -urN old/PRTI/bin/agents/runDaCapo.sh new/PRTI/bin/agents/runDaCapo.sh --- old/PRTI/bin/agents/runDaCapo.sh 2007-05-21 16:51:44.000000000 +0700 +++ new/PRTI/bin/agents/runDaCapo.sh 2007-06-15 11:48:51.681618300 +0700 @@ -55,6 +55,17 @@ else echo "[runDaCapo.sh] xalan.jar has been prepared" fi + + if [[ ${PLATFTAG} == "lnx" ]]; then + export DISPLAY=:42 + xdpyinfo > /dev/null 2>&1 + if [ $? -ne 0 ]; then + rm -rf /tmp/.X42-lock + rm -rf /tmp/.X11-unix/X42 + /usr/intel/bin/vncserver :42 + fi + fi + } export PREPARE=\prepare @@ -73,14 +84,6 @@ export CLEANUP=\cleanup fi -if [ ${PLATFTAG} == lnx ]; then - export APPLICATION=" - export DISPLAY=:42; \ - xdpyinfo > /dev/null 2>&1; \ - echo \n"[runDaCapo.sh] Starting X on display $DISPLAY...\n"; \ - vncserver :42; \ - " -fi export SUITE_DIR=${SUITE_ROOT_DIR}/DaCapo export DACAPO_JAR=`ls -1 ${SUITE_DIR}/dacapo-*.jar | head -n 1` diff -urN old/PRTI/bin/agents/runEHWA.sh new/PRTI/bin/agents/runEHWA.sh --- old/PRTI/bin/agents/runEHWA.sh 1970-01-01 06:00:00.000000000 +0600 +++ new/PRTI/bin/agents/runEHWA.sh 2007-06-15 14:33:34.284353600 +0700 @@ -0,0 +1,78 @@ +#!/bin/bash +# +# Copyright 2005-2007 The Apache Software Foundation or its licensors, as applicable +# +# Licensed 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. +# + +echo "[runEHWA.sh] entered" + +export JAVA_HOME=${RUNTIME_DIR} +export JAVA_BIN=bin/${RUNTIME_EXEC_FILE} +export SUITE_DIR=${SUITE_ROOT_DIR}/EHWA + +if [[ ${PLATFTAG} == "lnx" ]]; then + + export APPLICATION="perl ${AGENTS_DIR}/ehwa_eclipse_3.2.1.pl ${ECLIPSE_HOME} ${RES_SUBDIR}" + prepare() { + kill `ps ax|grep "eclipse"| awk '{ print $1 }'` >/dev/null 2>&1 + kill `ps ax|grep "${APPLICATION}" | awk '{print $1}'` > /dev/null 2>&1 + rm -rf ${ECLIPSE_HOME}/workspace/.metadata/ ${ECLIPSE_HOME}/workspace/* ${ECLIPSE_HOME}/configuration/org.* workspace/* workspace/.metadata ${ECLIPSE_HOME}/configuration/.settings >/dev/null 2>&1 + + export DISPLAY=:42 + xdpyinfo > /dev/null 2>&1 + if [ $? -ne 0 ]; then + rm -rf /tmp/.X42-lock + rm -rf /tmp/.X11-unix/X42 + /usr/intel/bin/vncserver :42 + fi + } + + PROCESSOR=$(uname -m) + case "${PROCESSOR}" in + "ia64") + OS_ARCH="ia64" + ;; + "i686"*) + OS_ARCH="x86" + ;; + "x86_64"*) + OS_ARCH="x86_64" + ;; + "amd64"*) + OS_ARCH="x86_64" + ;; + *) + OS_ARCH="UNKNOWN" + ;; + esac + + export JAVA_CLASS_PARAMS=" -ws gtk -os linux -arch ${OS_ARCH} -debug" +else + prepare() { + kill `ps ax|grep autoit|awk '{ print $1 }'` >/dev/null 2>&1 + rm -rf ${ECLIPSE_HOME}/workspace/.metadata/ ${ECLIPSE_HOME}/workspace/* ${ECLIPSE_HOME}/configuration/org.* workspace/* workspace/.metadata ${ECLIPSE_HOME}/configuration/.settings >/dev/null 2>&1 + } + + export JAVA_CLASS_PARAMS=" -debug " + export APPLICATION="autoit3 ${AGENTS_DIR}/ehwa_eclipse_3.2.1.au3 ${RES_SUBDIR}" +fi + +export PREPARE=\prepare +export JAVA_CLASS="org.eclipse.core.launcher.Main" +export JAVA_CP="$ECLIPSE_HOME/startup.jar" +export JAVA_PARAMS="-Dosgi.install.area=${ECLIPSE_HOME}" + + +echo "[runEHWA.sh] left" diff -urN old/PRTI/bin/agents/runEST.sh new/PRTI/bin/agents/runEST.sh --- old/PRTI/bin/agents/runEST.sh 1970-01-01 06:00:00.000000000 +0600 +++ new/PRTI/bin/agents/runEST.sh 2007-06-15 14:33:38.951110600 +0700 @@ -0,0 +1,78 @@ +#!/bin/bash +# +# Copyright 2005-2007 The Apache Software Foundation or its licensors, as applicable +# +# Licensed 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. +# + +echo "[runEST.sh] entered" + +export JAVA_HOME=${RUNTIME_DIR} +export JAVA_BIN=bin/${RUNTIME_EXEC_FILE} +export SUITE_DIR=${SUITE_ROOT_DIR}/EST + +if [[ ${PLATFTAG} == "lnx" ]]; then + + export APPLICATION="perl ${AGENTS_DIR}/est_eclipse_3.2.1.pl ${ECLIPSE_HOME} ${RES_SUBDIR}" + prepare() { + kill `ps ax|grep "eclipse"| awk '{ print $1 }'` >/dev/null 2>&1 + kill `ps ax|grep "${APPLICATION}" | awk '{print $1}'` > /dev/null 2>&1 + rm -rf ${ECLIPSE_HOME}/workspace/.metadata/ ${ECLIPSE_HOME}/workspace/* ${ECLIPSE_HOME}/configuration/org.* workspace/* workspace/.metadata ${ECLIPSE_HOME}/configuration/.settings >/dev/null 2>&1 + + export DISPLAY=:42 + xdpyinfo > /dev/null 2>&1 + if [ $? -ne 0 ]; then + rm -rf /tmp/.X42-lock + rm -rf /tmp/.X11-unix/X42 + /usr/intel/bin/vncserver :42 + fi + } + + PROCESSOR=$(uname -m) + case "${PROCESSOR}" in + "ia64") + OS_ARCH="ia64" + ;; + "i686"*) + OS_ARCH="x86" + ;; + "x86_64"*) + OS_ARCH="x86_64" + ;; + "amd64"*) + OS_ARCH="x86_64" + ;; + *) + OS_ARCH="UNKNOWN" + ;; + esac + + export JAVA_CLASS_PARAMS=" -ws gtk -os linux -arch ${OS_ARCH} -debug" +else + prepare() { + kill `ps ax|grep autoit|awk '{ print $1 }'` >/dev/null 2>&1 + rm -rf ${ECLIPSE_HOME}/workspace/.metadata/ ${ECLIPSE_HOME}/workspace/* ${ECLIPSE_HOME}/configuration/org.* workspace/* workspace/.metadata ${ECLIPSE_HOME}/configuration/.settings >/dev/null 2>&1 + } + + export JAVA_CLASS_PARAMS=" -debug " + export APPLICATION="autoit3 ${AGENTS_DIR}/est_eclipse_3.2.1.au3 ${RES_SUBDIR}" +fi + +export PREPARE=\prepare +export JAVA_CLASS="org.eclipse.core.launcher.Main" +export JAVA_CP="$ECLIPSE_HOME/startup.jar" +export JAVA_PARAMS="-Dosgi.install.area=${ECLIPSE_HOME}" + + +echo "[runEST.sh] left" diff -urN old/PRTI/bin/compare.pl new/PRTI/bin/compare.pl --- old/PRTI/bin/compare.pl 2007-05-29 14:44:20.000000000 +0700 +++ new/PRTI/bin/compare.pl 2007-06-25 11:59:59.735923000 +0700 @@ -280,17 +280,17 @@ --report_dir optional; specifies where to place regression reports; default is current directory DB_PARAMETERS: - -suite SUITE specifies the name of the being tested suite, e.g. SPECjvm98 - -build BUILD specifies the build under test - -rev REVISION specifies build's revision - -type TYPE specifies the type of test run, e.g. NIGHTLY, WEEKLY - -os OS_NAME specifies the OS name, e.g. windows, linux - -cpu CPU specifies the CPU token, e.g. x86-32, x86-64_64 + --suite SUITE specifies the name of the being tested suite, e.g. SPECjvm98 + --build BUILD specifies the build under test + --rev REVISION specifies build's revision + --type TYPE specifies the type of test run, e.g. NIGHTLY, WEEKLY + --os OS_NAME specifies the OS name, e.g. windows, linux + --cpu CPU specifies the CPU token, e.g. x86-32, x86-64_64 FILE specifies the name of the file containing the list of files representing performance measurement results; the most recent results come first - -use_db sets a database as a performance results storage instead of plain files + --use_db sets a database as a performance results storage instead of plain files EOF } -############################################################### \ No newline at end of file +############################################################### diff -urN old/PRTI/bin/db/db_get.pm new/PRTI/bin/db/db_get.pm --- old/PRTI/bin/db/db_get.pm 2007-05-29 18:27:32.000000000 +0700 +++ new/PRTI/bin/db/db_get.pm 2007-06-05 13:27:06.544624300 +0700 @@ -132,7 +132,12 @@ foreach my $curr_result (@{$curr_result}) { - my ($suite, $test) = split (/:/, $curr_result->{'test'}, 2); + my ($suite, $test, $metric) = split (/:/, $curr_result->{'test'}); + unless ($metric) { + $test = "$suite:$test"; + } else { + $test = "$test:$metric"; + } if (!exists($results{'suites'}{$suite}{'cfg'}{'server'})) { @@ -145,10 +150,12 @@ if (exists($ENV{'CPUSTAT'}) && $ENV{'CPUSTAT'}) { $results{'suites'}{$suite}{'cfg'}{'cpustat'} = $ENV{'CPUSTAT'}; + $results{'suites'}{$suite}{'cfg'}{'cpustat'} =~ s/\n/|/g; } if (exists($ENV{'MEMSTAT'}) && $ENV{'MEMSTAT'}) { $results{'suites'}{$suite}{'cfg'}{'memstat'} = $ENV{'MEMSTAT'}; + $results{'suites'}{$suite}{'cfg'}{'memstat'} =~ s/\n/|/g; } $results{'suites'}{$suite}{'tests'}{$test}{'cfg'} = { diff -urN old/PRTI/bin/runBenchsPRTI.sh new/PRTI/bin/runBenchsPRTI.sh --- old/PRTI/bin/runBenchsPRTI.sh 2007-05-28 09:10:10.000000000 +0700 +++ new/PRTI/bin/runBenchsPRTI.sh 2007-06-05 13:28:00.925531300 +0700 @@ -67,13 +67,12 @@ cd ${AGENTS_DIR} # Check if user provided the way to measure the performance -echo ${TEST}|grep \\.>/dev/null -if [[ $? == 0 ]]; then - export MEASURE=`echo ${TEST}|awk -F. '{print $2 }'` - TEST=`echo ${TEST}|awk -F. '{print $1 }'` +if [[ -z ${MEASURER} ]]; then + export MEASURE="workload" else - export MEASURE="workload" -fi + export MEASURE=${MEASURER} +fi + echo "[runBenchsPRTI.sh]" echo "[runBenchsPRTI.sh] Starting ${TEST}" echo "[runBenchsPRTI.sh] = Way to measure perfomance is: ${MEASURE}" @@ -122,19 +121,9 @@ echo "[runBenchsPRTI.sh] . . . executing preparation actions" ${PREPARE} - if [ ${MEASURE} != "workload" ]; then - sleep 2 - echo "[runBenchsPRTI.sh] . executing 'perl ${RUN_MANAGER} ${BIN_DIR}/${MEASURE}.sh $OUT_NAME ${TIMEOUT}> $OUT_NAME 2>&1'" - perl ${RUN_MANAGER} ${BIN_DIR}/${MEASURE}.sh ${OUT_NAME} ${TIMEOUT}> ${OUT_NAME} 2>&1 - sleep 2 - # let the processing script know the test - export TEST - echo "[runBenchsPRTI.sh] . executing '${AGENTS_DIR}/process${MEASURE}.sh ${OUT_NAME} ${JRE_NAME} ${RES_SUBDIR}>${RES_SUBDIR}/result_${SUITE}_${MEASURE}._pr'" - ${AGENTS_DIR}/process${MEASURE}.sh ${OUT_NAME} ${JRE_NAME} ${RES_SUBDIR}>${RES_SUBDIR}/result_${SUITE}_${MEASURE}._pr - else - echo "[runBenchsPRTI.sh] . executing 'perl ${RUN_MANAGER} ${BIN_DIR}/workload.sh ${OUT_NAME} ${TIMEOUT}> ${OUT_NAME} 2>&1'" - perl ${RUN_MANAGER} ${BIN_DIR}/workload.sh ${OUT_NAME} ${TIMEOUT} > ${OUT_NAME} 2>&1 - fi + sleep 2 + echo "[runBenchsPRTI.sh] . executing 'perl ${RUN_MANAGER} ${BIN_DIR}/workload.sh ${OUT_NAME} ${TIMEOUT}>> ${OUT_NAME} 2>&1'" + perl ${RUN_MANAGER} ${BIN_DIR}/workload.sh ${OUT_NAME} ${TIMEOUT} >> ${OUT_NAME} 2>&1 echo "[runBenchsPRTI.sh] . . . executing cleanup actions" ${CLEANUP} @@ -146,8 +135,8 @@ export CMDLINE=$(cat ${OUT_NAME} | grep "executing '*'" | awk -F "'" '{print $2}' | sed -e "s#${RUNTIME_DIR}/bin/##" | sed -e 's/&/&/g') - echo "[runBenchsPRTI.sh] . . processing '${AGENTS_DIR}/process${TEST}.sh ${OUT_NAME} ${JRE_NAME} ${RES_SUBDIR}>${RES_SUBDIR}/result_${SUITE}.pr'" - ${AGENTS_DIR}/process${TEST}.sh ${OUT_NAME} ${JRE_NAME} ${RES_SUBDIR}>${RES_SUBDIR}/result_${SUITE}.pr + echo "[runBenchsPRTI.sh] . . processing '${AGENTS_DIR}/process${TEST}.sh ${OUT_NAME} ${JRE_NAME} ${RES_SUBDIR}>>${RES_SUBDIR}/result_${SUITE}.pr'" + ${AGENTS_DIR}/process${TEST}.sh ${OUT_NAME} ${JRE_NAME} ${RES_SUBDIR}>>${RES_SUBDIR}/result_${SUITE}.pr # STATUSPROCESS must be already set in process${TEST} if [[ "${STATUSPROCESS}" != "failed" ]]; then diff -urN old/PRTI/bin/tasks/HARMONY_DEF_DaCapo new/PRTI/bin/tasks/HARMONY_DEF_DaCapo --- old/PRTI/bin/tasks/HARMONY_DEF_DaCapo 2007-05-25 11:07:50.000000000 +0700 +++ new/PRTI/bin/tasks/HARMONY_DEF_DaCapo 2007-06-05 16:16:39.844156200 +0700 @@ -19,7 +19,7 @@ ############################################################################### -# Run SPECjvm98 on HARMONY in DEFault mode # +# Run DaCapo on HARMONY in DEFault mode # ############################################################################### export RUNTIME_TAG=HARMONY diff -urN old/PRTI/bin/tasks/HARMONY_DEF_EHWA new/PRTI/bin/tasks/HARMONY_DEF_EHWA --- old/PRTI/bin/tasks/HARMONY_DEF_EHWA 1970-01-01 06:00:00.000000000 +0600 +++ new/PRTI/bin/tasks/HARMONY_DEF_EHWA 2007-06-25 12:00:04.012370700 +0700 @@ -0,0 +1,32 @@ +#!/bin/ksh +# +# Copyright 2005-2007 The Apache Software Foundation or its licensors, as applicable +# +# Licensed 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. +# + + + +############################################################################### +# Run EHWA on HARMONY in DEFault mode # +############################################################################### + +export RUNTIME_TAG=HARMONY +export RUNTIME_MODE_TAG=DEF +export JRE_NAME="*harmony*/jdk/jre" +export SUITE=EHWA +export MEASURER="/usr/bin/time -f %e --verbose" +export WORKLOAD_NAME=EHWA +export RUNS=5 +export ECLIPSE_HOME="${SUITE_ROOT_DIR}/${SUITE}/eclipse" diff -urN old/PRTI/bin/tasks/HARMONY_DEF_EST new/PRTI/bin/tasks/HARMONY_DEF_EST --- old/PRTI/bin/tasks/HARMONY_DEF_EST 1970-01-01 06:00:00.000000000 +0600 +++ new/PRTI/bin/tasks/HARMONY_DEF_EST 2007-06-25 12:00:06.085496400 +0700 @@ -0,0 +1,32 @@ +#!/bin/ksh +# +# Copyright 2005-2007 The Apache Software Foundation or its licensors, as applicable +# +# Licensed 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. +# + + + +############################################################################### +# Run EST on Harmony in DEFault mode # +############################################################################### + +export RUNTIME_TAG=HARMONY +export RUNTIME_MODE_TAG=DEF +export JRE_NAME="*harmony*/jdk/jre" +export SUITE=EST +export MEASURER="/usr/bin/time -f %e --verbose" +export WORKLOAD_NAME=EST +export RUNS=5 +export ECLIPSE_HOME="${SUITE_ROOT_DIR}/${SUITE}/eclipse" diff -urN old/PRTI/bin/workload.sh new/PRTI/bin/workload.sh --- old/PRTI/bin/workload.sh 2007-05-23 14:19:46.000000000 +0700 +++ new/PRTI/bin/workload.sh 2007-06-15 14:33:56.226123100 +0700 @@ -31,14 +31,14 @@ echo $$ > ${TMP_DIR}/.${PARENT_PID}_mpid # measurer PID CURDIR=`pwd` echo "[workload.sh] . . . Going to folder '${SUITE_DIR}'" -cd ${SUITE_DIR} +cd ${SUITE_DIR}>/dev/null 2>&1 -if [ ! -z ${APPLICATION} ]; then +if [[ ! -z ${APPLICATION} ]]; then echo "[workload.sh] . . . . executing APPLICATION: '${APPLICATION}'" ${APPLICATION} & fi -if [ "${EXEC_MODE}" == "other" ]; then +if [[ "${EXEC_MODE}" == "other" ]]; then echo "[workload.sh] . . . Sequental run" if [[ -z ${BENCHMARKS_LIST} ]]; then echo "[workload.sh:ERROR] Undefined benchmarks list" @@ -53,9 +53,9 @@ eval SUBBENCH_VM_OPTIONS=\$${subbenchmark}_VM_OPTIONS export JAVA_PARAMS="${JAVA_PARAMS_OLD} ${SUBBENCH_VM_OPTIONS}" fi - echo "[workload.sh] . . . . executing '${JAVA_HOME}/${JAVA_BIN} ${JAVA_PARAMS} -cp ${JAVA_CP} ${JAVA_CLASS} ${JAVA_CLASS_PARAMS}'" + echo "[workload.sh] . . . . executing '${MEASURER} ${JAVA_HOME}/${JAVA_BIN} ${JAVA_PARAMS} -cp ${JAVA_CP} ${JAVA_CLASS} ${JAVA_CLASS_PARAMS}'" touch ${TMP_DIR}/.${PARENT_PID}_kids - ${JAVA_HOME}/${JAVA_BIN} ${JAVA_PARAMS} -cp ${JAVA_CP} ${JAVA_CLASS} ${JAVA_CLASS_PARAMS} + ${MEASURER} ${JAVA_HOME}/${JAVA_BIN} ${JAVA_PARAMS} -cp ${JAVA_CP} ${JAVA_CLASS} ${JAVA_CLASS_PARAMS} done export JAVA_CLASS_PARAMS="$JAVA_CLASS_PARAMS_OLD" else @@ -63,9 +63,9 @@ if [[ ! -z ${BENCHMARKS_LIST} ]]; then export JAVA_CLASS_PARAMS="${JAVA_CLASS_PARAMS} ${BENCHMARKS_LIST}" fi - echo "[workload.sh] . . . . executing '${JAVA_HOME}/${JAVA_BIN} ${JAVA_PARAMS} -cp ${JAVA_CP} ${JAVA_CLASS} ${JAVA_CLASS_PARAMS}'" + echo "[workload.sh] . . . . executing '${MEASURER} ${JAVA_HOME}/${JAVA_BIN} ${JAVA_PARAMS} -cp ${JAVA_CP} ${JAVA_CLASS} ${JAVA_CLASS_PARAMS}'" touch ${TMP_DIR}/.${PARENT_PID}_kids - ${JAVA_HOME}/${JAVA_BIN} ${JAVA_PARAMS} -cp ${JAVA_CP} ${JAVA_CLASS} ${JAVA_CLASS_PARAMS} + ${MEASURER} ${JAVA_HOME}/${JAVA_BIN} ${JAVA_PARAMS} -cp ${JAVA_CP} ${JAVA_CLASS} ${JAVA_CLASS_PARAMS} fi echo "[workload.sh] . . . Going back to folder '${CURDIR}'"