Re: Building XML-Xerces-2.3.0-3 on Windows

Martin Raspe <[email protected]>
Newsgroups gmane.text.xml.xerces-p.devel
Message-ID <[email protected]>
Jason E. Stewart wrote:

> I can add those conditionals, but it would be much better to create an
> arch file in hints/ - the problem is, I don't know what to call the
> file - for OS X it is darwin.pl, for linux it is linux.pl, but windows
> and VC++ it is different...
> 
> If anyone knows, please illuminate me.

I put a file "mswin32.pl" in the /hints directory and it got called by 
Makefile.pl via the MakeMaker module. The problem is that this hints 
file is not found by Makefile.pl in the /Handler subdir, so the handlers 
fail to compile. I wonder if this could be due to the fact that I had to 
change the statement

\${MAKE} -C Handler static
	
to

cd Handler && \$(MAKE) static

(VC's "nmake" doesn't seem to have a -C equivalent)? But I think the 
hints file should be called during the "perl Makefile.pl" procedure.

> Are you using ActivePerl? Is that what most windows users do? 

Yes, I think so.

> If so
> then perhaps making a PPM file is the way to go.

I guess you're right. I could do that, but I need some more time. Maybe 
you'll want to take a look at the test results first (below). Should the 
PPM file include the xerces-c DLL, or does the Apache license prohibit that?

Martin

PS. Here are the test results on Windows. I have omitted the successful 
tests and commented the others. Some errors can be avoided by simple 
changes in the test files. I'm not sure what is happening to the 
exception codes (this seems to be the major problem). The same problem 
was already present in 2.3.0-0.

t\AttributeList...........ok 5/8

No matching function for overloaded 'AttributeList_getValue'
at D:/Src/XML-Xerces-2.3.0-3/blib/lib/XML/Xerces.pm line 221.
# Looks like you planned 8 tests but only ran 5.
# Looks like your test died just after 5.
t\AttributeList...........dubious
         Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 6-8
         Failed 3/8 tests, 62.50% okay

It is line 113 that fails:
$self->{test} = {$attrs->to_hash()};
All other tests succeed after deleting this one.


t\DOMCount................ok 1/2

#     Failed test (t\DOMCount.t at line 55)
# Looks like you failed 1 tests of 2.
t\DOMCount................dubious
         Test returned status 1 (wstat 256, 0x100)
DIED. FAILED test 2
         Failed 1/2 tests, 50.00% okay

"2>/dev/null" is Unix syntax that doesn't work under Windows. The test 
succeeds if I delete this suffix.


t\DOMCreate...............ok 1/2

#     Failed test (t\DOMCreate.t at line 54)
# Found output
# []
# Looks like you failed 1 tests of 2.
t\DOMCreate...............dubious
         Test returned status 1 (wstat 256, 0x100)
DIED. FAILED test 2
         Failed 1/2 tests, 50.00% okay

"2>/dev/null" problem - same as above.


t\DOMDocument.............NOK 3#     Failed test (t\DOMDocument.t at
line 82)
t\DOMDocument.............NOK 4#     Failed test (t\DOMDocument.t at 
line 90)
t\DOMDocument.............ok 35125/35125# Looks like you failed 2 tests 
of 35125.
t\DOMDocument.............dubious
         Test returned status 2 (wstat 512, 0x200)
DIED. FAILED tests 3-4
         Failed 2/35125 tests, 99.99% okay

It's the same error twice:
$@->{code} does not return
$XML::Xerces::DOMException::INVALID_CHARACTER_ERR (= 5),
but 21036276


t\DOMException............NOK 2#     Failed test (t\DOMException.t at 
line 39)
t\DOMException............NOK 3#     Failed test (t\DOMException.t at 
line 89)
t\DOMException............NOK 4#     Failed test (t\DOMException.t at 
line 99)
t\DOMException............NOK 5#     Failed test (t\DOMException.t at 
line 109)
t\DOMException............NOK 6#     Failed test (t\DOMException.t at 
line 119)
t\DOMException............NOK 7#     Failed test (t\DOMException.t at 
line 130)
# Looks like you failed 6 tests of 7.
t\DOMException............dubious
         Test returned status 6 (wstat 1536, 0x600)
DIED. FAILED tests 2-7
         Failed 6/7 tests, 14.29% okay

