blob: aebb6a0886eacbd478bfc4c45fc6e8eeaa1652bb [file] [log] [blame]
<?xml version="1.0"?>
<!--
Copyright (C) 2020 Free Software Foundation, Inc.
This file is part of DejaGnu.
DejaGnu is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This file was written by Jacob Bachmeyer.
This is an XSLT stylesheet that translates the new XML format to the
legacy XML format in case anyone has an existing pipeline that depends
on the old format being available. Efforts have been made to recreate
the original text layout, on the assumption that some readers might not
be using actual XML parsers.
Current limitations:
- The output has no !DOCTYPE and thus no embedded DTD.
- There are numerous spurious blank lines in the output, but only in
locations where they should be insignificant. All of the tags
declared as containing #PCDATA in the legacy DTD are exact.
The blank lines contain varying amounts of whitespace.
These appear to be limitations of XSLT.
-->
<xsl:stylesheet
xmlns:dg="http://www.gnu.org/software/dejagnu/xmlns/runtest-log-1"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="xml"/>
<xsl:namespace-alias stylesheet-prefix="dg" result-prefix="#default"/>
<xsl:template match="dg:platform"></xsl:template>
<xsl:template match="dg:run">
<testsuite>
<xsl:apply-templates/>
</testsuite>
</xsl:template>
<xsl:template match="dg:test">
<test><xsl:text>
</xsl:text><input><xsl:value-of select="./dg:input"/></input><xsl:text>
</xsl:text><output><xsl:value-of select="./dg:output"/></output><xsl:text>
</xsl:text><result><xsl:value-of select="@dg:result"/></result><xsl:text>
</xsl:text><name><xsl:value-of select="./dg:name"/></name><xsl:text>
</xsl:text><prms_id><xsl:choose>
<xsl:when test="string-length(@dg:prms_id) > 0">
<xsl:value-of select="@dg:prms_id"/>
</xsl:when>
<xsl:otherwise><xsl:text>0</xsl:text></xsl:otherwise>
</xsl:choose></prms_id><xsl:text>
</xsl:text></test>
</xsl:template>
<xsl:template match="dg:total">
<xsl:text>
</xsl:text><summary><xsl:text>
</xsl:text><result><xsl:value-of select="@dg:result"/></result><xsl:text>
</xsl:text><description><xsl:choose>
<xsl:when test="@dg:result = 'PASS'">
<xsl:text># of expected passes</xsl:text></xsl:when>
<xsl:when test="@dg:result = 'FAIL'">
<xsl:text># of unexpected failures</xsl:text></xsl:when>
<xsl:when test="@dg:result = 'XFAIL'">
<xsl:text># of expected failures</xsl:text></xsl:when>
<xsl:when test="@dg:result = 'XPASS'">
<xsl:text># of unexpected successes</xsl:text></xsl:when>
<xsl:when test="@dg:result = 'KFAIL'">
<xsl:text># of known failures</xsl:text></xsl:when>
<xsl:when test="@dg:result = 'KPASS'">
<xsl:text># of unknown successes</xsl:text></xsl:when>
<xsl:when test="@dg:result = 'UNRESOLVED'">
<xsl:text># of unresolved testcases</xsl:text></xsl:when>
<xsl:when test="@dg:result = 'UNSUPPORTED'">
<xsl:text># of unsupported tests</xsl:text></xsl:when>
<xsl:when test="@dg:result = 'UNTESTED'">
<xsl:text># of untested testcases</xsl:text></xsl:when>
</xsl:choose></description><xsl:text>
</xsl:text><total><xsl:value-of select="@dg:count"/></total><xsl:text>
</xsl:text></summary>
</xsl:template>
</xsl:stylesheet>