summaryrefslogtreecommitdiff
path: root/t/32_inactive_error.t
diff options
context:
space:
mode:
Diffstat (limited to 't/32_inactive_error.t')
-rw-r--r--t/32_inactive_error.t34
1 files changed, 34 insertions, 0 deletions
diff --git a/t/32_inactive_error.t b/t/32_inactive_error.t
new file mode 100644
index 0000000..86fcf57
--- /dev/null
+++ b/t/32_inactive_error.t
@@ -0,0 +1,34 @@
+#!/usr/bin/perl
+
+use strict;
+BEGIN {
+ $| = 1;
+ $^W = 1;
+}
+
+use Test::More tests => 4;
+use t::lib::Test;
+
+my $dbh = connect_ok( PrintError => 0, RaiseError => 0 );
+
+my $sth = $dbh->prepare('CREATE TABLE foo (f)');
+
+$dbh->disconnect;
+
+$sth->{PrintError} = 1;
+
+# attempt to execute on inactive database handle
+my @warning = ();
+SCOPE: {
+ local $SIG{__WARN__} = sub { push @warning, @_; return };
+ my $ret = eval { $sth->execute; };
+ # we need PrintError => 1, or warn $@ if $@;
+ ok ! defined $ret;
+}
+
+is( scalar(@warning), 1, 'Got 1 warning' );
+like(
+ $warning[0],
+ qr/attempt to execute on inactive database handle/,
+ 'Got the expected warning',
+);