Same error as above: Seems the the correct error codes are not set in
$error->{code}


t\DOMPrint................ok 1/2

#     Failed test (t\DOMPrint.t at line 62)
# Found []
# Looks like you failed 1 tests of 2.
t\DOMPrint................dubious
         Test returned status 1 (wstat 256, 0x100)
DIED. FAILED test 2
         Failed 1/2 tests, 50.00% okay

"2>/dev/null" problem: same as above.


t\SAX2Count...............ok 1/5

#     Failed test (t\SAX2Count.t at line 29)
#     Failed test (t\SAX2Count.t at line 31)
#     Failed test (t\SAX2Count.t at line 33)
#     Failed test (t\SAX2Count.t at line 35)
# Looks like you failed 4 tests of 5.
t\SAX2Count...............dubious
         Test returned status 4 (wstat 1024, 0x400)
DIED. FAILED tests 2-5
         Failed 4/5 tests, 20.00% okay

"2>/dev/null" : same as above.


t\SAXCount................ok 1/5

#     Failed test (t\SAXCount.t at line 29)
#     Failed test (t\SAXCount.t at line 31)
#     Failed test (t\SAXCount.t at line 33)
#     Failed test (t\SAXCount.t at line 35)
# Looks like you failed 4 tests of 5.
t\SAXCount................dubious
         Test returned status 4 (wstat 1024, 0x400)
DIED. FAILED tests 2-5
         Failed 4/5 tests, 20.00% okay

"2>/dev/null" : same as above.


t\SAXException............ok 1/6

Handling Unknown exception at t\SAXException.t line 32.
# Looks like you planned 6 tests but only ran 1.
# Looks like your test died just after 1.
t\SAXException............dubious
         Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 2-6
         Failed 5/6 tests, 16.67% okay

UNIVERSAL::isa($error,'XML::Xerces::SAXNotSupportedException') is true,
but $error->getMessage() dies with the message "Handling Unknown Exeption"


t\Schema..................ok 3/3

Handling Unknown exception, <IN> chunk 1.
# Looks like your test died just after 3.
t\Schema..................dubious
         Test returned status 255 (wstat 65280, 0xff00)
         after all the subtests completed successfully

Test 3 says: "Resolver: Couldn't create input source for entity:
No matching function for overloaded 'new_LocalFileInputSource' at 
Xerces.pm line 1786."


t\URLInputSource..........NOK 6#     Failed test (t\URLInputSource.t at 
line 48)
t\URLInputSource..........NOK 8#     Failed test (t\URLInputSource.t at 
line 67)
# Looks like you failed 2 tests of 8.
t\URLInputSource..........dubious
         Test returned status 2 (wstat 512, 0x200)
DIED. FAILED tests 6, 8
         Failed 2/8 tests, 75.00% okay

In Test 6 $error->GetCode() returns 0 (correct: 105).
In Test 8 $error->GetCode() returns 101 (correct) if called immediately, 
later 67114035.

It seems the error code somehow gets lost or overwritten when the $error 
object is referenced again. If you reverse the arguments in the "ok" 
clause as follows it passes the test:
ok($error->getCode() == $XML::Xerces::XMLExcepts::URL_NoProtocolPresent
&&
UNIVERSAL::isa($error,'XML::Xerces::XMLException')
&&
$error);


Failed Test        Stat Wstat Total Fail  Failed  List of Failed
-------------------------------------------------------------------------------
t\AttributeList.t   255 65280     8    3  37.50%  6-8
t\DOMCount.t          1   256     2    1  50.00%  2
t\DOMCreate.t         1   256     2    1  50.00%  2
t\DOMDocument.t       2   512 35125    2   0.01%  3-4
t\DOMException.t      6  1536     7    6  85.71%  2-7
t\DOMPrint.t          1   256     2    1  50.00%  2
t\SAX2Count.t         4  1024     5    4  80.00%  2-5
t\SAXCount.t          4  1024     5    4  80.00%  2-5
t\SAXException.t    255 65280     6    5  83.33%  2-6
t\Schema.t          255 65280     3    0   0.00%  ??
t\URLInputSource.t    2   512     8    2  25.00%  6 8
12 subtests skipped.
Failed 11/36 test scripts, 69.44% okay. 29/35357 subtests failed, 99.92% 
okay.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.