3032N/A<?xml version="1.0" encoding="ISO-8859-1"?>
3032N/A<xsl:stylesheet version="1.0"
3032N/Axmlns:xsl="http://www.w3.org/1999/XSL/Transform">
3112N/A<!--
3112N/A ! CDDL HEADER START
3112N/A !
3112N/A ! The contents of this file are subject to the terms of the
3112N/A ! Common Development and Distribution License, Version 1.0 only
3112N/A ! (the "License"). You may not use this file except in compliance
3112N/A ! with the License.
3112N/A !
3112N/A ! You can obtain a copy of the license at
3112N/A ! trunk/opends/resource/legal-notices/OpenDS.LICENSE
3112N/A ! or https://OpenDS.dev.java.net/OpenDS.LICENSE.
3112N/A ! See the License for the specific language governing permissions
3112N/A ! and limitations under the License.
3112N/A !
3112N/A ! When distributing Covered Code, include this CDDL HEADER in each
3112N/A ! file and include the License file at
3112N/A ! trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
3112N/A ! add the following below this CDDL HEADER, with the fields enclosed
3112N/A ! by brackets "[]" replaced with your own identifying information:
3112N/A ! Portions Copyright [yyyy] [name of copyright owner]
3112N/A !
3112N/A ! CDDL HEADER END
3112N/A !
4458N/A ! Copyright 2008-2009 Sun Microsystems, Inc.
5334N/A ! Portions Copyright 2011 ForgeRock AS
3112N/A ! -->
3032N/A
3032N/A<xsl:output method="html" version="4.0" encoding="iso-8859-1" indent="yes"/>
3032N/A
3032N/A<xsl:param name="group">''</xsl:param>
3292N/A
3032N/A<xsl:variable name="groupdir" select="translate($group, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz')"/>
3032N/A
3032N/A<xsl:template match="/">
4259N/A <xsl:apply-templates select="qa"/>
4259N/A</xsl:template>
4259N/A
4259N/A<xsl:template match="qa">
4259N/A <xsl:apply-templates select="stress-tests"/>
4259N/A <xsl:apply-templates select="functional-tests"/>
4259N/A</xsl:template>
4259N/A
4259N/A<xsl:template match="stress-tests">
4259N/A <xsl:call-template name="main">
4259N/A <xsl:with-param name="tests-type" select="normalize-space('Stress Tests')"/>
4259N/A </xsl:call-template>
4259N/A</xsl:template>
4259N/A
4259N/A<xsl:template match="functional-tests">
4259N/A <xsl:call-template name="main">
4259N/A <xsl:with-param name="tests-type" select="normalize-space('Functional Tests')"/>
4259N/A </xsl:call-template>
4259N/A</xsl:template>
4259N/A
4259N/A<xsl:template name="main">
4259N/A <xsl:param name="tests-type"/>
4259N/A
3862N/A <!--- Test Suites Report Header Variables -->
4259N/A <xsl:variable name="id" select="identification"/>
3826N/A <xsl:variable name="sut" select="$id/sut"/>
3826N/A <xsl:variable name="mailto" select="normalize-space($id/mailto)"/>
3826N/A <xsl:variable name="tests-dir" select="normalize-space($id/tests-dir)"/>
3834N/A <xsl:variable name="url" select="normalize-space($id/tests-url)"/>
5105N/A <xsl:variable name="coverage-url" select="normalize-space($id/coverage-url)"/>
4723N/A <xsl:variable name="productname" select="normalize-space($sut/name)"/>
3826N/A <xsl:variable name="hostname" select="normalize-space($sut/hostname)"/>
3826N/A <xsl:variable name="version" select="normalize-space($sut/version)"/>
3826N/A <xsl:variable name="buildid" select="normalize-space($sut/buildid)"/>
3826N/A <xsl:variable name="revision" select="normalize-space($sut/revision)"/>
3826N/A <xsl:variable name="os" select="normalize-space($sut/os-label)"/>
3826N/A <xsl:variable name="jvm" select="normalize-space($sut/jvm-label)"/>
4259N/A <xsl:variable name="testgroup" select="results/testgroup[translate(@name, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz') = $groupdir]"/>
3032N/A <xsl:variable name="testsuite" select="$testgroup/testsuite"/>
3032N/A <xsl:variable name="testcase" select="$testsuite/testcase"/>
3032N/A <xsl:variable name="total-tests" select="count($testcase)"/>
3032N/A <xsl:variable name="pass-tests" select="count($testcase[@result='pass'])"/>
3032N/A <xsl:variable name="fail-tests" select="count($testcase[@result='fail'])"/>
3032N/A <xsl:variable name="inconc-tests" select="count($testcase[@result='unknown'])"/>
3951N/A <xsl:variable name="kfail-tests" select="count($testcase/issues)"/>
3032N/A
3032N/A <xsl:element name="html">
3032N/A
3032N/A <xsl:element name="head">
3032N/A
3032N/A <style type="text/css">
3032N/A/* <![CDATA[ */
3032N/A @import "/branding/css/tigris.css";
3032N/A @import "/branding/css/inst.css";
3032N/A /* ]]> */
3032N/A </style>
3032N/A <link rel="stylesheet" type="text/css" href="/branding/css/print.css" media="print" />
4458N/A <link rel="stylesheet" href="/reports/opends.css" type="text/css" />
3032N/A
3032N/A <xsl:element name="title">
5334N/A <xsl:value-of select="concat('Test Suites Report for ',$version)"/>
3032N/A </xsl:element>
3032N/A
3032N/A </xsl:element>
4259N/A
4259N/A <table class="tertmasttable" width="100%" cellspacing="0">
4259N/A <tbody>
4259N/A <tr>
4259N/A <td align="center"><div class="collectionheader"><xsl:value-of select="$tests-type"/></div></td>
4259N/A </tr>
4259N/A </tbody>
4259N/A </table>
3032N/A
3032N/A <table class="tertmasttable" width="100%" cellspacing="0">
3032N/A <tbody>
3032N/A <tr>
5334N/A <td><div class="collectionheader"><xsl:value-of select="concat('Test Suites Report for ',$version)"/></div></td>
5334N/A <td width="10%"><a href="https://www.forgerock.com/"><img src="/reports/opendj_logo.png" alt="OpenDJ Logo" width="104" height="33" border="0" align="middle" /></a> </td>
3032N/A </tr>
3032N/A </tbody>
3032N/A </table>
3032N/A
3032N/A <!-- Overall Test Percentage -->
3032N/A <xsl:variable name="percent-tests">
3032N/A <xsl:choose>
3032N/A <xsl:when test="$total-tests &gt; 0">
3032N/A <xsl:value-of select="round((($pass-tests div $total-tests) * 100) - 0.5)"/>
3032N/A </xsl:when>
3032N/A <xsl:otherwise>
3032N/A <xsl:value-of select="0"/>
3032N/A </xsl:otherwise>
3032N/A </xsl:choose>
3032N/A </xsl:variable>
3032N/A
3032N/A <!-- Shaded Line -->
3032N/A <xsl:element name="hr">
3032N/A <xsl:attribute name="noshade">
3032N/A <xsl:value-of select="'noshade'"/>
3032N/A </xsl:attribute>
3032N/A <xsl:attribute name="size">
3032N/A <xsl:value-of select="1"/>
3032N/A </xsl:attribute>
3032N/A </xsl:element>
3032N/A
3032N/A <!-- Percentage Result -->
3032N/A <xsl:element name="table">
3032N/A <xsl:attribute name="width">
3032N/A <xsl:value-of select="'100%'"/>
3032N/A </xsl:attribute>
3032N/A <xsl:call-template name="setColour">
3032N/A <xsl:with-param name="percent" select="$percent-tests"/>
3270N/A <xsl:with-param name="red" select="'70'"/>
3270N/A <xsl:with-param name="yellow" select="'95'"/>
3032N/A </xsl:call-template>
3032N/A <xsl:element name="tr">
3032N/A <xsl:element name="td">
3032N/A <xsl:attribute name="align">
3032N/A <xsl:value-of select="'center'"/>
3032N/A </xsl:attribute>
3032N/A <xsl:element name="font">
3032N/A <xsl:attribute name="size">
3032N/A <xsl:value-of select="'+2'"/>
3032N/A </xsl:attribute>
3032N/A <xsl:value-of select="concat($percent-tests,'%')"/>
3032N/A </xsl:element>
3032N/A </xsl:element>
3032N/A </xsl:element>
3032N/A </xsl:element>
3032N/A
3032N/A <!-- Shaded Line -->
3032N/A <xsl:element name="hr">
3032N/A <xsl:attribute name="noshade">
3032N/A <xsl:value-of select="'noshade'"/>
3032N/A </xsl:attribute>
3032N/A <xsl:attribute name="size">
3032N/A <xsl:value-of select="1"/>
3032N/A </xsl:attribute>
3032N/A </xsl:element>
3032N/A
3032N/A <!-- Identification -->
3032N/A <xsl:element name="table">
3032N/A <xsl:attribute name="width">
3032N/A <xsl:value-of select="'100%'"/>
3032N/A </xsl:attribute>
3032N/A <xsl:element name="tr">
3032N/A <xsl:element name="td">
3032N/A <xsl:attribute name="align">
3032N/A <xsl:value-of select="'center'"/>
3032N/A </xsl:attribute>
3032N/A <xsl:element name="b">
3032N/A <xsl:value-of select="'Build'"/>
3032N/A </xsl:element>
3032N/A </xsl:element>
3032N/A <xsl:element name="td">
3032N/A <xsl:attribute name="align">
3032N/A <xsl:value-of select="'center'"/>
3032N/A </xsl:attribute>
3032N/A <xsl:element name="b">
3032N/A <xsl:value-of select="'Revision'"/>
3032N/A </xsl:element>
3032N/A </xsl:element>
3032N/A <xsl:element name="td">
3032N/A <xsl:attribute name="align">
3032N/A <xsl:value-of select="'center'"/>
3032N/A </xsl:attribute>
3032N/A <xsl:element name="b">
3032N/A <xsl:value-of select="'Host'"/>
3032N/A </xsl:element>
3032N/A </xsl:element>
3032N/A <xsl:element name="td">
3032N/A <xsl:attribute name="align">
3032N/A <xsl:value-of select="'center'"/>
3032N/A </xsl:attribute>
3032N/A <xsl:element name="b">
3032N/A <xsl:value-of select="'Platform'"/>
3032N/A </xsl:element>
3032N/A </xsl:element>
3032N/A <xsl:element name="td">
3032N/A <xsl:attribute name="align">
3032N/A <xsl:value-of select="'center'"/>
3032N/A </xsl:attribute>
3032N/A <xsl:element name="b">
3032N/A <xsl:value-of select="'JVM'"/>
3032N/A </xsl:element>
3032N/A </xsl:element>
3032N/A <xsl:element name="td">
3032N/A <xsl:attribute name="align">
3032N/A <xsl:value-of select="'center'"/>
3032N/A </xsl:attribute>
3032N/A <xsl:element name="b">
3032N/A <xsl:value-of select="'Total'"/>
3032N/A </xsl:element>
3032N/A </xsl:element>
3032N/A <xsl:element name="td">
3032N/A <xsl:attribute name="align">
3032N/A <xsl:value-of select="'center'"/>
3032N/A </xsl:attribute>
3032N/A <xsl:element name="b">
3032N/A <xsl:value-of select="'Pass'"/>
3032N/A </xsl:element>
3032N/A </xsl:element>
3032N/A <xsl:element name="td">
3032N/A <xsl:attribute name="align">
3032N/A <xsl:value-of select="'center'"/>
3032N/A </xsl:attribute>
3032N/A <xsl:element name="b">
3032N/A <xsl:value-of select="'Fail'"/>
3032N/A </xsl:element>
3032N/A </xsl:element>
3292N/A <xsl:element name="td">
3032N/A <xsl:attribute name="align">
3032N/A <xsl:value-of select="'center'"/>
3032N/A </xsl:attribute>
3032N/A <xsl:element name="b">
3292N/A <xsl:value-of select="'Inconc'"/>
3292N/A </xsl:element>
3292N/A </xsl:element>
3292N/A <xsl:element name="td">
3292N/A <xsl:attribute name="align">
3292N/A <xsl:value-of select="'center'"/>
3292N/A </xsl:attribute>
3292N/A <xsl:element name="b">
3292N/A <xsl:value-of select="'Kfail'"/>
3032N/A </xsl:element>
3032N/A </xsl:element>
3032N/A </xsl:element>
3032N/A <xsl:element name="tr">
3032N/A <xsl:element name="td">
3032N/A <xsl:attribute name="align">
3032N/A <xsl:value-of select="'center'"/>
3032N/A </xsl:attribute>
3032N/A <xsl:element name="b">
3032N/A <xsl:value-of select="$buildid"/>
3032N/A </xsl:element>
3032N/A </xsl:element>
3032N/A <xsl:element name="td">
3032N/A <xsl:attribute name="align">
3032N/A <xsl:value-of select="'center'"/>
3032N/A </xsl:attribute>
3032N/A <xsl:element name="b">
3032N/A <xsl:value-of select="$revision"/>
3032N/A </xsl:element>
3032N/A </xsl:element>
3032N/A <xsl:element name="td">
3032N/A <xsl:attribute name="align">
3032N/A <xsl:value-of select="'center'"/>
3032N/A </xsl:attribute>
3032N/A <xsl:element name="b">
3032N/A <xsl:value-of select="$hostname"/>
3032N/A </xsl:element>
3032N/A </xsl:element>
3032N/A <xsl:element name="td">
3032N/A <xsl:attribute name="align">
3032N/A <xsl:value-of select="'center'"/>
3032N/A </xsl:attribute>
3032N/A <xsl:element name="b">
3032N/A <xsl:value-of select="$os"/>
3032N/A </xsl:element>
3032N/A </xsl:element>
3032N/A <xsl:element name="td">
3032N/A <xsl:attribute name="align">
3032N/A <xsl:value-of select="'center'"/>
3032N/A </xsl:attribute>
3032N/A <xsl:element name="b">
3032N/A <xsl:value-of select="$jvm"/>
3032N/A </xsl:element>
3032N/A </xsl:element>
3032N/A <xsl:element name="td">
3032N/A <xsl:attribute name="align">
3032N/A <xsl:value-of select="'center'"/>
3032N/A </xsl:attribute>
3032N/A <xsl:element name="b">
3032N/A <xsl:value-of select="$total-tests"/>
3032N/A </xsl:element>
3032N/A </xsl:element>
3032N/A <xsl:element name="td">
3032N/A <xsl:attribute name="align">
3032N/A <xsl:value-of select="'center'"/>
3032N/A </xsl:attribute>
3032N/A <xsl:element name="b">
3032N/A <xsl:value-of select="$pass-tests"/>
3032N/A </xsl:element>
3032N/A </xsl:element>
3032N/A <xsl:element name="td">
3032N/A <xsl:attribute name="align">
3032N/A <xsl:value-of select="'center'"/>
3032N/A </xsl:attribute>
3032N/A <xsl:element name="b">
3032N/A <xsl:value-of select="$fail-tests"/>
3032N/A </xsl:element>
3032N/A </xsl:element>
3292N/A <xsl:element name="td">
3032N/A <xsl:attribute name="align">
3032N/A <xsl:value-of select="'center'"/>
3032N/A </xsl:attribute>
3032N/A <xsl:element name="b">
3032N/A <xsl:value-of select="$inconc-tests"/>
3032N/A </xsl:element>
3032N/A </xsl:element>
3292N/A <xsl:element name="td">
3292N/A <xsl:attribute name="align">
3292N/A <xsl:value-of select="'center'"/>
3292N/A </xsl:attribute>
3292N/A <xsl:element name="b">
3292N/A <xsl:value-of select="$kfail-tests"/>
3292N/A </xsl:element>
3292N/A </xsl:element>
3032N/A </xsl:element>
3032N/A </xsl:element>
3032N/A
3032N/A <!-- Shaded Line -->
3032N/A <xsl:element name="hr">
3032N/A <xsl:attribute name="noshade">
3032N/A <xsl:value-of select="'noshade'"/>
3032N/A </xsl:attribute>
3032N/A <xsl:attribute name="size">
3032N/A <xsl:value-of select="1"/>
3032N/A </xsl:attribute>
3032N/A </xsl:element>
3032N/A
3032N/A <xsl:element name="body">
3032N/A
3032N/A <!-- Test Results Table -->
3032N/A <xsl:element name="table">
3032N/A <xsl:attribute name="width">
3032N/A <xsl:value-of select="'100%'"/>
3032N/A </xsl:attribute>
3032N/A <xsl:attribute name="border">
3032N/A <xsl:value-of select="1"/>
3032N/A </xsl:attribute>
3032N/A <xsl:attribute name="cellpadding">
3032N/A <xsl:value-of select="2"/>
3032N/A </xsl:attribute>
3032N/A
3032N/A <xsl:element name="tr">
3032N/A <xsl:attribute name="bgcolor">
3032N/A <xsl:value-of select="'lightblue'"/>
3032N/A </xsl:attribute>
3032N/A
3032N/A <xsl:element name="th">
3032N/A <xsl:value-of select="'Test Suite'"/>
3032N/A </xsl:element>
3032N/A <xsl:element name="th">
3032N/A <xsl:value-of select="'Start Time'"/>
3032N/A </xsl:element>
3032N/A <xsl:element name="th">
3032N/A <xsl:value-of select="'End Time'"/>
3032N/A </xsl:element>
3032N/A <xsl:element name="th">
3032N/A <xsl:value-of select="'Duration'"/>
3032N/A </xsl:element>
3032N/A <xsl:element name="th">
3032N/A <xsl:value-of select="'Total'"/>
3032N/A </xsl:element>
3032N/A <xsl:element name="th">
3032N/A <xsl:value-of select="'Pass'"/>
3032N/A </xsl:element>
3032N/A <xsl:element name="th">
3032N/A <xsl:value-of select="'Fail'"/>
3032N/A </xsl:element>
3032N/A <xsl:element name="th">
3032N/A <xsl:value-of select="'Inconc'"/>
3032N/A </xsl:element>
3032N/A <xsl:element name="th">
3292N/A <xsl:value-of select="'Kfail'"/>
3292N/A </xsl:element>
3292N/A <xsl:element name="th">
3032N/A <xsl:value-of select="'Percent'"/>
3032N/A </xsl:element>
3032N/A
3032N/A </xsl:element>
3032N/A
3032N/A <xsl:for-each select="$testsuite">
3032N/A <xsl:sort select="suite" order="ascending"/>
3032N/A <xsl:variable name="suite" select="@name"/>
3032N/A <xsl:if test="generate-id(.)=generate-id($testsuite[@name = $suite])">
3032N/A
3032N/A <xsl:variable name="all-tests" select="$testcase[@suite = $suite]"/>
3032N/A <xsl:variable name="test-num" select="count($all-tests)"/>
3032N/A <xsl:variable name="test-pass" select="count($all-tests[@result = 'pass'])"/>
3032N/A <xsl:variable name="test-fail" select="count($all-tests[@result = 'fail'])"/>
3032N/A <xsl:variable name="test-inc" select="count($all-tests[@result = 'unknown'])"/>
3951N/A <xsl:variable name="test-kfail" select="count($all-tests[@suite=$suite]/issues)"/>
3032N/A <xsl:variable name="test-percent" select="round((($test-pass div $test-num) * 100) - 0.5)"/>
3032N/A <xsl:variable name="suitename" select="translate(@name, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz')"/>
3862N/A
3032N/A <xsl:variable name="end-time">
3032N/A <xsl:for-each select="$all-tests/@stop">
3032N/A
3032N/A <xsl:if test="position() = last()">
3032N/A <xsl:value-of select="."/>
3032N/A </xsl:if>
3032N/A
3032N/A </xsl:for-each>
3032N/A </xsl:variable>
3032N/A
3032N/A <xsl:variable name="duration">
3032N/A <xsl:call-template name="countDuration">
3032N/A <xsl:with-param name="testList" select="$all-tests"/>
3032N/A </xsl:call-template>
3032N/A </xsl:variable>
3862N/A
3032N/A <xsl:element name="tr">
3292N/A <xsl:attribute name="bgcolor">
3292N/A <xsl:choose>
3292N/A <xsl:when test="$test-percent = '100'">
3292N/A <xsl:value-of select="'lightgreen'" />
3292N/A </xsl:when>
3292N/A <xsl:when test="$test-fail = $test-kfail">
3292N/A <xsl:value-of select="'yellow'" />
3292N/A </xsl:when>
3292N/A <xsl:otherwise>
3292N/A <xsl:value-of select="'red'" />
3292N/A </xsl:otherwise>
3292N/A </xsl:choose>
3292N/A </xsl:attribute>
3032N/A
3032N/A <!-- Group Name -->
3032N/A <xsl:element name="td">
3032N/A <xsl:attribute name="align">
3032N/A <xsl:value-of select="'left'"/>
3032N/A </xsl:attribute>
3032N/A <xsl:element name="a">
3032N/A <xsl:attribute name="href">
3862N/A <xsl:value-of select="concat($url,$tests-dir,'/testlogs/',$groupdir,'/',@shortname,'-report.html')"/>
3032N/A </xsl:attribute>
3032N/A <xsl:value-of select="@name"/>
3032N/A </xsl:element>
3032N/A </xsl:element>
3032N/A
3032N/A <!-- Start Time -->
3032N/A <xsl:element name="td">
3032N/A <xsl:attribute name="align">
3032N/A <xsl:value-of select="'center'"/>
3032N/A </xsl:attribute>
3032N/A <xsl:value-of select="testcase/@start[1]"/>
3032N/A </xsl:element>
3032N/A
3032N/A <!-- End Time -->
3032N/A <xsl:element name="td">
3032N/A <xsl:attribute name="align">
3032N/A <xsl:value-of select="'center'"/>
3032N/A </xsl:attribute>
3032N/A <xsl:value-of select="$end-time"/>
3032N/A </xsl:element>
3032N/A
3032N/A <!-- Duration -->
3032N/A <xsl:element name="td">
3032N/A <xsl:attribute name="align">
3032N/A <xsl:value-of select="'center'"/>
3032N/A </xsl:attribute>
3032N/A <xsl:value-of select="concat($duration,'s')"/>
3032N/A </xsl:element>
3032N/A
3032N/A <!-- Total-->
3032N/A <xsl:element name="td">
3032N/A <xsl:attribute name="align">
3032N/A <xsl:value-of select="'center'"/>
3032N/A </xsl:attribute>
3032N/A <xsl:value-of select="$test-num"/>
3032N/A </xsl:element>
3032N/A
3032N/A <!-- Pass -->
3032N/A <xsl:element name="td">
3032N/A <xsl:attribute name="align">
3032N/A <xsl:value-of select="'center'"/>
3032N/A </xsl:attribute>
3032N/A <xsl:value-of select="$test-pass"/>
3032N/A </xsl:element>
3032N/A
3032N/A <!-- Fail -->
3032N/A <xsl:element name="td">
3032N/A <xsl:attribute name="align">
3032N/A <xsl:value-of select="'center'"/>
3032N/A </xsl:attribute>
3032N/A <xsl:value-of select="$test-fail"/>
3032N/A </xsl:element>
3032N/A
3032N/A <!-- Inconclusive -->
3032N/A <xsl:element name="td">
3032N/A <xsl:attribute name="align">
3032N/A <xsl:value-of select="'center'"/>
3032N/A </xsl:attribute>
3032N/A <xsl:value-of select="$test-inc"/>
3032N/A </xsl:element>
3292N/A
3292N/A <!-- Kfail -->
3292N/A <xsl:element name="td">
3292N/A <xsl:attribute name="align">
3292N/A <xsl:value-of select="'center'"/>
3292N/A </xsl:attribute>
3292N/A <xsl:value-of select="$test-kfail"/>
3292N/A </xsl:element>
3032N/A
3032N/A <!-- Percent -->
3032N/A <xsl:element name="td">
3032N/A <xsl:attribute name="align">
3032N/A <xsl:value-of select="'center'"/>
3032N/A </xsl:attribute>
3032N/A <xsl:value-of select="concat($test-percent,'%')"/>
3032N/A </xsl:element>
3032N/A
3032N/A </xsl:element>
3032N/A
3032N/A </xsl:if>
3032N/A
3032N/A </xsl:for-each>
3032N/A
3032N/A </xsl:element>
3032N/A
3032N/A <!-- Shaded Line -->
3032N/A <xsl:element name="hr">
3032N/A <xsl:attribute name="noshade">
3032N/A <xsl:value-of select="'noshade'"/>
3032N/A </xsl:attribute>
3032N/A <xsl:attribute name="size">
3032N/A <xsl:value-of select="1"/>
3032N/A </xsl:attribute>
3032N/A </xsl:element>
3032N/A
3032N/A <!-- Additional Information -->
3032N/A <xsl:element name="h2">
3032N/A <xsl:value-of select="'Additional Information'"/>
3032N/A </xsl:element>
3032N/A
3032N/A <xsl:element name="table">
3032N/A <xsl:element name="tr">
3032N/A <xsl:element name="td">
3032N/A <xsl:element name="b">
3032N/A <xsl:value-of select="'Test Archive: '"/>
3032N/A </xsl:element>
3032N/A </xsl:element>
3032N/A <xsl:element name="td">
3270N/A <xsl:element name="a">
3270N/A <xsl:attribute name="href">
3270N/A <xsl:value-of select="concat($url,$tests-dir)"/>
3270N/A </xsl:attribute>
3826N/A <xsl:value-of select="concat($url,$tests-dir)"/>
3826N/A </xsl:element>
3826N/A </xsl:element>
3826N/A </xsl:element>
3826N/A <xsl:element name="tr">
3826N/A <xsl:element name="td">
3826N/A <xsl:element name="b">
3826N/A <xsl:value-of select="'Product Identification: '"/>
3826N/A </xsl:element>
3826N/A </xsl:element>
3826N/A <xsl:element name="td">
3826N/A <xsl:element name="a">
3826N/A <xsl:attribute name="href">
3826N/A <xsl:value-of select="concat($url,$tests-dir,'/reports/id.html')"/>
3826N/A </xsl:attribute>
3826N/A <xsl:value-of select="concat($url,$tests-dir,'/reports/id.html')"/>
3826N/A </xsl:element>
3826N/A </xsl:element>
3826N/A </xsl:element>
3826N/A <xsl:element name="tr">
3826N/A <xsl:element name="td">
3826N/A <xsl:element name="b">
5105N/A <xsl:value-of select="'Coverage: '"/>
5105N/A </xsl:element>
5105N/A </xsl:element>
5105N/A <xsl:element name="td">
5105N/A <xsl:element name="a">
5105N/A <xsl:attribute name="href">
5105N/A <xsl:value-of select="$coverage-url"/>
5105N/A </xsl:attribute>
5105N/A <xsl:value-of select="$coverage-url"/>
5105N/A </xsl:element>
5105N/A </xsl:element>
5105N/A </xsl:element>
5105N/A <xsl:element name="tr">
5105N/A <xsl:element name="td">
5105N/A <xsl:element name="b">
3826N/A <xsl:value-of select="'Mail Sent to: '"/>
3826N/A </xsl:element>
3826N/A </xsl:element>
3826N/A <xsl:element name="td">
3826N/A <xsl:element name="a">
3826N/A <xsl:attribute name="href">
3826N/A <xsl:value-of select="concat('mailto:',normalize-space($mailto))"/>
3826N/A </xsl:attribute>
3826N/A <xsl:value-of select="normalize-space($mailto)"/>
3032N/A </xsl:element>
3032N/A </xsl:element>
3032N/A </xsl:element>
3032N/A </xsl:element>
3032N/A
3032N/A <!-- Shaded Line -->
3032N/A <xsl:element name="hr">
3032N/A <xsl:attribute name="noshade">
3032N/A <xsl:value-of select="'noshade'"/>
3032N/A </xsl:attribute>
3032N/A <xsl:attribute name="size">
3032N/A <xsl:value-of select="1"/>
3032N/A </xsl:attribute>
3032N/A </xsl:element>
3032N/A
3032N/A </xsl:element>
3032N/A
3032N/A </xsl:element>
3032N/A
3032N/A</xsl:template>
3032N/A
3032N/A<xsl:template name="countDuration">
3032N/A <xsl:param name="testList"/>
3032N/A <xsl:choose>
3032N/A <xsl:when test="$testList">
3032N/A <xsl:variable name="recursive_result">
3032N/A <xsl:call-template name="countDuration">
3032N/A <xsl:with-param name="testList"
3032N/A select="$testList[position() > 1]"/>
3032N/A </xsl:call-template>
3032N/A </xsl:variable>
3032N/A <xsl:value-of
3032N/A select="number($testList[1]/@duration) + $recursive_result"/>
3032N/A </xsl:when>
3032N/A <xsl:otherwise><xsl:value-of select="0"/></xsl:otherwise>
3032N/A </xsl:choose>
3032N/A</xsl:template>
3032N/A
3032N/A<xsl:template name="setColour">
3032N/A <xsl:param name="percent"/>
3270N/A <xsl:param name="red"/>
3270N/A <xsl:param name="yellow"/>
3032N/A <xsl:attribute name="bgcolor">
3032N/A <xsl:choose>
3270N/A <xsl:when test="$percent &lt; $red">
3032N/A <xsl:value-of select="'red'" />
3032N/A </xsl:when>
3270N/A <xsl:when test="$percent &lt; $yellow">
3032N/A <xsl:value-of select="'yellow'" />
3032N/A </xsl:when>
3032N/A <xsl:otherwise>
3032N/A <xsl:value-of select="'lightgreen'" />
3032N/A </xsl:otherwise>
3032N/A </xsl:choose>
3032N/A </xsl:attribute>
3032N/A</xsl:template>
3032N/A
3032N/A</xsl:stylesheet>