Paul Makepeace wrote:
> Hi,
> 
> Apache::DBI doesn't seem to be caching connections here causing a test
> failure. I'm using Debian/unstable, Debian's perl 5.8.2, mysql 4.0.16,
> DBD::mysql 2.9003, and CPAN's DBI 1.39. (DBI warned about perl having
> threading enabled, FWIW.)
> 
> Any ideas what could be the problem?

after playing around a bit with this, it looks like the test isn't calling
Apache::DBI at all.

the attached patch adds some simple tests to make sure that the database
handles being compared actually come from Apache::DBI - they don't for me
using the latest DBI and DBD::mysql.  once the BEGIN logic is changed,
though, all the tests (old and new) pass just fine.

Apache-Test would be a perfect fit for this module ;)

--Geoff
--- t/10mysql.t 2003-05-05 11:14:22.000000000 -0400
+++ t/10mysql.t~        2004-01-02 10:00:59.000000000 -0500
@@ -1,30 +1,34 @@
 use strict;
-use Test::More tests => 7;
-use DBI;
+use Test::More tests => 10;
 
 BEGIN { 
   # trick DBI.pm into thinking we are running under mod_perl
+  # set both %ENV keys for old and new DBI versions
 
-  if ($DBI::VERSION > 1.33) {
-    $ENV{MOD_PERL} = 'CGI-Perl';  
-  } 
-  else {  
-    $ENV{GATEWAY_INTERFACE} = 'CGI-Perl';  
-  }
-  use_ok('Apache::DBI', 'load Apache::DBI') 
+  $ENV{MOD_PERL} = 'CGI-Perl';  
+  $ENV{GATEWAY_INTERFACE} = 'CGI-Perl';  
+  
+  use_ok('Apache::DBI');
+  use_ok('DBI');
 };
 
 my $dbd_mysql = eval { require DBD::mysql };
 
 #$Apache::DBI::DEBUG = 10;
+#DBI->trace(2");
 
 SKIP: {
-  skip "Could not load DBD::mysql", 6 unless $dbd_mysql;
+  skip "Could not load DBD::mysql", 8 unless $dbd_mysql;
 
   ok($dbd_mysql, "DBD::mysql loaded");
 
+  # checking private DBI data here is probably bad...
+  is($DBI::connect_via, 'Apache::DBI::connect', 'DBI is using Apache::DBI');
+
   my $dbh_1 = DBI->connect('dbi:mysql:test', undef, undef, { RaiseError => 0, 
PrintError => 0 });
 
+  isa_ok($dbh_1, 'Apache::DBI::db');
+
  SKIP: {
     skip "Could not connect to test database: $DBI::errstr", 5 unless $dbh_1;
     ok(my $thread_1 = $dbh_1->{'mysql_thread_id'}, "Connected 1");

-- 
Reporting bugs: http://perl.apache.org/bugs/
Mail list info: http://perl.apache.org/maillist/modperl.html

Reply via email to