Detailed description of the bug:
SystemIDResolverAPITest is driven by a table of inputs and expected
output suffixes, basically to test that the append to current context
location works correctly and that \ in Windows filesystem paths is
normalized to / in the URI.
However, the computation of the baseURI string is behaving incorrectly.
Rather than file:///home/keshlam/git/xalan-test/, it is coming through
as file:////home/keshlam/git/xalan-test/ -- note the extra /.
This means that while the SystemIDResolver is behaving correctly, the
concatenated string its result is compared against is wrong, and the
test fails as a result.
I'm investigating why this test framework is failing on Linux. I suspect
someone working only on Windows tested for the literal character '\'
rather than testing for the system file separator; if you aren't
thinking about portability that's a common mistake.
I'm expecting to have it isolated and a fix offered before Monday.
On 3/8/2023 9:07 AM, Mukul Gandhi wrote:
Hi Gary,
> > On Wed, Feb 1, 2023, 12:51 Gary Gregory <garydgreg...@gmail.com>
wrote:
> >>
> >> I'm missing something:
> >>
> >> "Certain XalanJ "api" tests were causing these issues, and I've now
> >> omitted those "api" tests from XalanJ tests configuration."
> >>
> >> So when are these test run?
>
> What about this question above?
Currently, the XalanJ tests that run with command "build apitest", are
configured within xalan-test repo's file test.properties (specified at
bottom of this file, with comments # Various tests, that run for ant
build.xml's "apitest" target. This configuration has been introduced,
starting with XalanJ 2.7.3 release).
We've recently discovered that, the test SystemIDResolverAPITest from
this set, is not producing same results on windows and Linux. Joseph
Kessselman thinks that, XalanJ codebase within the file
SystemIDResolver.java that's been tested by the test class
SystemIDResolverAPITest, might have a bug.
Following is an excerpt about usages within XalanJ implementation, of
the Java class SystemIDResolver,
systemidresolver.png
This shows that, Java class SystemIDResolver is used extensively
within XalanJ codebase. I think, if needed, we should fix any
implementation within XalanJ class SystemIDResolver with caution as
lot of XalanJ functionality is depending on this class.
--
Regards,
Mukul Gandhi