On 11/03/2011 16:53, Tim Bunce wrote:
Time's in very short supply at the moment, but if someone can contribute
tests for these (ideally as patches to existing test scripts) then I'll
fix'em as soon as I get a moment.

Both are simple:
     https://rt.cpan.org/Public/Bug/Display.html?id=66127
     https://rt.cpan.org/Public/Bug/Display.html?id=64330

Tim.
Attached a patch for ping issue. However:

o wasn't sure where to put it 08keeperr.t seemed to have some logic
o it raised another issue - ping on DBD::Sponge does not return true and DBD::Sponge does not have ping. I left the test in for that so it produces 2 errors not 1.

Of course by the time it is re-run with those z* tests the errors mount up.

I'll commit it if you want but because of above I haven't.

If you give me a hint where the best place for the other bug is I'll try and do that too.

Martin
Index: t/08keeperr.t
===================================================================
--- t/08keeperr.t       (revision 14749)
+++ t/08keeperr.t       (working copy)
@@ -2,7 +2,7 @@
 
 use strict;
 
-use Test::More tests => 69;
+use Test::More tests => 72;
 
 ## ----------------------------------------------------------------------------
 ## 08keeperr.t
@@ -69,6 +69,17 @@
 
 package main;
 
+# test ping does not destroy the errstr
+sub ping_keeps_err {
+    my $dbh = DBI->connect('DBI:Sponge:');
+    $dbh->{PrintError} = 0;
+    eval {$dbh->do(q/invalid sql statement/)};
+    ok(defined($dbh->errstr), "Error from invalid SQL");
+    ok($dbh->ping, "ping returns true"); # for me this returns false!
+    ok(defined($dbh->errstr), "Error exists after ping");
+    $dbh->disconnect;
+}
+
 ## ----------------------------------------------------------------------------
 print "Test HandleSetErr\n";
 
@@ -260,8 +271,9 @@
 cmp_ok($dbh->err, '==', 99,  '... $dbh->err is 99');
 is($dbh->errstr, "errstr99", '... $dbh->errstr is as we expected');
 is($dbh->state,  "OV123",    '... $dbh->state is as we expected');
-
 $dbh->disconnect;
 
+ping_keeps_err();
+
 1;
 # end

Reply via email to