Subject: | DBI 1.601 t/85gofer.t dies trying to call "executed_flag_set" on undef value. |
Thanks for DBI.
I was testing 1.601 on VMS and it's now passing all tests without
modification, but I noticed because 85gofer.t has "no_plan" that
when t/85gofer.t dies trying to call "executed_flag_set" on undef value
this is not being reported as a failure. I'm not sure if it should or
not.
I also tested 1.601 on Linux, and I observed the same behaviour.
Running with:
perl -Mblib t/85gofer.t
ok 233
ok 234
Testing no transport with pedantic policy
dbi:DBM:dbm_type=SDBM_File;lockfile=0
ok 235 - should connect to dbi:DBM:dbm_type=SDBM_File;lockfile=0
ok 236
ok 237
ok 238
ok 239 - should detect prepare failure
ok 240
ok 241
ok 242
ok 243
ok 244
ok 245
Can't call method "executed_flag_set" on an undefined value at
t/85gofer.t line 160.
1..245
# Looks like your test died just after 245.
If you run with
prove -b -v t/85gofer.t
or "make test" then it's not obvious the test is exiting with an error.
I dug a little and found DBD::DBM was calling DBD::File's FETCH and
looking for the attribute "go_response", this ends up in these comments:
lib/DBD/File.pm
sub FETCH ($$) {
my ($dbh, $attrib) = @_;
if ($attrib eq 'AutoCommit') {
return 1;
} elsif ($attrib eq (lc $attrib)) {
# Driver private attributes are lower cased
# Error-check for valid attributes
# not implemented yet, see STORE
#
return $dbh->{$attrib};
}
# else pass up to DBI to handle
return $dbh->SUPER::FETCH($attrib);
}
So I guess it's not implemented yet?
Cheers,
Peter (Stig) Edwards