It works as follows
1. ctest runs
2. create an index of all generated xml files
{{{
<Files>
<file>Update.xml</file>
<file>Configure.xml</file>
<file>Test.xml</file>
...
</Files>
}}}
3. run an xsl processor on this index with an xsl file sucking in all listed
result files
{{{
<xsl:template match="/">
<testsuites>
<xsl:for-each select="/Files">
<xsl:for-each select="document(File/text())">
<xsl:apply-templates select="Site"/>
</xsl:for-each>
</xsl:for-each>
</testsuites>
</xsl:template>
}}}
- The "create an index of all generated xml files" step in detail:
If ctest performs it's duties a bunch of XML files is stored in
${CTEST_BINARY_DIRECTORY}/Testing/${SOME_DATE}/
The value of SOME_DATE is stored in
${CTEST_BINARY_DIRECTORY}/Testing/TAG
SOME_DATE can be extracted via
{{{
file(STRINGS "${CTEST_BINARY_DIRECTORY}/Testing/TAG" _tag_content)
list(GET _tag_content 0 SOME_DATE)
}}}
Now
{{{
file(GLOB
_result_files "${CTEST_BINARY_DIRECTORY}/Testing/${SOME_DATE}/*.xml")
}}}
gives the list of the xml files created by ctest during it's last run.
index.xml is created via file(WRITE and foreach.
For a working example see the attached tarball.
Best,
-- Maik
ctest_xml_transform.tar.gz
Description: application/tgz
_______________________________________________ CMake mailing list [email protected] http://www.cmake.org/mailman/listinfo/cmake
