Author: turnstep
Date: Sun Mar 27 09:10:22 2011
New Revision: 14782
Modified:
DBD-Pg/trunk/t/03smethod.t
DBD-Pg/trunk/t/12placeholders.t
Log:
More tweaks for 7.4 testing
Modified: DBD-Pg/trunk/t/03smethod.t
==============================================================================
--- DBD-Pg/trunk/t/03smethod.t (original)
+++ DBD-Pg/trunk/t/03smethod.t Sun Mar 27 09:10:22 2011
@@ -657,33 +657,40 @@
# Test of the statement handle method "cancel"
#
-$dbh->do('INSERT INTO dbd_pg_test (id) VALUES (?)',undef,1);
-$dbh->commit;
-$dbh->do('SELECT * FROM dbd_pg_test WHERE id = ? FOR UPDATE',undef,1);
-
-my $dbh2 = $dbh->clone;
-$dbh2->do('SET search_path TO ' . $dbh->selectrow_array('SHOW search_path'));
-
-my $oldaction;
-eval {
- # This statement will block indefinitely because of the 'FOR UPDATE' clause,
- # so we set up an alarm to cancel it after 2 seconds.
- my $sthl = $dbh2->prepare('SELECT * FROM dbd_pg_test WHERE id = ? FOR UPDATE');
- $sthl->{RaiseError} = 1;
-
- my $action = POSIX::SigAction->new(
- sub {$sthl->cancel},POSIX::SigSet->new(SIGALRM));
- $oldaction = POSIX::SigAction->new;
- POSIX::sigaction(SIGALRM,$action,$oldaction);
-
- alarm(2); # seconds before alarm
- $sthl->execute(1);
- alarm(0); # cancel alarm (if execute didn't block)
-};
-# restore original signal handler
-POSIX::sigaction(SIGALRM,$oldaction);
-like ($@,qr/canceling \w+ due to user request/,'cancel');
-$dbh2->disconnect();
+SKIP: {
+ ## 7.4 does not have cancel
+ if ($pglibversion < 80000) {
+ skip ('Not testing cancel 7.4-compiled servers', 1);
+ }
+
+ $dbh->do('INSERT INTO dbd_pg_test (id) VALUES (?)',undef,1);
+ $dbh->commit;
+ $dbh->do('SELECT * FROM dbd_pg_test WHERE id = ? FOR UPDATE',undef,1);
+
+ my $dbh2 = $dbh->clone;
+ $dbh2->do('SET search_path TO ' . $dbh->selectrow_array('SHOW search_path'));
+
+ my $oldaction;
+ eval {
+ # This statement will block indefinitely because of the 'FOR UPDATE' clause,
+ # so we set up an alarm to cancel it after 2 seconds.
+ my $sthl = $dbh2->prepare('SELECT * FROM dbd_pg_test WHERE id = ? FOR UPDATE');
+ $sthl->{RaiseError} = 1;
+
+ my $action = POSIX::SigAction->new(
+ sub {$sthl->cancel},POSIX::SigSet->new(SIGALRM));
+ $oldaction = POSIX::SigAction->new;
+ POSIX::sigaction(SIGALRM,$action,$oldaction);
+
+ alarm(2); # seconds before alarm
+ $sthl->execute(1);
+ alarm(0); # cancel alarm (if execute didn't block)
+ };
+ # restore original signal handler
+ POSIX::sigaction(SIGALRM,$oldaction);
+ like ($@,qr/canceling \w+ due to user request/,'cancel');
+ $dbh2->disconnect();
+}
cleanup_database($dbh,'test');
$dbh->rollback();
Modified: DBD-Pg/trunk/t/12placeholders.t
==============================================================================
--- DBD-Pg/trunk/t/12placeholders.t (original)
+++ DBD-Pg/trunk/t/12placeholders.t Sun Mar 27 09:10:22 2011
@@ -426,12 +426,18 @@
};
is ($@, q{}, $t);
-$t='Calling do() with invalid crowded placeholders fails cleanly';
-$dbh->commit();
-eval {
- $dbh->do(q{SELECT ??}, undef, 'public', 'error');
-};
-is($dbh->state, '42601', $t);
+SKIP: {
+ if ($pglibversion < 80000) {
+ skip ('Skipping specific placeholder test on 7.4-compiled servers', 1);
+
+ $t='Calling do() with invalid crowded placeholders fails cleanly';
+ $dbh->commit();
+ eval {
+ $dbh->do(q{SELECT ??}, undef, 'public', 'error');
+ };
+ is($dbh->state, '42601', $t);
+ }
+}
$t='Prepare/execute with non-DML placeholder works';
$dbh->commit();
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.