runTests.xml revision 28eeffb99d4c7f8ff501c22d1d21501cbfe3ad32
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE stax SYSTEM "/stax.dtd">
<!--
! CDDL HEADER START
!
! The contents of this file are subject to the terms of the
! Common Development and Distribution License, Version 1.0 only
! (the "License"). You may not use this file except in compliance
! with the License.
!
! You can obtain a copy of the license at
! trunk/opends/resource/legal-notices/OpenDS.LICENSE
! or https://OpenDS.dev.java.net/OpenDS.LICENSE.
! See the License for the specific language governing permissions
! and limitations under the License.
!
! When distributing Covered Code, include this CDDL HEADER in each
! file and include the License file at
! trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
! add the following below this CDDL HEADER, with the fields enclosed
! by brackets "[]" replaced with your own identifying information:
! Portions Copyright [yyyy] [name of copyright owner]
!
! CDDL HEADER END
!
! Copyright 2006-2009 Sun Microsystems, Inc.
! -->
<stax>
<defaultcall function="main" />
<function name="main">
<sequence>
<!--- Load the environment for the test suite execution -->
<import machine="STAF_LOCAL_HOSTNAME"
file="'%s/environment.xml' % TESTS_FUNCTIONS_DIR" />
<call function="'loadGlobalEnvironment'" />
<!-- Build list of test groups to run -->
<script>
listOfChildren=[]
my_path='%s/%s' % (DIRECTORY_INSTANCE_BIN,OPENDSNAME)
my_report='%s/results2.xml' % logs.reports
my_info={}
my_info['jvm label']=TEST_JVM_STRING
my_info['os label']=TEST_OS_STRING
my_info['server package']='%s/%s' % (ZIPPATH,ZIPNAME)
my_info['snmp jarfile']=SNMP_OPENDMK_JARFILE
xml_create_report(PRODUCTNAME,TESTS_TYPE,my_path, \
DSInfo.ServerDict,my_info,local.directory,my_report)
groupsToRun = []
for line in TEST_PLAN_CUSTOM.split(","):
groupsToRun.append(group_to_run(line.rstrip()))
</script>
<!-- TODO: If no groupsToRun then iterate will throw exception -->
<iterate var="group" in="groupsToRun" >
<sequence>
<!-- The job that executes the tests -->
<script>
STAXParentID=STAXJobID
</script>
<job name="'%s: %s, %s, %s' % (STAXParentID,STAF_REMOTE_HOSTNAME,TEST_OS_STRING,group.getName())" monitor="1" clearlogs="'Enabled'" logtcstartstop="'Enabled'">
<job-file>
'%s/testcases/%s/%s.xml' % (TESTS_DIR,group.getName(),group.getName())
</job-file>
<job-function>
'main_%s' % group.getName()
</job-function>
<job-function-args eval='1'>
STAXParentID
</job-function-args>
<job-scriptfiles machine="STAF_LOCAL_HOSTNAME">
STAXJobScriptFiles
</job-scriptfiles>
<job-action>
<log>
'Started test group %s, child ID %s, parent ID %s on %s' % (group.getName(),STAXSubJobID,STAXParentID,STAF_LOCAL_HOSTNAME)
</log>
</job-action>
</job>
<if expr="RC == 0">
<sequence>
<message>
'Completed test group %s, child ID %s. Result: %s' % (group.getName(),STAXSubJobID, STAXResult)
</message>
<script>
listOfChildren.append(STAXSubJobID)
</script>
</sequence>
<else>
<sequence>
<message log="1" level="'Error'">
'Test group %s, child ID %s could not be started. RC: %s Result: %s' % (group.getName(),STAXSubJobID,RC,STAFResult)
</message>
</sequence>
</else>
</if>
</sequence>
</iterate>
<!-- in this section we'll compute the coverage for all the tests
if coverage is turned on
so far I could only get through this on either machines with a lot
of memory or small sets of tests
-->
<script>
emmaJar='%s/%s/lib/emma.jar' % (DIRECTORY_INSTANCE_DIR,OPENDSNAME)
</script>
<if expr="os.path.exists(emmaJar)">
<sequence>
<script>
coverageFiles=''
coveragePath=os.path.join(LOGS_ROOT,'coverage')
srcPathPrefix = os.path.join(TMPDIR,"..","..","..","..","..","..","src")
srcPaths = [ os.path.join(srcPathPrefix,"server"),
os.path.join(srcPathPrefix,"ads"),
os.path.join(srcPathPrefix,"server","org"),
os.path.join(srcPathPrefix,"admin","defn","org"),
os.path.join(srcPathPrefix,"snmp","src","org"),
os.path.join(srcPathPrefix,"ads","org"),
os.path.join(srcPathPrefix,"dsml","org"),
os.path.join(srcPathPrefix,"messages","src","org")
]
srcArgs = " -sp ".join(srcPaths)
for group in os.listdir(coveragePath):
coverageGroupPath=os.path.join(coveragePath,group)
coverageECs=[os.path.join(coverageGroupPath,ec) for ec in os.listdir(coverageGroupPath) if ec.startswith('coverage') and ec.endswith('.ec')]
coverageFiles=','.join(coverageECs)
</script>
<call function="'runCommand'">
{ 'name' : 'Generate global coverage xml report',
'command' : 'java',
'arguments' : '-Xms64M -Xmx2048m -cp %s emma report -r xml,html -in %s/coverage.em,%s -Dreport.xml.out.file=%s/coverage.xml -Dreport.html.out.file=%s/coverage.html -sp %s' % (emmaJar,coveragePath,coverageFiles,coveragePath,coveragePath,srcArgs),
'path' : TMPDIR
}
</call>
</sequence>
</if>
<return>listOfChildren</return>
</sequence>
</function>
</stax>