Deprecate emulate_limit() - can not be sanely supported by DQ
[dbsrgits/DBIx-Class.git] / t / 71mysql.t
index c2318f8..e86a760 100644 (file)
@@ -173,15 +173,10 @@ $schema->populate ('BooksInLibrary', [
 }
 
 SKIP: {
-    my $mysql_version = $dbh->get_info( $GetInfoType{SQL_DBMS_VER} );
-    skip "Cannot determine MySQL server version", 1 if !$mysql_version;
+    my $norm_version = $schema->storage->_server_info->{normalized_dbms_version}
+      or skip "Cannot determine MySQL server version", 1;
 
-    my ($v1, $v2, $v3) = $mysql_version =~ /^(\d+)\.(\d+)(?:\.(\d+))?/;
-    skip "Cannot determine MySQL server version", 1 if !$v1 || !defined($v2);
-
-    $v3 ||= 0;
-
-    if( ($v1 < 5) || ($v1 == 5 && $v2 == 0 && $v3 <= 3) ) {
+    if ($norm_version < 5.000003_01) {
         $test_type_info->{charfield}->{data_type} = 'VARCHAR';
     }
 
@@ -374,11 +369,15 @@ ZEROINSEARCH: {
 
   my $rs = $schema_autorecon->resultset('Artist');
 
+  my ($parent_in, $child_out);
+  pipe( $parent_in, $child_out ) or die "Pipe open failed: $!";
   my $pid = fork();
   if (! defined $pid ) {
     die "fork() failed: $!"
   }
   elsif ($pid) {
+    close $child_out;
+
     # sanity check
     $schema_autorecon->storage->dbh_do(sub {
       is ($_[1], $orig_dbh, 'Storage holds correct $dbh in parent');
@@ -389,34 +388,42 @@ ZEROINSEARCH: {
 
     TODO: {
       local $TODO = "Perl $] is known to leak like a sieve"
-        if DBIx::Class::_ENV_::PEEPEENESS();
+        if DBIx::Class::_ENV_::PEEPEENESS;
 
       ok (! defined $orig_dbh, 'Parent $dbh handle is gone');
     }
   }
   else {
-    # wait for parent to kill its $dbh
-    sleep 1;
+    close $parent_in;
 
     #simulate a  subtest to not confuse the parent TAP emission
-    Test::More->builder->reset;
-    Test::More->builder->plan('no_plan');
-    Test::More->builder->_indent(' ' x 4);
+    my $tb = Test::More->builder;
+    $tb->reset;
+    for (qw/output failure_output todo_output/) {
+      close $tb->$_;
+      open ($tb->$_, '>&', $child_out);
+    }
+
+    # wait for parent to kill its $dbh
+    sleep 1;
 
     # try to do something dbic-esque
     $rs->create({ name => "Hardcore Forker $$" });
 
-
     TODO: {
       local $TODO = "Perl $] is known to leak like a sieve"
-        if DBIx::Class::_ENV_::PEEPEENESS();
+        if DBIx::Class::_ENV_::PEEPEENESS;
 
       ok (! defined $orig_dbh, 'DBIC operation triggered reconnect - old $dbh is gone');
     }
 
+    done_testing;
     exit 0;
   }
 
+  while (my $ln = <$parent_in>) {
+    print "   $ln";
+  }
   wait;
   ok(!$?, 'Child subtests passed');