blob: aaba5c99ddcb2a786b3c9742be2172feb873b6d0 [file] [log] [blame]
<HTML><HEAD><SCRIPT language="JavaScript" src="resources/script.js" type="text/javascript"></SCRIPT><TITLE>Overview</TITLE></HEAD><BODY alink="#ff0000" bgcolor="#ffffff" leftmargin="4" link="#0000ff" marginheight="4" marginwidth="4" text="#000000" topmargin="4" vlink="#0000aa"><TABLE border="0" cellpadding="0" cellspacing="0" width="620"><TR><TD align="left" height="60" rowspan="3" valign="top" width="135"><IMG alt="logo" border="0" height="60" hspace="0" src="resources/logo.gif" vspace="0" width="135"></TD><TD align="left" colspan="4" height="5" valign="top" width="456"><IMG alt="line" border="0" height="5" hspace="0" src="resources/line.gif" vspace="0" width="456"></TD><TD align="left" height="60" rowspan="3" valign="top" width="29"><IMG alt="right" border="0" height="60" hspace="0" src="resources/right.gif" vspace="0" width="29"></TD></TR><TR><TD align="left" bgcolor="#0086b2" colspan="4" height="35" valign="top" width="456"><IMG alt="" border="0" height="35" hspace="0" src="graphics/overview-header.jpg" vspace="0" width="456"></TD></TR><TR><TD align="left" height="20" valign="top" width="168"><IMG alt="bottom" border="0" height="20" hspace="0" src="resources/bottom.gif" vspace="0" width="168"></TD><TD align="left" height="20" valign="top" width="96"><A href="http://xml.apache.org/" onMouseOut="rolloverOff('xml');" onMouseOver="rolloverOn('xml');" target="new"><IMG alt="http://xml.apache.org/" border="0" height="20" hspace="0" name="xml" onLoad="rolloverLoad('xml','resources/button-xml-hi.gif','resources/button-xml-lo.gif');" src="resources/button-xml-lo.gif" vspace="0" width="96"></A></TD><TD align="left" height="20" valign="top" width="96"><A href="http://www.apache.org/" onMouseOut="rolloverOff('asf');" onMouseOver="rolloverOn('asf');" target="new"><IMG alt="http://www.apache.org/" border="0" height="20" hspace="0" name="asf" onLoad="rolloverLoad('asf','resources/button-asf-hi.gif','resources/button-asf-lo.gif');" src="resources/button-asf-lo.gif" vspace="0" width="96"></A></TD><TD align="left" height="20" valign="top" width="96"><A href="http://www.w3.org/" onMouseOut="rolloverOff('w3c');" onMouseOver="rolloverOn('w3c');" target="new"><IMG alt="http://www.w3.org/" border="0" height="20" hspace="0" name="w3c" onLoad="rolloverLoad('w3c','resources/button-w3c-hi.gif','resources/button-w3c-lo.gif');" src="resources/button-w3c-lo.gif" vspace="0" width="96"></A></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" width="620"><TR><TD align="left" valign="top" width="120"><IMG alt="join" border="0" height="14" hspace="0" src="resources/join.gif" vspace="0" width="120"><BR>
<IMG alt="Overview" border="0" height="12" hspace="0" src="graphics/overview-label-1.jpg" vspace="0" width="120"><BR>
<A href="getstarted.html" onMouseOut="rolloverOff('side-getstarted');" onMouseOver="rolloverOn('side-getstarted');"><IMG alt="Getting Started" border="0" height="12" hspace="0" name="side-getstarted" onLoad="rolloverLoad('side-getstarted','graphics/getstarted-label-2.jpg','graphics/getstarted-label-3.jpg');" src="graphics/getstarted-label-3.jpg" vspace="0" width="120"></A><BR>
<IMG alt="separator" border="0" height="6" hspace="0" src="resources/separator.gif" vspace="0" width="120"><BR>
<A href="apidocs/index.html" onMouseOut="rolloverOff('side-ext-10');" onMouseOver="rolloverOn('side-ext-10');"><IMG alt="Java API" border="0" height="12" hspace="0" name="side-ext-10" onLoad="rolloverLoad('side-ext-10','graphics/ext-10-label-2.jpg','graphics/ext-10-label-3.jpg');" src="graphics/ext-10-label-3.jpg" vspace="0" width="120"></A><BR>
<IMG alt="separator" border="0" height="6" hspace="0" src="resources/separator.gif" vspace="0" width="120"><BR>
<A href="faq.html" onMouseOut="rolloverOff('side-faq');" onMouseOver="rolloverOn('side-faq');"><IMG alt="FAQ" border="0" height="12" hspace="0" name="side-faq" onLoad="rolloverLoad('side-faq','graphics/faq-label-2.jpg','graphics/faq-label-3.jpg');" src="graphics/faq-label-3.jpg" vspace="0" width="120"></A><BR>
<A href="run.html" onMouseOut="rolloverOff('side-run');" onMouseOver="rolloverOn('side-run');"><IMG alt="Running Tests" border="0" height="12" hspace="0" name="side-run" onLoad="rolloverLoad('side-run','graphics/run-label-2.jpg','graphics/run-label-3.jpg');" src="graphics/run-label-3.jpg" vspace="0" width="120"></A><BR>
<A href="submit.html" onMouseOut="rolloverOff('side-submit');" onMouseOver="rolloverOn('side-submit');"><IMG alt="Writing New Tests" border="0" height="12" hspace="0" name="side-submit" onLoad="rolloverLoad('side-submit','graphics/submit-label-2.jpg','graphics/submit-label-3.jpg');" src="graphics/submit-label-3.jpg" vspace="0" width="120"></A><BR>
<A href="design.html" onMouseOut="rolloverOff('side-design');" onMouseOver="rolloverOn('side-design');"><IMG alt="Test Standards" border="0" height="12" hspace="0" name="side-design" onLoad="rolloverLoad('side-design','graphics/design-label-2.jpg','graphics/design-label-3.jpg');" src="graphics/design-label-3.jpg" vspace="0" width="120"></A><BR>
<A href="xalanc.html" onMouseOut="rolloverOff('side-xalanc');" onMouseOver="rolloverOn('side-xalanc');"><IMG alt="Xalan-C Tests" border="0" height="12" hspace="0" name="side-xalanc" onLoad="rolloverLoad('side-xalanc','graphics/xalanc-label-2.jpg','graphics/xalanc-label-3.jpg');" src="graphics/xalanc-label-3.jpg" vspace="0" width="120"></A><BR>
<IMG alt="separator" border="0" height="6" hspace="0" src="resources/separator.gif" vspace="0" width="120"><BR>
<A href="http://xml.apache.org/xalan-j" onMouseOut="rolloverOff('side-ext-28');" onMouseOver="rolloverOn('side-ext-28');"><IMG alt="Xalan-J 2.x" border="0" height="12" hspace="0" name="side-ext-28" onLoad="rolloverLoad('side-ext-28','graphics/ext-28-label-2.jpg','graphics/ext-28-label-3.jpg');" src="graphics/ext-28-label-3.jpg" vspace="0" width="120"></A><BR>
<A href="http://xml.apache.org/xalan" onMouseOut="rolloverOff('side-ext-30');" onMouseOver="rolloverOn('side-ext-30');"><IMG alt="Xalan-J 1.x" border="0" height="12" hspace="0" name="side-ext-30" onLoad="rolloverLoad('side-ext-30','graphics/ext-30-label-2.jpg','graphics/ext-30-label-3.jpg');" src="graphics/ext-30-label-3.jpg" vspace="0" width="120"></A><BR>
<A href="http://xml.apache.org/xalan-c" onMouseOut="rolloverOff('side-ext-32');" onMouseOver="rolloverOn('side-ext-32');"><IMG alt="Xalan-C 1.x" border="0" height="12" hspace="0" name="side-ext-32" onLoad="rolloverLoad('side-ext-32','graphics/ext-32-label-2.jpg','graphics/ext-32-label-3.jpg');" src="graphics/ext-32-label-3.jpg" vspace="0" width="120"></A><BR>
<IMG alt="close" border="0" height="14" hspace="0" src="resources/close.gif" vspace="0" width="120"><BR></TD><TD align="left" valign="top" width="500"><TABLE border="0" cellpadding="3" cellspacing="0"><TR><TD>
<UL>
<LI><A href="#purpose">Purpose of these tests</A></LI>
<LI><A href="#brief-overview">Brief overview of testing methods</A></LI>
<LI><A href="#dir-map">Directory Structure</A></LI>
<LI><A href="#test-map">Listing of Java tests and drivers</A></LI>
<LI><A href="#credits">Credits for the tests</A></LI>
</UL>
<A name="purpose"><!--anchor--></A>
<TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG alt="" border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Purpose of these tests</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
<P>These tests are provided for Xalan contributors to evaluate the impact of code changes.
Run the tests on the unchanged code, make the change and rebuild. Then run the tests again
and compare the results. Results are automatically compared to the files in the &quot;-gold&quot;
directory trees. Even though not all tests have &quot;gold&quot; files, it's still valuable to run
the tests before and after a code change. That way you can at least ensure that
your changes didn't cause any regressions to the code before you check your
changes in. In the future, we hope to provide a tool to compare test results from
one run to another (without necessarily having to re-run the test) to make this process even simpler.</P>
</FONT></TD></TR></TABLE><BR>
<A name="brief-overview"><!--anchor--></A>
<TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG alt="" border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Brief overview of testing methods</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
<P>The Xalan tests include a richly featured and fully automated testing framework
that the great majority of the tests use. The org.apache.qetest package provides
an independent testing and automation harness for Xalan, including logging and
reporting mechanisims. The basic framework is easily used in testing
other programs as well since dependencies on Xalan and an XML parser are
clearly compartmented.</P>
<P>Nearly all tests are automated, run without any user interaction and with a minimum amount of setup, and produce
a rolled-up report of their pass/fail/other status. Our existing testing library includes
a wide array of tests, from XSLT conformance to detailed API tests, and welcomes
user-submitted tests as well. The 'smoketest' target (a subset of the most important
tests) are also integrated into the
<A href="http://vmgump.apache.org/gump/public/xml-xalan/xml-xalan2-smoketest/index.html">GUMP nightly build system</A>,
and thus ensure a
minimum baseline of functionality on a daily basis. Developers can run the smoketest
and ensure it passes before checking in code changes.</P>
</FONT></TD></TR></TABLE><BR>
<A name="dir-map"><!--anchor--></A>
<TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG alt="" border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Directory Structure</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
<DL>
<DT>Brief overview of directory structure:</DT>
<DT><CODE><FONT face="courier, monospaced">xml-xalan/test</FONT></CODE></DT>
<DD>Top level dir for all Xalan versions/products tests</DD>
<DT></DT>
<DT><CODE><FONT face="courier, monospaced">xml-xalan/test/tools</FONT></CODE></DT>
<DD>Tools required by the test harness, such as JTidy. Note that all .jars
required to run Xalan, including Ant, the Xerces parser, etc, are
included in the lib and tools directories under xml-xalan/java.
</DD>
<DT><CODE><FONT face="courier, monospaced">xml-xalan/test/java/src</FONT></CODE></DT>
<DD>Java test automation source tree - this includes
a generic testing framework as well as specific API tests for parts of Xalan
and several test drivers for testing conformance / performance / etc. over a large
number of xsl test stylesheets.
<BR>Primary packages are:<BR>
<A href="apidocs/org/apache/qetest/package-summary.html">org.apache.qetest</A><BR>
<A href="apidocs/org/apache/qetest/xsl/package-summary.html">org.apache.qetest.xsl</A><BR>
<A href="apidocs/org/apache/qetest/trax/package-summary.html">org.apache.qetest.trax</A><BR>
<A href="apidocs/org/apache/qetest/trax/dom/package-summary.html">org.apache.qetest.trax.dom</A><BR>
<A href="apidocs/org/apache/qetest/trax/stream/package-summary.html">org.apache.qetest.trax.stream</A><BR>
<A href="apidocs/org/apache/qetest/trax/sax/package-summary.html">org.apache.qetest.trax.sax</A><BR>
<A href="apidocs/org/apache/qetest/xalanj2/package-summary.html">org.apache.qetest.xalanj2</A><BR>
<A href="apidocs/org/apache/qetest/dtm/package-summary.html">org.apache.qetest.dtm</A><BR>
<BR></DD>
<DT><CODE><FONT face="courier, monospaced">xml-xalan/test/tests</FONT></CODE></DT><DD>Top level for XSLT stylesheet trees and special API tests</DD>
<DT><CODE><FONT face="courier, monospaced">xml-xalan/test/tests/conf</FONT></CODE></DT><DD>Directory tree of specific conformance testing stylesheets</DD>
<DT><CODE><FONT face="courier, monospaced">xml-xalan/test/tests/conf-gold</FONT></CODE></DT><DD>Directory tree of specific conformance testing stylesheets gold
output reference files (this tree should mirror the structure of contrib)<BR></DD>
<DT><CODE><FONT face="courier, monospaced">xml-xalan/test/tests/contrib</FONT></CODE></DT><DD>Directory tree of user-contributed stylesheets</DD>
<DT><CODE><FONT face="courier, monospaced">xml-xalan/test/tests/contrib-gold</FONT></CODE></DT><DD>Directory tree of user-contributed stylesheets gold
output reference files (this tree should mirror the structure of contrib)<BR></DD>
<DT><CODE><FONT face="courier, monospaced">xml-xalan/test/tests/api</FONT></CODE></DT><DD>Directory tree for stylesheets used in Java API tests</DD>
<DT><CODE><FONT face="courier, monospaced">xml-xalan/test/tests/api/trax</FONT></CODE></DT><DD>Stylesheets used in Java API tests in
<A href="apidocs/org/apache/qetest/trax/package-summary.html">org.apache.qetest.trax</A></DD>
<DT><CODE><FONT face="courier, monospaced">xml-xalan/test/tests/api/trax/dom</FONT></CODE></DT><DD>Stylesheets used in Java API tests in
<A href="apidocs/org/apache/qetest/trax/dom/package-summary.html">org.apache.qetest.trax.dom</A></DD>
<DT></DT><DD>etc. - often the directory tree in the stylesheet area
will match the Java sources directory/package tree.</DD>
<DT><CODE><FONT face="courier, monospaced">xml-xalan/test/tests/api-gold</FONT></CODE></DT><DD>Matching Directory tree of gold files for Java API tests<BR></DD>
<DT><CODE><FONT face="courier, monospaced">xml-xalan/test/tests/extensions</FONT></CODE></DT><DD>Directory tree for stylesheets used in Xalan-specific extension tests</DD>
<DT><CODE><FONT face="courier, monospaced">xml-xalan/test/tests/extensions/java</FONT></CODE></DT><DD>Tests for extensions written in Java</DD>
<DT><CODE><FONT face="courier, monospaced">xml-xalan/test/tests/extensions/javascript</FONT></CODE></DT><DD>Tests for extensions written in Javascript</DD>
<DT><CODE><FONT face="courier, monospaced">xml-xalan/test/tests/extension-gold</FONT></CODE></DT><DD>Matching Directory tree of gold files for extensions tests<BR></DD>
<DT><CODE><FONT face="courier, monospaced">xml-xalan/test/tests/bugzilla</FONT></CODE></DT><DD>Special directory of stylesheets and automated Testlets reproducing selected Bugzilla bug reports</DD>
</DL>
</FONT></TD></TR></TABLE><BR>
<A name="test-map"><!--anchor--></A>
<TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG alt="" border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Listing of Java tests and drivers</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
<TABLE border="0" cellpadding="0" cellspacing="3" width="100%"><TR><TD valign="top" width="20"><IMG alt="Note" border="0" height="24" hspace="0" src="resources/note.gif" vspace="0" width="20"></TD><TD valign="top"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1"><I>This section is a sort of catalog of existing tests. Beginning users
will probably want to see <A href="run.html#how-to-run">how to run tests</A> as well.</I></FONT></TD></TR></TABLE>
<P>Java Test Drivers (data driven testing)</P>
<P>A Java Test Driver executes a test for each xml/xsl file pair in
the specified directory tree or each pair in the specified fileList.
The driver iterates over the inputDir tree or list of files
and asks a Testlet to execute() a test on each one. This is also similar to
data driven testing, where a common algorithim is defined for a test case, and
then a large number of data points (in this case, the xml/xsl file pairs) are run through the test case in order.
The best example is <A href="apidocs/org/apache/qetest/xsl/StylesheetTestletDriver.html">StylesheetTestletDriver</A>.
Another generic example is <A href="apidocs/org/apache/qetest/FileTestletDriver.html">FileTestletDriver</A>.</P>
<P>The Test Drivers rely on various Testlet implementations
to define the actual testing algorithim to apply to each xml/xsl
file pair. This defines any options to be used when processing the
file as well as logging out information about the test in progress.
Examples include
<A href="apidocs/org/apache/qetest/xsl/StylesheetTestlet.html">StylesheetTestlet</A> and
<A href="apidocs/org/apache/qetest/xsl/PerformanceTestlet.html">PerformanceTestlet</A></P>
<P>The Testlets rely on <A href="apidocs/org/apache/qetest/xslwrapper/TransformWrapper.html">TransformWrapper</A>
subclasses to perform the actual test of processing or transformation
of the xml/xsl file pair into the output file. We can then plug
in different TransformWrapper &quot;flavors&quot; easily. Different
TransformWrapper can process or transform in various ways, like
using DOM trees, SAX events, or input/output streams.</P>
<P>The three levels of iteration, test algorithim, and
processor flavor are all independently changeable, so we can
easily try out different kinds of tests. This technique is used to
run the full sets of 'conf' (conformance), 'perf' (performance),
extensions, and 'contrib' (user contributed stylesheets) tests.</P>
<DL>
<DT>org.apache.qetest.xsl.<A href="run.html#how-to-run-c">XalanCTestlet</A></DT>
<DD>This is similar to the StylesheetTestlet, but for Xalan-C.
It simply shells
out to a command prompt to run each stylesheet through the TestXSLT.exe program
from Xalan-C.</DD>
</DL>
<P>Java API tests for the TRAX (or javax.xml.transform) interface, that
Xalan-J 2.x implements.<BR>
All in package: org.apache.qetest.trax</P>
<TABLE border="0" cellpadding="0" cellspacing="3" width="100%"><TR><TD valign="top" width="20"><IMG alt="Note" border="0" height="24" hspace="0" src="resources/note.gif" vspace="0" width="20"></TD><TD valign="top"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1"><I>(This Section needs updating: many new tests have been added; see the Javadoc for a list -sc)</I></FONT></TD></TR></TABLE>
<DL>
<DT>REPLACE_template_for_new_tests.java</DT>
<DD>a template for creating new TRAX API tests, see <A href="submit.html#write-API-tests">Submitting New Tests</A></DD>
<DT>LoggingErrorListener.java</DT>
<DD><I>utility:</I> wraps javax.xml.transform.ErrorListener, and logs info;
this class also supports setting expected errors to trap, and it will call
logger.checkPass/checkFail for you when it gets an expected or unexpected event.
This allows us to write very detailed negative tests and have them be
fully automated.</DD>
<DT>LoggingURIResolver.java</DT>
<DD><I>utility:</I> wraps javax.xml.transform.URIResolver, and logs info</DD>
<DT>ExamplesTest.java</DT>
<DD>A testing version of samples/trax/Examples.java, a sample file
provided in Xalan-J 2.x showing various uses of the TRAX or
javax.xml.transform API to process stylesheets.</DD>
<DT>TransformerAPITest.java</DT>
<DD>API coverage tests for javax.xml.transform.Transformer</DD>
<DT>TransformerFactoryAPITest.java</DT>
<DD>API coverage tests for javax.xml.transform.TransformerFactory</DD>
<DT>TemplatesAPITest.java</DT>
<DD>API coverage tests for javax.xml.transform.Templates</DD>
<DT>EmbeddedStylesheetTest.java</DT>
<DD>Testing various types and kinds of stylesheets embedded with the xml-stylesheet PI</DD>
<DT>ErrorListenerAPITest.java</DT>
<DD>API Coverage test for ErrorListener</DD>
<DT>ErrorListenerTest.java</DT>
<DD>Functionality test of error listeners when using illegal stylesheets</DD>
<DT>OutputPropertiesTest.java</DT>
<DD>Various tests of programmatic access and changing of output properties</DD>
<DT>SystemIdImpInclTest.java</DT>
<DD>Testing various forms of URLs in setSystemID with imported and included stylesheets</DD>
<DT>SystemIdTest.java</DT>
<DD>Testing various forms of URLs in setSystemID</DD>
<DT>TestThreads.java</DT>
<DD>MANUALLY executed test for running multiple threads
and transforming multiple stylesheets simultaneously. An updated and automated
test is now available, org.apache.qetest.xsl.ThreadedTestletDriver, which
should be used instead. </DD>
</DL>
<P>All in subpackages of: org.apache.qetest.trax</P>
<DL>
<DT>stream.StreamSourceAPITest.java</DT>
<DD>API coverage tests for javax.xml.transform.stream.StreamSource</DD>
<DT>stream.StreamResultAPITest.java</DT>
<DD>API coverage tests for javax.xml.transform.stream.StreamResult</DD>
<DT>etc.</DT>
<DD>API coverage tests are available with a similar naming scheme for most javax.xml.transform.* classes</DD>
</DL>
<P>A few tests are ones that Xalan does not currently pass due to Bugzilla reports, but we know the
correct (&quot;gold&quot;) result by analysis or by trying the test on other processors.
A number of tests may also be missing matching &quot;gold&quot; files, if we haven't
yet had time to confirm the correct output. It's still useful to run these
tests (although the test driver will report an AMBG or 'Ambiguous'
result) because you can still see if the output looks basically correct, and
compare the output to previous test runs before you submit your code changes, etc.</P>
<P>The tests have several different types of results beyond just pass or fail,
which are documented in <A href="apidocs/org/apache/qetest/Logger.html#PASS_RESULT">org.apache.qetest.Logger</A>.
</P>
</FONT></TD></TR></TABLE><BR>
<A name="credits"><!--anchor--></A>
<TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG alt="" border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Credits for the tests</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG alt="" border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
<UL>
<LI><A href="mailto:shane_curcuru@us.ibm.com">Shane Curcuru</A></LI>
<LI><A href="mailto:paul_dick@us.ibm.com">Paul Dick</A></LI>
<LI><A href="mailto:David_Marston@us.ibm.com">David Marston</A></LI>
<LI><A href="mailto:tom.amiro@east.sun.com">Tom Amiro</A></LI>
<LI><A href="mailto:garyp@firstech.com">Gary L Peskin</A></LI>
<LI>Many other <A href="http://xml.apache.org/mail.html">xalan-dev</A> subscribers</LI>
<LI>Test cases written by Carmelo Montanez at <A href="http://www.nist.gov/xml/">NIST</A> for general use</LI>
<LI>Many other helpers who we still need to credit! Sorry!</LI>
</UL>
</FONT></TD></TR></TABLE><BR>
</TD></TR></TABLE></TD></TR></TABLE><BR><TABLE border="0" cellpadding="0" cellspacing="0" width="620"><TR><TD bgcolor="#0086b2"><IMG alt="dot" height="1" src="resources/dot.gif" width="1"></TD></TR><TR><TD align="center"><FONT color="#0086b2" size="-1"><I>
Copyright &copy; 2000 The Apache Software Foundation.
All Rights Reserved.
</I></FONT></TD></TR></TABLE></BODY></HTML>