| opends/tests/functional-tests/shared/xsl/gen-alltests-report.xsl | ●●●●● patch | view | raw | blame | history | |
| opends/tests/functional-tests/shared/xsl/gen-text-summary.xsl | ●●●●● patch | view | raw | blame | history | |
| opends/tests/functional-tests/shared/xsl/my-report.xsl | ●●●●● patch | view | raw | blame | history | |
| opends/tests/functional-tests/staf-installer/config.py.stubs | ●●●●● patch | view | raw | blame | history | |
| opends/tests/functional-tests/testcases/runFuncTests.xml | ●●●●● patch | view | raw | blame | history | |
| opends/tests/functional-tests/testcases/runTestJob.xml | ●●●●● patch | view | raw | blame | history |
opends/tests/functional-tests/shared/xsl/gen-alltests-report.xsl
@@ -144,7 +144,7 @@ <xsl:value-of select="'center'"/> </xsl:attribute> <xsl:element name="b"> <xsl:value-of select="'JVM Version'"/> <xsl:value-of select="'JVM'"/> </xsl:element> </xsl:element> <xsl:element name="td"> @@ -152,14 +152,6 @@ <xsl:value-of select="'center'"/> </xsl:attribute> <xsl:element name="b"> <xsl:value-of select="'JVM Vendor'"/> </xsl:element> </xsl:element> <xsl:element name="td"> <xsl:attribute name="align"> <xsl:value-of select="'center'"/> </xsl:attribute> <xsl:element name="b"> <xsl:value-of select="'Total'"/> </xsl:element> </xsl:element> @@ -210,7 +202,7 @@ <xsl:value-of select="'center'"/> </xsl:attribute> <xsl:element name="b"> <xsl:value-of select="$identification/platform"/> <xsl:value-of select="$identification/os-label"/> </xsl:element> </xsl:element> <xsl:element name="td"> @@ -218,7 +210,7 @@ <xsl:value-of select="'center'"/> </xsl:attribute> <xsl:element name="b"> <xsl:value-of select="$identification/jvm-version"/> <xsl:value-of select="$identification/jvm-label"/> </xsl:element> </xsl:element> <xsl:element name="td"> @@ -226,14 +218,6 @@ <xsl:value-of select="'center'"/> </xsl:attribute> <xsl:element name="b"> <xsl:value-of select="$identification/jvm-vendor"/> </xsl:element> </xsl:element> <xsl:element name="td"> <xsl:attribute name="align"> <xsl:value-of select="'center'"/> </xsl:attribute> <xsl:element name="b"> <xsl:value-of select="$total-tests"/> </xsl:element> </xsl:element> opends/tests/functional-tests/shared/xsl/gen-text-summary.xsl
New file @@ -0,0 +1,50 @@ <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="text"/> <xsl:template match="/"> <!-- Test Report Header --> <xsl:variable name="identification" select="qa/functional-tests/identification"/> <!-- Test Case Totals --> <xsl:variable name="testcase" select="qa/functional-tests/results/testgroup/testsuite/testcase"/> <xsl:variable name="total" select="count($testcase)"/> <xsl:variable name="pass" select="count($testcase[@result='pass'])"/> <xsl:variable name="fail" select="count($testcase[@result='fail'])"/> <xsl:variable name="inconc" select="count($testcase[@result='unknown'])" /> <!-- Overall Test Percentage --> <xsl:variable name="percent"> <xsl:choose> <xsl:when test="$total > 0"> <xsl:value-of select="round((($pass div $total) * 100) - 0.5 )"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="0"/> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:value-of select="concat('result: ', normalize-space($percent),'
')"/> <xsl:value-of select="concat('pass: ', normalize-space($pass),'
')"/> <xsl:value-of select="concat('fail: ', normalize-space($fail),'
')"/> <xsl:value-of select="concat('inconc: ', normalize-space($inconc),'
')"/> <xsl:value-of select="concat('total: ', normalize-space($total),'
')"/> <xsl:value-of select="concat('sut-version: ', normalize-space($identification/version),'
')"/> <xsl:value-of select="concat('sut-buildid: ', normalize-space($identification/buildid),'
')"/> <xsl:value-of select="concat('sut-revision: ', normalize-space($identification/revision),'
')"/> <xsl:value-of select="concat('os-hostname: ', normalize-space($identification/hostname),'
')"/> <xsl:value-of select="concat('os-platform: ', normalize-space($identification/platform),'
')"/> <xsl:value-of select="concat('os-label: ', normalize-space($identification/os-label),'
')"/> <xsl:value-of select="concat('jvm-version: ', normalize-space($identification/jvm-version),'
')"/> <xsl:value-of select="concat('jvm-label: ', normalize-space($identification/jvm-label),'
')"/> <xsl:value-of select="concat('jvm-vendor: ', normalize-space($identification/jvm-vendor),'
')"/> <xsl:value-of select="concat('jvm-arch: ', normalize-space($identification/jvm-arch),'
')"/> </xsl:template> </xsl:stylesheet> opends/tests/functional-tests/shared/xsl/my-report.xsl
@@ -163,8 +163,7 @@ <th align="center">Build</th> <th align="center">Revision</th> <th align="center">Platform</th> <th align="center">JVM Version</th> <th align="center">JVM Vendor</th> <th align="center">JVM</th> <th align="center" width="5%">Total</th> <th align="center" width="5%">Pass</th> <th align="center" width="5%">Fail</th> @@ -175,9 +174,8 @@ <tr> <th align="center"><xsl:value-of select="$identification/buildid"/></th> <th align="center"><xsl:value-of select="$identification/revision"/></th> <th align="center"><xsl:value-of select="$identification/platform"/></th> <th align="center"><xsl:value-of select="$identification/jvm-version"/></th> <th align="center"><xsl:value-of select="$identification/jvm-vendor"/></th> <th align="center"><xsl:value-of select="$identification/os-label"/></th> <th align="center"><xsl:value-of select="$identification/jvm-label"/></th> <th align="center"><xsl:value-of select="$total"/></th> <th align="center"><xsl:value-of select="$pass"/></th> <th align="center"><xsl:value-of select="$fail"/></th> opends/tests/functional-tests/staf-installer/config.py.stubs
@@ -1,5 +1,4 @@ TEST_OS_STRING = '${os.name}' TEST_HW_STRING = '${os.arch}' TEST_JVM_STRING = '${java.version}(${sun.arch.data.model} bits)' STAF_LOCAL_HOSTNAME = 'localhost' STAF_REMOTE_HOSTNAME = 'localhost' opends/tests/functional-tests/testcases/runFuncTests.xml
@@ -296,6 +296,23 @@ else: ServerInfoDict='No key found (%s/%s)' % (DIRECTORY_INSTANCE_DIR,OPENDSNAME) # Platform and JVM can be overridden from config file try: if TEST_OS_STRING: ServerOsString=TEST_OS_STRING else: ServerOsString=ServerSystemOS except NameError,details: ServerOsString=ServerSystemOS try: if TEST_JVM_STRING: ServerJVMString=TEST_JVM_STRING else: ServerJVMString=ServerJVMVersion except NameError,details: ServerJVMString=ServerJVMVersion testlog=open('%s/tests-log.xml' % logsTestsDir,'a') testlog.seek(0,2) testlog.write(' </results>\n') @@ -312,9 +329,15 @@ testlog.write(' <platform>\n') testlog.write(' %s\n' % ServerSystemOS) testlog.write(' </platform>\n') testlog.write(' <os-label>\n') testlog.write(' %s\n' % ServerOsString) testlog.write(' </os-label>\n') testlog.write(' <jvm-version>\n') testlog.write(' %s\n' % ServerJVMVersion) testlog.write(' </jvm-version>\n') testlog.write(' <jvm-label>\n') testlog.write(' %s\n' % ServerJVMString) testlog.write(' </jvm-label>\n') testlog.write(' <jvm-vendor>\n') testlog.write(' %s\n' % ServerJVMVendor) testlog.write(' </jvm-vendor>\n') opends/tests/functional-tests/testcases/runTestJob.xml
@@ -46,7 +46,26 @@ </sequence> </if> <job name="'Job: %s %s' % (STAF_REMOTE_HOSTNAME,TEST_OS_STRING) " monitor="1" clearlogs="'Enabled'" logtcstartstop="'Enabled'"> <!-- Check some of the optional variables from config.py --> <script> try: if TEST_OS_STRING: ServerOsString=TEST_OS_STRING else: ServerOsString='Unknown Operating System' except NameError,details: ServerOsString='Unknown Operating System' try: if TEST_JVM_STRING: ServerJVMString=TEST_JVM_STRING else: ServerJVMString='Unknown JVM' except NameError,details: ServerJVMString='Unknown JVM' </script> <job name="'Job: %s %s' % (STAF_REMOTE_HOSTNAME,ServerOsString) " monitor="1" clearlogs="'Enabled'" logtcstartstop="'Enabled'"> <job-file>'%s/testcases/runFuncTests.xml' % TESTS_DIR</job-file> <job-scriptfiles machine="STAF_LOCAL_HOSTNAME"> STAXJobScriptFiles </job-scriptfiles> <job-action> @@ -107,6 +126,8 @@ ServerJavaVendor='unknown' ServerJVMVersion='unknown' ServerJVMVendor='unknown' ServerJVMArchitecture='unknown' ServerJVMLabel='unknown' ServerSystemOS='unknown' ServerSystemName='unknown' ServerSvnRevision='unknown' @@ -156,7 +177,13 @@ else: ServerInfoDict='No key found (%s/%s)' % (DIRECTORY_INSTANCE_DIR,OPENDSNAME) if ServerOsString == 'Unknown Operating System': ServerOsString=ServerSystemOS if ServerJVMString == 'Unknown JVM': ServerJVMString=ServerJVMVersion </script> <message>'Server= %s' % ServerInfoDict </message> @@ -358,18 +385,27 @@ 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-arch>\n') xmlfh.write(' <os-label>\n') xmlfh.write(' %s\n' % ServerOsString) xmlfh.write(' </os-label>\n') xmlfh.write(' </identification>\n') xmlfh.write(' <results>\n') </script> @@ -447,48 +483,76 @@ <message> 'XML Report Written to %s.' % xmlfile </message> <!-- Transform Report XML into HTML --> <script> class reportGeneration: 'Test Report Generation' def transformReport(self,stylesheet,xml,output): from java.io import FileInputStream from java.io import FileOutputStream from java.io import ByteArrayOutputStream from javax.xml.transform import TransformerFactory from javax.xml.transform.stream import StreamSource from javax.xml.transform.stream import StreamResult self.xslSource = StreamSource(FileInputStream("%s" % stylesheet)) self.xslTemplate = TransformerFactory.newInstance().newTemplates(self.xslSource) self.transformer = self.xslTemplate.newTransformer() self.source = StreamSource(FileInputStream("%s" % xml)) self.result = StreamResult(FileOutputStream("%s" % output)) self.transformer.transform(self.source, self.result) </script> <!-- Generate the standard test report showing all testcases --> <script> _message='Generated standard test report.' xslfile= '%s/xsl/gen-alltests-report.xsl' % TESTS_SHARED_DIR htmlfile= '%s/results.html' % logsReportDir standardReport=reportGeneration() try: standardReport.transformReport(xslfile,xmlfile,htmlfile) except IOError,details: _message='Unable to generate standard test report %s.' % details </script> <message> 'Writing HTML (with stylesheet %s) Report to %s.' % (xslfile,htmlfile) </message> <script> _message='' <message>_message</message> <!-- Generate the drill down test report --> <script> _message='Generated the drill down test report.' myreportxsl='%s/xsl/my-report.xsl' % TESTS_SHARED_DIR myreporthtml='%s/my-report.html' % logsReportDir mytestslog='%s/tests-log.xml' % logsTestsDir drillDownReport=reportGeneration() try: from java.io import FileInputStream from java.io import FileOutputStream from java.io import ByteArrayOutputStream from javax.xml.transform import TransformerFactory from javax.xml.transform.stream import StreamSource from javax.xml.transform.stream import StreamResult xslSource = StreamSource(FileInputStream("%s" % xslfile)) xslTemplate = TransformerFactory.newInstance().newTemplates(xslSource) transformer = xslTemplate.newTransformer() source = StreamSource(FileInputStream("%s" % xmlfile)) result = StreamResult(FileOutputStream("%s" % htmlfile)) # the original report transformer.transform(source, result) #the new report transformation TransformerFactory.newInstance().newTemplates(StreamSource(FileInputStream(myreportxsl))).newTransformer().transform(StreamSource(FileInputStream(mytestslog)), StreamResult(FileOutputStream(myreporthtml))) _message='Generated drill-down HTML report' except: _message='Could not generate drill-down HTML report' drillDownReport.transformReport(myreportxsl,mytestslog,myreporthtml) except IOError,details: _message='Unable to generate drill down test report %s.' % details </script> <message>_message</message> <!-- Generate the summary text file --> <script> _message='Generated the summary text report' mysummaryxsl='%s/xsl/gen-text-summary.xsl' % TESTS_SHARED_DIR mysummarytext='%s/summary.txt' % logsReportDir mysummaryxml=xmlfile summaryReport=reportGeneration() try: summaryReport.transformReport(mysummaryxsl,mysummaryxml,mysummarytext) except IOError,details: _message='Unable to generate summary text file %s.' % details </script> <message>_message</message> <!-- FixMe: Compatability with Hudson --> <if expr="os.path.exists(myreporthtml)"> <sequence> @@ -504,7 +568,7 @@ <!-- FixMe: Compatability with Hudson --> <if expr="os.path.exists(mytestslog)"> <sequence> <message>'Copy %s to %s' % (myreporthtml,TMPDIR)</message> <message>'Copy %s to %s' % (mytestslog,TMPDIR)</message> <call function="'copyFile'"> { 'srcfile' : mytestslog, 'destfile' : '%s/tests-log.xml' % TMPDIR