Author: turnstep
Date: Sat May 31 17:27:53 2008
New Revision: 11356
Modified:
DBD-Pg/trunk/t/dbdpg_test_setup.pl
Log:
Detect and handle case where previous testdb dir was removed.
Modified: DBD-Pg/trunk/t/dbdpg_test_setup.pl
==============================================================================
--- DBD-Pg/trunk/t/dbdpg_test_setup.pl (original)
+++ DBD-Pg/trunk/t/dbdpg_test_setup.pl Sat May 31 17:27:53 2008
@@ -94,40 +94,48 @@
## If this was created by us, try and restart it
if (16 == $helpconnect) {
- warn "Restarting test database $testdsn at $testdir\n";
- my $COM = qq{$pg_ctl -l $testdir/dbdpg_test.logfile -D $testdir start};
- if ($su) {
- $COM = qq{su -m $su -c "$COM"};
- }
- $info = '';
- eval { $info = qx{$COM}; };
- if ($@ or $info !~ /\w/) {
- $@ = "Could not startup new database ($@) ($info)";
- return $helpconnect, $@, undef;
- }
- ## Wait for it to startup and verify the connection
- sleep 1;
- my $loop = 1;
- STARTUP: {
- eval {
- $dbh = DBI->connect($testdsn, $testuser, '',
- {RaiseError => 1, PrintError => 0, AutoCommit => 1});
- };
- if ($@ =~ /starting up/ or $@ =~ /PGSQL\.\d+/) {
- if ($loop++ < 20) {
- sleep 1;
- redo STARTUP;
+ ## Bypass if the testdir has been removed
+ if (! -e $testdir) {
+ warn "Test directory $testdir has been removed, will recreate from scratch\n";
+ }
+ else {
+ warn "Restarting test database $testdsn at $testdir\n";
+
+ my $COM = qq{$pg_ctl -l $testdir/dbdpg_test.logfile -D $testdir start};
+ if ($su) {
+ $COM = qq{su -m $su -c "$COM"};
+ }
+ $info = '';
+ eval { $info = qx{$COM}; };
+ if ($@ or $info !~ /\w/) {
+ $@ = "Could not startup new database ($@) ($info)";
+ return $helpconnect, $@, undef;
+ }
+ ## Wait for it to startup and verify the connection
+ sleep 1;
+ my $loop = 1;
+ STARTUP: {
+ eval {
+ $dbh = DBI->connect($testdsn, $testuser, '',
+ {RaiseError => 1, PrintError => 0, AutoCommit => 1});
+ };
+ if ($@ =~ /starting up/ or $@ =~ /PGSQL\.\d+/) {
+ if ($loop++ < 20) {
+ sleep 1;
+ redo STARTUP;
+ }
}
}
- }
- if ($@) {
- return $helpconnect, $@, $dbh;
- }
+ if ($@) {
+ return $helpconnect, $@, $dbh;
+ }
+
+ ## We've got a good connection, so do final tweaks and return
+ goto GOTDBH;
- ## We've got a good connection, so do final tweaks and return
- goto GOTDBH;
+ } ## end testdir exists
} ## end error and we created this database
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.