More updates to the Xalan-J 2.x tests.  Any feedback appreciated.  I know
at least four people who've actually been looking at the tests...

Basic setup steps:  (Yes, I'll have real docs later, but this should get
anyone familiar with our builds running right away).
checkout xml-xalan/java
build jar xsltc.jar
checkout xml-xalan/test
build all

---- xsltc automated conf/api tests ----
Tom Amiro is using these targets now to get the xsltc stuff passing more
conformance tests, and also to support the full TRaX/JAXP interfaces from
the xsltc module.  Still a ways to go but great progress!

build conf.xsltc
    (Runs normal conformance test with xsltc; works well)
build api.xsltc -DtestClass=trax.TransformerAPITest
    (Runs a specific api test with xsltc; note only trax tests are
currently valid, and we're still investigating the preliminary results of
test runs for possible quirks between some test's handling of inputDir and
xsltc's handling of input URIs)

---- Extensions automated tests ----
build extensions.classes   (was called from build all)
build extensions

This runs the normal StylesheetTestletDriver over the new
xml-xalan/test/tests/extensions directory tree.  Extensions tests are setup
basically the same way as conf tests; except that the extensions/java
directory can have a matching foo.java file for it's foo.xsl/.xml file.
foo.java implements TestableExtension, which gets called from the
ExtensionTestlet, so any Java-based extensions can do their own validation.
Note that using the standard driver means that these tests can support
-flavor, etc. as well.

Note that I'm not really happy with the design of TestableExtension: I'd
rather it be an interface, so as not to interfere in extensions themselves,
but I also want preCheck/postCheck to be static to make it simpler to
validate counters, etc.  But it does the job quite nicely for now.

I've implemented a few of the samples as tests here; I'll move over the
other javascript one once I convert it to not use new Date(), since that's
a pain to automate (use static data instead of random or time-dependent
data when possible in tests...).  I'm sure Gary will have some comments
8-), and if John G. wants some testing space we should create an
extensions/sql directory that we can customize for sql-specific testing.
Just remember, the tests need to be deterministic and should pass when run
through the automation on a current CVS tree of xalan.  (And continue to
pass, unless of course a new bug appears!)

---- Bugzilla automated tests ----
build bugzilla.classes   (was called from build all)
build bugzilla

Uses a custom BugzillaTestletDriver to iterate just through tests/bugzilla.
Will either execute Bugzillafoo.java as a Testlet (if your bug requires API
calls to run/validate) or will just transform Bugzillafoo.xsl as if it were
a normal conf-like test.  Note that gold.out files are checked into this
directory, instead of into a separate bugzilla-gold directory; this is one
difference from other tests.

- Shane

Reply via email to