| | |
| | | |
| | | ServersInfoDict=eval(STAFResult) |
| | | |
| | | ServerName='unknown' |
| | | ServerPath='%s/%s' % (DIRECTORY_INSTANCE_DIR,OPENDSNAME) |
| | | ServerName='unknown' |
| | | ServerVersion='unknown' |
| | | ServerBuildId='unknown' |
| | | ServerJavaVersion='unknown' |
| | |
| | | ServerJVMLabel='unknown' |
| | | ServerSystemOS='unknown' |
| | | ServerSystemName='unknown' |
| | | ServerSvnRevision='unknown' |
| | | ServerRevision='unknown' |
| | | ServerPackage='%s/%s' % (ZIPPATH,ZIPNAME) |
| | | ServerSNMPJarFile='%s' % SNMP_OPENDMK_JARFILE |
| | | |
| | | if ServersInfoDict.has_key('%s/%s' % (DIRECTORY_INSTANCE_DIR,OPENDSNAME)): |
| | | ServerInfoDict=ServersInfoDict['%s/%s' % (DIRECTORY_INSTANCE_DIR,OPENDSNAME)] |
| | | |
| | | if ServersInfoDict.has_key(ServerPath): |
| | | ServerInfoDict=ServersInfoDict[ServerPath] |
| | | |
| | | ServerName=OPENDSNAME |
| | | |
| | |
| | | ServerSvnRevision=ServerInfoDict[ServerInfoKey] |
| | | |
| | | else: |
| | | ServerInfoDict='No key found (%s/%s)' % (DIRECTORY_INSTANCE_DIR,OPENDSNAME) |
| | | ServerInfoDict='No key found (%s)' % ServerPath |
| | | |
| | | if ServerOsString == 'Unknown Operating System': |
| | | ServerOsString=ServerSystemOS |
| | |
| | | txtfh=open(textfile,'w') |
| | | </script> |
| | | |
| | | <iterate var="thisChild" in="listOfChildren"> |
| | | <!-- Defend against not having any test groups run --> |
| | | <if expr="not listOfChildren"> |
| | | <sequence> |
| | | <stafcmd name="'STAF Command: Log Query All'"> |
| | | <location>'%s' % STAF_LOCAL_HOSTNAME </location> |
| | | <service>'log'</service> |
| | | <request> |
| | | 'QUERY ALL MACHINE %s LOGNAME STAX_Job_%s' % (STAXServiceMachine,thisChild) |
| | | </request> |
| | | </stafcmd> |
| | | |
| | | <if expr="RC == 0"> |
| | | <sequence> |
| | | <script> |
| | | resultQuery=STAFResult |
| | | </script> |
| | | <message> |
| | | 'Log Query on STAX_Job_%s Completed. RC=%s' % (thisChild,RC) |
| | | </message> |
| | | <iterate var="line" in="resultQuery"> |
| | | |
| | | <script> |
| | | txtfh.write('%s\n' % line) |
| | | </script> |
| | | |
| | | </iterate> |
| | | </sequence> |
| | | <else> |
| | | <sequence> |
| | | <message log="1" level="'Error'"> |
| | | 'Unable to perform log query on STAX_Job_%s. RC: %s Result: %s' % (thisChild,RC,STAFResult) |
| | | </message> |
| | | <return>1</return> |
| | | </sequence> |
| | | </else> |
| | | </if> |
| | | |
| | | <message log="1" level="'Warning'"> |
| | | 'No test groups have been run.' |
| | | </message> |
| | | </sequence> |
| | | </iterate> |
| | | <else> |
| | | <sequence> |
| | | <iterate var="thisChild" in="listOfChildren"> |
| | | <sequence> |
| | | <stafcmd name="'STAF Command: Log Query All'"> |
| | | <location>'%s' % STAF_LOCAL_HOSTNAME </location> |
| | | <service>'log'</service> |
| | | <request> |
| | | 'QUERY ALL MACHINE %s LOGNAME STAX_Job_%s' % (STAXServiceMachine,thisChild) |
| | | </request> |
| | | </stafcmd> |
| | | |
| | | <if expr="RC == 0"> |
| | | <sequence> |
| | | <script> |
| | | resultQuery=STAFResult |
| | | </script> |
| | | <message> |
| | | 'Log Query on STAX_Job_%s Completed. RC=%s' % (thisChild,RC) |
| | | </message> |
| | | <iterate var="line" in="resultQuery"> |
| | | |
| | | <script> |
| | | txtfh.write('%s\n' % line) |
| | | </script> |
| | | |
| | | </iterate> |
| | | </sequence> |
| | | <else> |
| | | <sequence> |
| | | <message log="1" level="'Error'"> |
| | | 'Unable to perform log query on STAX_Job_%s. RC: %s Result: %s' % (thisChild,RC,STAFResult) |
| | | </message> |
| | | <return>1</return> |
| | | </sequence> |
| | | </else> |
| | | </if> |
| | | |
| | | </sequence> |
| | | </iterate> |
| | | </sequence> |
| | | </else> |
| | | </if> |
| | | |
| | | <script> |
| | | txtfh.close() |
| | | </script> |
| | | |
| | | <!-- Write XML File for results --> |
| | | <!-- Write error File for results --> |
| | | <script> |
| | | import re |
| | | xmlfile= '%s/results.xml' % logsReportDir |
| | | xmlfh=open(xmlfile,'w') |
| | | errorfile= '%s/results.errors' % logsReportDir |
| | | errorfh=open(errorfile,'w') |
| | | </script> |
| | |
| | | |
| | | except IOError: |
| | | errorfh.write('Error: Unable to open %s. Reason IOError.' % textfile ) |
| | | </script> |
| | | |
| | | <!-- XML Report Pre --> |
| | | <script> |
| | | # Create the objects |
| | | localstaf =test_env.staf(STAF_LOCAL_HOSTNAME) |
| | | remotestaf=test_env.staf(STAF_REMOTE_HOSTNAME) |
| | | |
| | |
| | | http = test_env.http(STAF_LOCAL_HOSTNAME) |
| | | dsml = test_env.dsml(STAF_LOCAL_HOSTNAME) |
| | | |
| | | xmlfh.write('<qa>\n') |
| | | xmlfh.write(' <functional-tests>\n') |
| | | xmlfh.write(' <identification>\n') |
| | | xmlfh.write(' <sut product="opends">\n') |
| | | xmlfh.write(' <name>\n') |
| | | xmlfh.write(' %s\n' % ServerName) |
| | | xmlfh.write(' </name>\n') |
| | | xmlfh.write(' <version>\n') |
| | | xmlfh.write(' %s\n' % ServerVersion) |
| | | xmlfh.write(' </version>\n') |
| | | xmlfh.write(' <buildid>\n') |
| | | xmlfh.write(' %s\n' % ServerBuildId) |
| | | xmlfh.write(' </buildid>\n') |
| | | xmlfh.write(' <revision>\n') |
| | | xmlfh.write(' %s\n' % ServerSvnRevision) |
| | | xmlfh.write(' </revision>\n') |
| | | xmlfh.write(' <hostname>\n') |
| | | xmlfh.write(' %s\n' % STAF_REMOTE_HOSTNAME) |
| | | xmlfh.write(' </hostname>\n') |
| | | xmlfh.write(' <platform>\n') |
| | | xmlfh.write(' %s\n' % ServerSystemOS) |
| | | xmlfh.write(' </platform>\n') |
| | | xmlfh.write(' <jvm-version>\n') |
| | | xmlfh.write(' %s\n' % ServerJVMVersion) |
| | | xmlfh.write(' </jvm-version>\n') |
| | | xmlfh.write(' <jvm-label>\n') |
| | | xmlfh.write(' %s\n' % ServerJVMString) |
| | | xmlfh.write(' </jvm-label>\n') |
| | | xmlfh.write(' <jvm-vendor>\n') |
| | | xmlfh.write(' %s\n' % ServerJVMVendor) |
| | | xmlfh.write(' </jvm-vendor>\n') |
| | | xmlfh.write(' <jvm-arch>\n') |
| | | xmlfh.write(' %s\n' % ServerJVMArchitecture) |
| | | xmlfh.write(' </jvm-arch>\n') |
| | | xmlfh.write(' <jvm-args>\n') |
| | | xmlfh.write(' TBD\n') |
| | | xmlfh.write(' </jvm-args>\n') |
| | | xmlfh.write(' <jvm-home>\n') |
| | | xmlfh.write(' TBD\n') |
| | | xmlfh.write(' </jvm-home>\n') |
| | | xmlfh.write(' <jvm-bin>\n') |
| | | xmlfh.write(' TBD\n') |
| | | xmlfh.write(' </jvm-bin>\n') |
| | | xmlfh.write(' <os-label>\n') |
| | | xmlfh.write(' %s\n' % ServerOsString) |
| | | xmlfh.write(' </os-label>\n') |
| | | xmlfh.write(' <server-package>\n') |
| | | xmlfh.write(' %s\n' % ServerPackage) |
| | | xmlfh.write(' </server-package>\n') |
| | | xmlfh.write(' <snmp-jarfile>\n') |
| | | xmlfh.write(' %s\n' % ServerSNMPJarFile) |
| | | xmlfh.write(' </snmp-jarfile>\n') |
| | | xmlfh.write(' <md5-sum>\n') |
| | | xmlfh.write(' TDB\n') |
| | | xmlfh.write(' </md5-sum>\n') |
| | | xmlfh.write(' </sut>\n') |
| | | xmlfh.write(' <sut product="dsml">\n') |
| | | xmlfh.write(' <name>\n') |
| | | xmlfh.write(' %s\n' % DSMLName) |
| | | xmlfh.write(' </name>\n') |
| | | xmlfh.write(' <dsml-container>\n') |
| | | xmlfh.write(' %s\n' % DSMLContainer) |
| | | xmlfh.write(' </dsml-container>\n') |
| | | xmlfh.write(' <dsml-package>\n') |
| | | xmlfh.write(' %s\n' % DSMLPackage) |
| | | xmlfh.write(' </dsml-package>\n') |
| | | xmlfh.write(' <md5-sum>\n') |
| | | xmlfh.write(' TDB\n') |
| | | xmlfh.write(' </md5-sum>\n') |
| | | xmlfh.write(' </sut>\n') |
| | | xmlfh.write(' <testware>\n') |
| | | xmlfh.write(' <staf>\n') |
| | | xmlfh.write(' <local>\n') |
| | | xmlfh.write(' <hostname>\n') |
| | | xmlfh.write(' %s\n' % STAF_LOCAL_HOSTNAME) |
| | | xmlfh.write(' </hostname>\n') |
| | | xmlfh.write(' <version>\n') |
| | | xmlfh.write(' %s\n' % localstaf.version) |
| | | xmlfh.write(' </version>\n') |
| | | xmlfh.write(' <rootdir>\n') |
| | | xmlfh.write(' %s\n' % localstaf.root) |
| | | xmlfh.write(' </rootdir>\n') |
| | | xmlfh.write(' </local>\n') |
| | | xmlfh.write(' <remote>\n') |
| | | xmlfh.write(' <hostname>\n') |
| | | xmlfh.write(' %s\n' % STAF_REMOTE_HOSTNAME) |
| | | xmlfh.write(' </hostname>\n') |
| | | xmlfh.write(' <version>\n') |
| | | xmlfh.write(' %s\n' % remotestaf.version) |
| | | xmlfh.write(' </version>\n') |
| | | xmlfh.write(' <rootdir>\n') |
| | | xmlfh.write(' %s\n' % remotestaf.root) |
| | | xmlfh.write(' </rootdir>\n') |
| | | xmlfh.write(' </remote>\n') |
| | | xmlfh.write(' </staf>\n') |
| | | xmlfh.write(' <service name="%s">\n' % stax.name) |
| | | xmlfh.write(' <version>\n') |
| | | xmlfh.write(' %s\n' % stax.version) |
| | | xmlfh.write(' </version>\n') |
| | | xmlfh.write(' <library>\n') |
| | | xmlfh.write(' %s\n' % stax.library) |
| | | xmlfh.write(' </library>\n') |
| | | xmlfh.write(' <executable>\n') |
| | | xmlfh.write(' %s\n' % stax.executable) |
| | | xmlfh.write(' </executable>\n') |
| | | xmlfh.write(' <options>\n') |
| | | xmlfh.write(' %s\n' % stax.options) |
| | | xmlfh.write(' </options>\n') |
| | | xmlfh.write(' <params>\n') |
| | | xmlfh.write(' %s\n' % stax.params) |
| | | xmlfh.write(' </params>\n') |
| | | xmlfh.write(' </service>\n') |
| | | xmlfh.write(' <service name="%s">\n' % event.name) |
| | | xmlfh.write(' <version>\n') |
| | | xmlfh.write(' %s\n' % event.version) |
| | | xmlfh.write(' </version>\n') |
| | | xmlfh.write(' <library>\n') |
| | | xmlfh.write(' %s\n' % event.library) |
| | | xmlfh.write(' </library>\n') |
| | | xmlfh.write(' <executable>\n') |
| | | xmlfh.write(' %s\n' % event.executable) |
| | | xmlfh.write(' </executable>\n') |
| | | xmlfh.write(' <options>\n') |
| | | xmlfh.write(' %s\n' % event.options) |
| | | xmlfh.write(' </options>\n') |
| | | xmlfh.write(' <params>\n') |
| | | xmlfh.write(' %s\n' % event.params) |
| | | xmlfh.write(' </params>\n') |
| | | xmlfh.write(' </service>\n') |
| | | xmlfh.write(' <service name="%s">\n' % eventman.name) |
| | | xmlfh.write(' <version>\n') |
| | | xmlfh.write(' %s\n' % eventman.version) |
| | | xmlfh.write(' </version>\n') |
| | | xmlfh.write(' <library>\n') |
| | | xmlfh.write(' %s\n' % eventman.library) |
| | | xmlfh.write(' </library>\n') |
| | | xmlfh.write(' <executable>\n') |
| | | xmlfh.write(' %s\n' % eventman.executable) |
| | | xmlfh.write(' </executable>\n') |
| | | xmlfh.write(' <options>\n') |
| | | xmlfh.write(' %s\n' % eventman.options) |
| | | xmlfh.write(' </options>\n') |
| | | xmlfh.write(' <params>\n') |
| | | xmlfh.write(' %s\n' % eventman.params) |
| | | xmlfh.write(' </params>\n') |
| | | xmlfh.write(' </service>\n') |
| | | xmlfh.write(' <service name="%s">\n' % email.name) |
| | | xmlfh.write(' <version>\n') |
| | | xmlfh.write(' %s\n' % email.version) |
| | | xmlfh.write(' </version>\n') |
| | | xmlfh.write(' <library>\n') |
| | | xmlfh.write(' %s\n' % email.library) |
| | | xmlfh.write(' </library>\n') |
| | | xmlfh.write(' <executable>\n') |
| | | xmlfh.write(' %s\n' % email.executable) |
| | | xmlfh.write(' </executable>\n') |
| | | xmlfh.write(' <options>\n') |
| | | xmlfh.write(' %s\n' % email.options) |
| | | xmlfh.write(' </options>\n') |
| | | xmlfh.write(' <params>\n') |
| | | xmlfh.write(' %s\n' % email.params) |
| | | xmlfh.write(' </params>\n') |
| | | xmlfh.write(' </service>\n') |
| | | xmlfh.write(' <service name="%s">\n' % http.name) |
| | | xmlfh.write(' <version>\n') |
| | | xmlfh.write(' %s\n' % http.version) |
| | | xmlfh.write(' </version>\n') |
| | | xmlfh.write(' <library>\n') |
| | | xmlfh.write(' %s\n' % http.library) |
| | | xmlfh.write(' </library>\n') |
| | | xmlfh.write(' <executable>\n') |
| | | xmlfh.write(' %s\n' % http.executable) |
| | | xmlfh.write(' </executable>\n') |
| | | xmlfh.write(' <options>\n') |
| | | xmlfh.write(' %s\n' % http.options) |
| | | xmlfh.write(' </options>\n') |
| | | xmlfh.write(' <params>\n') |
| | | xmlfh.write(' %s\n' % http.params) |
| | | xmlfh.write(' </params>\n') |
| | | xmlfh.write(' </service>\n') |
| | | xmlfh.write(' <service name="%s">\n' % dsml.name) |
| | | xmlfh.write(' <version>\n') |
| | | xmlfh.write(' %s\n' % dsml.version) |
| | | xmlfh.write(' </version>\n') |
| | | xmlfh.write(' <library>\n') |
| | | xmlfh.write(' %s\n' % dsml.library) |
| | | xmlfh.write(' </library>\n') |
| | | xmlfh.write(' <executable>\n') |
| | | xmlfh.write(' %s\n' % dsml.executable) |
| | | xmlfh.write(' </executable>\n') |
| | | xmlfh.write(' <options>\n') |
| | | xmlfh.write(' %s\n' % dsml.options) |
| | | xmlfh.write(' </options>\n') |
| | | xmlfh.write(' <params>\n') |
| | | xmlfh.write(' %s\n' % dsml.params) |
| | | xmlfh.write(' </params>\n') |
| | | xmlfh.write(' </service>\n') |
| | | xmlfh.write(' </testware>\n') |
| | | xmlfh.write(' <tests-dir>\n') |
| | | xmlfh.write(' %s\n' % logsDir) |
| | | xmlfh.write(' </tests-dir>\n') |
| | | xmlfh.write(' <tests-url>\n') |
| | | xmlfh.write(' %s\n' % logsURI) |
| | | xmlfh.write(' </tests-url>\n') |
| | | xmlfh.write(' <mailto>\n') |
| | | xmlfh.write(' %s\n' % SEND_MAIL_TO) |
| | | xmlfh.write(' </mailto>\n') |
| | | xmlfh.write(' </identification>\n') |
| | | xmlfh.write(' <results>\n') |
| | | </script> |
| | | # Build the XML results file |
| | | from xml.dom.minidom import Document |
| | | |
| | | <!-- XML Report Results --> |
| | | <script> |
| | | def write_text_elements(parent,elements): |
| | | |
| | | for sutElement in elements: |
| | | label,text = sutElement |
| | | element = doc.createElement(label) |
| | | parent.appendChild(element) |
| | | try: |
| | | element.appendChild(doc.createTextNode(text)) |
| | | except TypeError,details: |
| | | element.appendChild(doc.createTextNode('TypeError: %s' % details)) |
| | | |
| | | # Create the test results document |
| | | doc = Document() |
| | | |
| | | # Create the qa base element |
| | | qa = doc.createElement("qa") |
| | | doc.appendChild(qa) |
| | | |
| | | # Create the functional-tests element |
| | | ft = doc.createElement("functional-tests") |
| | | qa.appendChild(ft) |
| | | |
| | | # Create the identification element |
| | | id = doc.createElement("identification") |
| | | ft.appendChild(id) |
| | | |
| | | # Create the sut opends element |
| | | sut = doc.createElement("sut") |
| | | sut.setAttribute("product", "opends") |
| | | id.appendChild(sut) |
| | | |
| | | # Create the sut opends elements |
| | | sutElementList=[] |
| | | sutElementList.append(['name',ServerName]) |
| | | sutElementList.append(['path',ServerPath]) |
| | | sutElementList.append(['version',ServerVersion]) |
| | | sutElementList.append(['buildid',ServerBuildId]) |
| | | sutElementList.append(['revision',ServerRevision]) |
| | | sutElementList.append(['hostname',STAF_REMOTE_HOSTNAME]) |
| | | sutElementList.append(['platform',ServerSystemOS]) |
| | | sutElementList.append(['jvm-version',ServerJVMVersion]) |
| | | sutElementList.append(['jvm-label',ServerJVMString]) |
| | | sutElementList.append(['jvm-vendor',ServerJVMVendor]) |
| | | sutElementList.append(['jvm-arch',ServerJVMArchitecture]) |
| | | sutElementList.append(['jvm-args','TBD']) |
| | | sutElementList.append(['jvm-home','TBD']) |
| | | sutElementList.append(['jvm-bin','TBD']) |
| | | sutElementList.append(['os-label',ServerOsString]) |
| | | sutElementList.append(['server-package',ServerPackage]) |
| | | sutElementList.append(['snmp-jarfile',ServerSNMPJarFile]) |
| | | sutElementList.append(['md5-sum','TDB']) |
| | | |
| | | write_text_elements(sut,sutElementList) |
| | | |
| | | # Create the sut dsml element |
| | | sut = doc.createElement("sut") |
| | | sut.setAttribute("product", "dsml") |
| | | id.appendChild(sut) |
| | | |
| | | # Create the sut dsml elements |
| | | sutElementList=[] |
| | | sutElementList.append(['name',DSMLName]) |
| | | sutElementList.append(['dsml-container',DSMLContainer]) |
| | | sutElementList.append(['dsml-package',DSMLPackage]) |
| | | sutElementList.append(['md5-sum','TDB']) |
| | | |
| | | write_text_elements(sut,sutElementList) |
| | | |
| | | sutElementList=[] |
| | | |
| | | # Create the testware element |
| | | testware = doc.createElement("testware") |
| | | id.appendChild(testware) |
| | | |
| | | # Create the staf testware element |
| | | staf = doc.createElement("staf") |
| | | testware.appendChild(staf) |
| | | |
| | | # Create the staf local element |
| | | local = doc.createElement("local") |
| | | staf.appendChild(local) |
| | | |
| | | # Create the staf local testware elements |
| | | testwareElementList=[] |
| | | testwareElementList.append(['hostname',STAF_LOCAL_HOSTNAME]) |
| | | testwareElementList.append(['version',localstaf.version]) |
| | | testwareElementList.append(['rootdir',localstaf.root]) |
| | | |
| | | write_text_elements(local,testwareElementList) |
| | | |
| | | # Create the staf remote testware element |
| | | remote = doc.createElement("remote") |
| | | staf.appendChild(remote) |
| | | |
| | | # Create the staf remote testware elements |
| | | testwareElementList=[] |
| | | testwareElementList.append(['hostname',STAF_REMOTE_HOSTNAME]) |
| | | testwareElementList.append(['version',remotestaf.version]) |
| | | testwareElementList.append(['version',remotestaf.root]) |
| | | |
| | | write_text_elements(remote,testwareElementList) |
| | | |
| | | for serviceType in [stax,event,eventman,email,http,dsml]: |
| | | |
| | | # Create the service testware element |
| | | service = doc.createElement("service") |
| | | service.setAttribute("name", serviceType.name) |
| | | testware.appendChild(service) |
| | | |
| | | # Create the service testware elements |
| | | testwareElementList=[] |
| | | testwareElementList.append(['version',serviceType.version]) |
| | | testwareElementList.append(['library',serviceType.library]) |
| | | testwareElementList.append(['executable',serviceType.executable]) |
| | | testwareElementList.append(['options','%s' % serviceType.options]) |
| | | testwareElementList.append(['params','%s' % serviceType.params]) |
| | | |
| | | write_text_elements(service,testwareElementList) |
| | | |
| | | testwareElementList=[] |
| | | |
| | | # Create the id elements |
| | | idElementList=[] |
| | | idElementList.append(['tests-dir',logsDir]) |
| | | idElementList.append(['tests-url',logsURI]) |
| | | idElementList.append(['mailto',SEND_MAIL_TO]) |
| | | |
| | | write_text_elements(id,idElementList) |
| | | |
| | | idElementList=[] |
| | | |
| | | # Create the results element |
| | | results = doc.createElement("results") |
| | | ft.appendChild(results) |
| | | |
| | | # Create the results elements and attributes |
| | | for tcname in testCaseList: |
| | | |
| | | if testDict.has_key(tcname): |
| | |
| | | |
| | | tcdurationsecs=test_time().timeToSeconds(tcduration) |
| | | |
| | | xmlfh.write(' <testgroup name="%s">\n' % tcgroup) |
| | | xmlfh.write(' <testsuite name="%s">\n' % tcsuite) |
| | | xmlfh.write(' <testcase group="%s" suite="%s" name="%s" result="%s" start="%s" stop="%s" duration="%s"/>\n' % (tcgroup,tcsuite,tcname,tcresult,tcstart,tcstop,tcdurationsecs)) |
| | | xmlfh.write(' </testsuite>\n') |
| | | xmlfh.write(' </testgroup>\n') |
| | | </script> |
| | | # Create the testgroup element |
| | | group = doc.createElement("testgroup") |
| | | group.setAttribute("name", tcgroup) |
| | | results.appendChild(group) |
| | | |
| | | # Create the testsuite element |
| | | suite = doc.createElement("testsuite") |
| | | suite.setAttribute("name", tcsuite) |
| | | group.appendChild(suite) |
| | | |
| | | # Create the testcase element |
| | | case = doc.createElement("testcase") |
| | | case.setAttribute("group", "%s" %tcgroup) |
| | | case.setAttribute("suite", "%s" %tcsuite) |
| | | case.setAttribute("name", "%s" %tcname) |
| | | case.setAttribute("result", "%s" %tcresult) |
| | | case.setAttribute("start", "%s" %tcstart) |
| | | case.setAttribute("stop", "%s" %tcstop) |
| | | case.setAttribute("duration", "%s" % tcdurationsecs) |
| | | suite.appendChild(case) |
| | | |
| | | <!-- XML Report Post --> |
| | | <script> |
| | | xmlfh.write(' </results>\n') |
| | | xmlfh.write(' </functional-tests>\n') |
| | | xmlfh.write('</qa>\n') |
| | | </script> |
| | | |
| | | <script> |
| | | # Write out the results |
| | | xmlfile= '%s/results.xml' % logsReportDir |
| | | xmlfh=open(xmlfile,'w') |
| | | xmlfh.writelines(doc.toprettyxml(indent=" ")) |
| | | xmlfh.close() |
| | | errorfh.close() |
| | | </script> |