OK, I’ve stared at xalan-test for a while now and I still don’t understand it 
enough to write a new test.

I can run smoketest, apitest and conf.xsltc and see that I haven’t increased 
(or decreased) the failures of existing tests.

But I can’t see where and how to add a new test, the documentation 
(https://xml.apache.org/xalan-j/test/overview.html) doesn’t seem to match 
what’s in the repository, the new test section says to open 
org.apache.qetest.trax.REPLACE_template_for_new_tests.java which doesn’t seem 
to exist…

I was hoping there would be somewhere I could drop in my sets of xsl+xml+output 
and have it run both xsltc and the interpreted xalan over them. The closest 
place I could see was under tests/contrib, but I don’t think I can merely add 
to them. If I started a new folder structure like:

/tests/regression/xalanj-2785/example1.xml
                             example1.xsl
       regression-gold/xalanj-2785/example1.out

would that be appropriate? I see there’s a jira subdir, is that what that’s 
for? It’s kinda empty… And I can’t seem to run it, it’s referenced by 
alltest.other, but that doesn’t run because thre’s no api target in testxsl.
Ah-hah, if I name files “jira_” + something in the jira folder then they’ll get 
run when running `./build.sh jira`! But if that doesn’t actually get run by 
anything else, is it of value?

I was trying to find something to copy-paste really, but it’s hard to tell how 
things are used, e.g. there’s a directory /tests/contrib/garypeskin/ with a 
bunch of xml+xsl+out that looked like something I could start with, but this 
isn’t referenced anywhere, so has it been run?

I created a bunch of test in the jira dir, and was really happy when they 
passed, I then removed my fixes from the xalan-java repo and rebuilt, and to my 
horror the tests still passed! It took me a while to realise they’re using the 
Interpreter and not the Compiler!

So, to get further, I hacked build.xml to add
            <!-- Explicitly set TransformerFactory property to use xsltc -->
            <param name="sysprop.transfact"
                   value="org.apache.xalan.xsltc.trax.TransformerFactoryImpl" />
which got my new tests running with xsltc, now failing as expected. And when I 
flip to using my new changes, I can get them to pass (though the output is 
different to what the Interpreter outputs in a couple notable cases).

So, to conclude:

  *   Where and how do I add my tests?

Thanks,
Andreas

From: Andreas Martens <amart...@uk.ibm.com>
Date: Tuesday, 1 April 2025 at 15:50
To: dev@xalan.apache.org <dev@xalan.apache.org>
Subject: [EXTERNAL] Re: three PRs and counting
Thanks both Greg and Joe, I’ve got xalan-test and all the important tests pass, 
I’ll get up to speed on writing new tests next! Since it’s in a separate repo 
I’ll create a separate PR for them when they’re ready :-) Cheers, Andreas From: 
Joseph

Thanks both Greg and Joe,

I’ve got xalan-test and all the important tests pass, I’ll get up to speed on 
writing new tests next! Since it’s in a separate repo I’ll create a separate PR 
for them when they’re ready :-)

Cheers,
Andreas

From: Joseph Kesselman <kesh...@alum.mit.edu.INVALID>
Date: Monday, 31 March 2025 at 14:20
To: dev@xalan.apache.org <dev@xalan.apache.org>
Subject: [EXTERNAL] Re: three PRs and counting
The test suite for Xalan still lives in a separate Apache project, xalan-test, 
since it had ambitions of being a test suite shared by other implementations of 
XSLT. If you downloaded one of the archive files (jar or zip), a copy of 
xalan-test
The test suite for Xalan still lives in a separate Apache project, xalan-test, 
since it had ambitions of being a test suite shared by other implementations of 
XSLT. If you downloaded one of the archive files (jar or zip), a copy of 
xalan-test as of that release date should have been included; you can always 
fetch the current version from git. The test framework is still based on Ant 
rather than Maven.

Note that some of the tests are known and accepted failures, where Xalan is 
known not to conform precisely to the formal XSLT Recommendation. The drivers 
should both report failure on those individual tests and success on the overall 
test run.

Yes, any behavioral changes checked into the Xalan code base should be 
accompanied by new tests in xalan-tests to demonstrate the difference between 
old and new code and that the new function is working as expected, and of 
course should be shown not to break existing tests.

--
   /_  Joe Kesselman (he/him/his)
-/ _) My Alexa skill for New Music/New Sounds fans:
   /   https://www.amazon.com/dp/B09WJ3H657/

Caveat: Opinionated old geezer with overcompensated writer's block. May be 
redundant, verbose, prolix, sesquipedalian, didactic, officious, or redundant.
________________________________
From: Gary Gregory <garydgreg...@gmail.com>
Sent: Monday, March 31, 2025 5:46:16 AM
To: dev@xalan.apache.org <dev@xalan.apache.org>
Subject: Re: three PRs and counting

Hello Andreas,

Thank you for your report and work. I am traveling for the next couple of days 
so I can't help much.

You're in the right place to ask for help.

Yes, adding tests to cover fixes and changes is important, otherwise reverting 
behavior is possible without realizing it.

Gary
On Mon, Mar 31, 2025, 10:02 Andreas Martens 
<amart...@uk.ibm.com<mailto:amart...@uk.ibm.com>> wrote:

Hello all!



Just been going through some of the problems our customers have hit whilst 
using our XSLT functionality that’s now underpin by XSLTC rather than IBMs 
XL-TXE.

  *   https://github.com/apache/xalan-java/pull/189 fixes an unlimited growth 
of namespaces used within XSLTC, not a problem for short-lived programs, but we 
tend to run for months and years continuously processing!
  *   https://github.com/apache/xalan-java/pull/192 fixes what I suspect was an 
accidental removal in XALANJ-2108 (in 2006!) of some code that ensured the 
variable vector was closed, which was discovered shortly after in 2008 in 
XALANJ-2430 (and more recently by our customer…)
  *   https://github.com/apache/xalan-java/pull/193 adds some functionality to 
one of the shipped samples that I’ve found useful in debugging the two above, 
on the vein of if I found it useful, perhaps someone else did too!

I ignored the one where the customer was referencing 
`msxsl:node-set($var)/Namespace` from 
`xmlns:msxsl="urn:schemas-microsoft-com:xslt"`, claiming that “it used to work”



I presume there are some regression tests in there somewhere, so I’m going to 
see if I can find them and add my new fixes to them, so should hopefully come 
with another PR for that soon (or even better, extend existing PRs if I get 
there before reviews)..



Anyway, how can I get these PRs reviewed and either approved or rejected? The 
last two are new, but the first one is from September, so I’d like to know what 
to do with it before I completely forget what I did :-)



Cheers,

Andreas

--

Andreas Martens

[signature_558150371]

Senior Engineer

App Connect Enterprise

IBM


Unless otherwise stated above:

IBM United Kingdom Limited
Registered in England and Wales with number 741598
Registered office: Building C, IBM Hursley Office, Hursley Park Road, 
Winchester, Hampshire SO21 2JN
Unless otherwise stated above:

IBM United Kingdom Limited
Registered in England and Wales with number 741598
Registered office: Building C, IBM Hursley Office, Hursley Park Road, 
Winchester, Hampshire SO21 2JN

Unless otherwise stated above:

IBM United Kingdom Limited
Registered in England and Wales with number 741598
Registered office: Building C, IBM Hursley Office, Hursley Park Road, 
Winchester, Hampshire SO21 2JN

Reply via email to