On 10/09/2010 14:29, Martin J. Evans wrote:
On 09/09/10 15:18, Martin J. Evans wrote:
I ran DBI trunk on VMS (perl, v5.8.1 built for VMS_AXP) just to check it out.
There were a lot of failures. I'm pushed for time right now so I've not yet had
any time to properly investigate them. I've listed a few here (but not
complete). If anyone has any insight into them I can try stuff out.
v20 $ perl -I[.blib.lib] -I[.blib.arch] [.t]10examp.t
1..210
ok 1 - connect should fail
ok 2 - ... we should have an exception here
ok 3 - ... $dbh2 should not be defined
ok 4
ok 5
ok 6 - ... these 2 handles are cached, so they are the same
ok 7
ok 8 - ... this handle was created with different parameters, so it is not the s
ame
ok 9
ok 10 - Executed should be true
ok 11
ok 12 - should return same handle
ok 13 - Executed should be false because reset by connect attributes
ok 14 - The object isa DBI::dr
ok 15 - ... these are our cached kids
ok 16 - ... we have emptied out cache
ok 17
ok 18 - ... PrintError should be 0
ok 19 - ... FetchHashKey is NAME
ok 20 - ... checking the example driver_path
others
ok 21 - DBI commit: invalid number of arguments: got handle + 1, expected handle
+ between 0 and 0
# Usage: $h->commit() at [.t]10examp.t line 88.
#
ok 22 - ping should return true
ok 23 - prepare should fail
ok 24 - sth->err should be true
ok 25 - DBI::err should be true
ok 26 - $DBI::err should match $dbh->err
ok 27 - $DBI::errstr should contain error string
ok 28 - $DBI::errstr should match $dbh->errstr
ok 29
ok 30
ok 31
ok 32
ok 33 - DBI::db=HASH(0x6228e4) ne DBI::db=HASH(0x6228e4)
ok 34
ok 35
ok 36
ok 37
ok 38
ok 39
ok 40
ok 41
ok 42
ok 43
ok 44
ok 45
ok 46
ok 47
not ok 48
# Failed test at [.t]10examp.t line 159.
ok 49
ok 50
ok 51
ok 52
ok 53 - errstr should contain error message
ok 54
ok 55 - errstr should contain error message
ok 56
ok 57
ok 58 - errstr should contain error message
ok 59
ok 60 - errstr should contain error message
ok 61
ok 62
Can't use an undefined value as an ARRAY reference at [.t]10examp.t line 179.
# Looks like you planned 210 tests but ran 62.
# Looks like you failed 1 test of 62 run.
# Looks like your test exited with 512 just after 62.
%SYSTEM-F-ABORT, abort
v20 $ perl -I[.blib.lib] -I[.blib.arch] [.t]19fhtrace.t
1..27
ok 1 - use DBI;
Can't set DBI::db=HASH(0x38c68c)->{PrintWarn}: unrecognised attribute or invalid
value at /perl_root/lib/site_perl/DBD/ExampleP.pm line 230.
# Looks like you planned 27 tests but ran 1.
# Looks like your test exited with 1024 just after 1.
%SYSTEM-F-ABORT, abort
This one was down to the fact that those -Is on the command line are not
working.
It works when I set PERL5LIB instead.
v20 $ perl -I[.blib.lib] -I[.blib.arch] [.t]42prof_data.t
1..31
ok 1 - use DBI::ProfileDumper;
ok 2 - use DBI::ProfileData;
Odd number of elements in anonymous hash at /perl_root/lib/site_perl/DBI/Profile
.pm line 497.
ok 3 - Created connection isa DBI::db
DBD::ExampleP::db do failed: Syntax error in select statement ("set dummy=1") at
[.t]42prof_data.t line 43.
DBD::ExampleP::db do failed: Syntax error in select statement ("set dummy=1") at
[.t]42prof_data.t line 43.
# Looks like you planned 31 tests but ran 3.
# Looks like your test exited with 1024 just after 3.
%SYSTEM-F-ABORT, abort
This was the -I problem as as well, 42prof_data.t is ok.
v20 $ perl -I[.blib.lib] -I[.blib.arch] [.t]49dbd_file.t
ok 1 - use DBI;
not ok 2 - use DBD::File;
# Failed test 'use DBD::File;'
# at [.t]49dbd_file.t line 18.
# Tried to use 'DBD::File'.
# Error: Can't locate DBD/File.pm in @INC (@INC contains: /perl_root/lib/VM
S_AXP/5_8_1 /perl_root/lib /perl_root/lib/site_perl/VMS_AXP perl_root:[lib.site_
perl] /perl_root/lib/site_perl .) at (eval 5) line 2.
# BEGIN failed--compilation aborted at (eval 5) line 2.
install_driver(File) failed: Can't locate DBD/File.pm in @INC (@INC contains: /p
erl_root/lib/VMS_AXP/5_8_1 /perl_root/lib /perl_root/lib/site_perl/VMS_AXP perl_
root:[lib.site_perl] /perl_root/lib/site_perl .) at (eval 6) line 3.
Perhaps the DBD::File perl module hasn't been fully installed,
or perhaps the capitalisation of 'File' isn't right.
Available drivers: examplep, nullp, proxy, sponge.
at [.t]49dbd_file.t line 30
# Tests were run but no plan was declared and done_testing() was not seen.
%SYSTEM-F-ABORT, abort
49dbd_file.t should have been:
v20 $ perl -I[.blib.lib] -I[.blib.arch] [.t]49dbd_file.t
ok 1 - use DBI;
not ok 2 - use DBD::File;
# Failed test 'use DBD::File;'
# at [.t]49dbd_file.t line 18.
# Tried to use 'DBD::File'.
# Error: DBI/DBD/SqlEngine.pm did not return a true value at (eval 7) line
3.
# ...propagated at /perl_root/lib/base.pm line 64.
# BEGIN failed--compilation aborted at /dka200/martin/dbi-1_614/blib/lib/DBD/Fil
e.pm line 34.
# Compilation failed in require at (eval 6) line 2.
# BEGIN failed--compilation aborted at (eval 6) line 2.
DBD::File initialisation failed: Can't locate object method "driver" via package
"DBD::File" at /dka200/martin/dbi-1_614/blib/lib/DBI.pm line 814.
Perhaps the capitalisation of DBD 'File' isn't right. at [.t]49dbd_file.t line 3
0
# Tests were run but no plan was declared and done_testing() was not seen.
%SYSTEM-F-ABORT, abort
There are more but this is really just to note what I've seen so far.
Martin
Martin
I managed to get hold of Craig Berry (BTW Craig, I bcc'ed you as I
wasn't sure you would want to see any followups but I wanted you to know
what I'd done) and he took a look at the latest development release of
DBI. He tried posting to dbi-dev but the email has not got through as
yet so I've copied it here:
=====
Tried to reply on dbi-dev yesterday but my message hasn't come through.
The main problem I see so far is that anything depending on DBD::DBM
doesn't work. For example, in running 85gofer.t, it creates a new,
empty, temporary directory (by calling rmtree and then mkdir on it),
then it does opendir/readdir on that empty directory in order to find
DSNs. Naturally it doesn't find any.
Here's the point where it's trying to find things that aren't there:
DBD::File::dr::data_sources(blib/lib/DBD/File.pm:143):
143: while (defined ($file = readdir ($dirh))) {
In my case, the directory is:
DB<9> x $dir
0 '/D0/CRAIG/DBI/test_output_1076/'
Maybe there is some prior step that is supposed to populate the
test_output_XXX directory?
=====
BTW, Thanks again Craig for helping us out here.
I'm still looking into issues in VMS but it is a slow process as I've
got a lot of other stuff to do and the machine I have access to is VERY
slow. I've also had problems with -Ipath not working on the command line
(only used where I would have used prove) and had to resort to setting a
logical for PERL5LIB.
Martin