I am trying to get php and perl API of BDBXML 2.3.11 and 2.4.13 running on OpenSuse 10.3 x86_64
when using --enable-perl the perl tests fail so i tried to run the test suite and compare it against 32bit builds.
2.3.11
after changing dbxml/dist/configure.ac like this:
367c367
< LIBTSO_MODSUFFIX=@MODSUFFIX@
---
LIBTSO_MODSUFFIX=$MODSUFFIX
'make test' in dbxml/build_unix produces a ALL.OUT
using:
grep "^FAIL" -A 1 -B 1 dbxml-2.3.11/dbxml/build_unix/ALL.OUT
still produces lots of output. Since the 32bit version is working I compared the output produced on a 32bit ubuntu 07.10 with 64bit OpenSuse 10.3 which showed that following errors only occured on the 64bit system:
Xml003.3.1c: Put/get on both DB's
FAIL:10:16:44 (00:00:00) dbxml_dump/dbxml_load(3.3.1.dbxml:unexpected hexadecimal value ' '
load 3.3.1.dbxml-dumpload: Error: Invalid argument): expected 0, got 1
FAIL:10:16:44 (00:00:00) Dump/load of 3.3.1.dbxml failed.
8.8: Query timeout
FAIL: should not have gotten here
FAIL:10:17:04 (00:00:00) 8.8.8 returned error value 1
FAIL:10:17:04 (00:00:00) 8.8.8: expected "1", got "0"
8.8: Container not found
12.4.1: update with duplicate index entries
FAIL:10:21:41 (00:00:00) dbxml_dump/dbxml_load(12.4.1.dbxml:unexpected hexadecimal value ' '
load 12.4.1.dbxml-dumpload: Error: Invalid argument): expected 0, got 1
FAIL:10:21:41 (00:00:00) Dump/load of 12.4.1.dbxml failed.
there are more errors but they are not unique to the 64bit system. The shown messages repeat for different test settings(wholedoc/node - storage ...)
the errors occurring in 3.3.1c and 12.4.1 can also be reproduced using dbxml,dbxml_dump and dbxml_load:
./dbxml -h /tmp
dbxml>createcon test.dbxml
dbxml>putdoc phone1 '<phone/>'
dbxml>quit
./dbxml_dump -h /tmp/ -f /tmp/dbxml_2.3.11_test.dbxml.dump test.dbxml
./dbxml_load -h /tmp/ -f /tmp/dbxml_2.3.11_test.dbxml.dump test2.dbxml
2.4.13
The documentation states that the test should be run from within the tclsh, but I think make test should be supported too. (make test only works after adapting pathes to new location in dbxml/test/tcl/)
similar procedure as above shows that the bug responsible for failing 3.3.1c and 12.4.1 is fixed
and 8.8.8 still fails.
Having a look at 8.8.8 my assumption is that the test fails simply because the machine is too fast (2.13Ghz Core2Duo) and executes the test query before the set timeout is triggered.
Now back to perl:
2.3.11 tests fail with:
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, '../blib/lib', '../blib/arch')" t/XmlManager.t
t/XmlManager....ok 43/89BDB XML: unexpected hexadecimal value ' '
failed
Error: Invalid argument in t/XmlManager.t, line 350
# Looks like you planned 89 tests but only ran 51.
t/XmlManager....dubious
Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 52-89
Failed 38/89 tests, 57.30% okay
Failed Test Stat Wstat Total Fail Failed List of Failed
-------------------------------------------------------------------------------
t/XmlManager.t 255 65280 89 76 85.39% 52-89
Failed 1/1 test scripts, 0.00% okay. 38/89 subtests failed, 57.30% okay.
after wrapping the call to loadContainer in test 51 in eval {} catch{}
the output looks like this (no further failures)
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, '../blib/lib', '../blib/arch')" t/XmlManager.t
t/XmlManager....ok 1/89BDB XML: unexpected hexadecimal value ' '
failed with std exception:Error: Invalid argument in t/XmlManager.t, line 350
# Failed test 'dump and load failed'
# in t/XmlManager.t at line 363.
t/XmlManager....ok 53/89# Looks like you failed 1 test of 89.
t/XmlManager....dubious
Test returned status 1 (wstat 256, 0x100)
DIED. FAILED test 52
Failed 1/89 tests, 98.88% okay
Failed Test Stat Wstat Total Fail Failed List of Failed
-------------------------------------------------------------------------------
t/XmlManager.t 1 256 89 1 1.12% 52
Failed 1/1 test scripts, 0.00% okay. 1/89 subtests failed, 98.88% okay.
luckily this is the only test that fails:
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, '../blib/lib', '../blib/arch')" t/*.t
...
Failed Test Stat Wstat Total Fail Failed List of Failed
-------------------------------------------------------------------------------
t/XmlManager.t 1 256 89 1 1.12% 52
2.4.13 tests fail with:
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, '../blib/lib', '../blib/arch')" t/*.t
...
Failed Test Stat Wstat Total Fail Failed List of Failed
-------------------------------------------------------------------------------
t/XmlManager.t 1 256 89 1 1.12% 43
t/XmlQueryContext.t 255 65280 33 62 187.88% 3-33
t/XmlValue.t 1 256 248 1 0.40% 245
looking at XmlManager test shows that it is not the same as above but something else
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, '../blib/lib', '../blib/arch')" t/XmlManager.t
t/XmlManager....ok 32/89
# Failed test 'getIndexNodes'
# in t/XmlManager.t at line 275.
t/XmlManager....ok 52/89# Looks like you failed 1 test of 89.
t/XmlManager....dubious
Test returned status 1 (wstat 256, 0x100)
DIED. FAILED test 43
Failed 1/89 tests, 98.88% okay
Failed Test Stat Wstat Total Fail Failed List of Failed
-------------------------------------------------------------------------------
t/XmlManager.t 1 256 89 1 1.12% 43
Failed 1/1 test scripts, 0.00% okay. 1/89 subtests failed, 98.88% okay.
The other two tests seem to fail because the tests are not correct, but i haven't had the time to look at them yet. Here is the output:
t/XmlQueryContext..........ok 1/33Bareword "XmlQueryContext::DeadValues" not allowed while "strict subs" in use at t/XmlQueryContext.t line 194, <DATA> line 225.
Bareword "XmlQueryContext::DeadValues" not allowed while "strict subs" in use at t/XmlQueryContext.t line 195, <DATA> line 225.
Execution of t/XmlQueryContext.t aborted due to compilation errors.
# Looks like you planned 33 tests but only ran 2.
# Looks like your test died just after 2.
t/XmlQueryContext..........dubious
Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 3-33
Failed 31/33 tests, 6.06% okay
t/XmlValue.................ok 1/248
# Failed test 'getLocalName'
# in t/XmlValue.t at line 410.
# got: ''
# expected: '#document'
t/XmlValue.................NOK 245# Looks like you failed 1 test of 248.
t/XmlValue.................dubious
Test returned status 1 (wstat 256, 0x100)
DIED. FAILED test 245
Failed 1/248 tests, 99.60% okay
So my questions are:
1. can and will the fix for dump/load be back ported to 2.3.11
2. is my assumption about 8.8.8 correct
3. is there a patch underway for perl on 2.4.13?
4. were there other issues in 2.3.11 that have been fixed in 2.4.13 but not back ported. especially regarding perl and php APIs on 64bit platforms.
I noticed that at least the patch provided in: 1802092 by djimenez was not incorporated into 2.3.11 (2.4.13 seems to be fixed)
5. since there seems to be no publicly available php test suite yet, will there be one in the near future?
all comments welcome,
thanks
Gordon