Converted all relevant tests to use new_dbm instead of new_fh and all tests (except...
[dbsrgits/DBM-Deep.git] / t / 44_upgrade_db.t
index ba0a06a..2517623 100644 (file)
@@ -2,18 +2,27 @@ $|++;
 use strict;
 use Test::More;
 
+plan skip_all => "upgrade_db.pl doesn't actually do anything correct.";
+
 # Add skips here
 BEGIN {
+    plan skip_all => "Skipping the upgrade_db.pl tests on Win32/cygwin for now."
+        if ( $^O eq 'MSWin32' || $^O eq 'cygwin' );
+
+    plan skip_all => "Skipping the upgrade_db.pl tests on *bsd for now."
+        if ( $^O =~ /bsd/i );
+
     my @failures;
-    eval { use Pod::Usage 1.3; }; push @failures, 'Pod::Usage' if $@;
-    eval { use IO::Scalar; }; push @failures, 'IO::Scalar' if $@;
+    eval "use Pod::Usage 1.3;"; push @failures, 'Pod::Usage' if $@;
+    eval "use IO::Scalar;"; push @failures, 'IO::Scalar' if $@;
+    eval "use FileHandle::Fmode;"; push @failures, 'FileHandle::Fmode' if $@;
     if ( @failures ) {
         my $missing = join ',', @failures;
         plan skip_all => "'$missing' must be installed to run these tests";
     }
 }
 
-plan tests => 232;
+plan tests => 302;
 
 use t::common qw( new_fh );
 use File::Spec;
@@ -65,7 +74,8 @@ my @output_versions = (
     '0.981', '0.982', '0.983',
     '0.99_01', '0.99_02', '0.99_03', '0.99_04',
     '1.00', '1.000', '1.0000', '1.0001', '1.0002',
-    '1.0003', '1.0004', '1.0005', '1.0006', '1.0007',
+    '1.0003', '1.0004', '1.0005', '1.0006', '1.0007', '1.0008', '1.0009', '1.0010',
+    '1.0011', '1.0012', '1.0013', '1.0014',
 );
 
 foreach my $input_filename (
@@ -79,6 +89,7 @@ foreach my $input_filename (
 
     foreach my $v ( @output_versions ) {
         my (undef, $output_filename) = new_fh();
+
         my $output = run_prog(
             $PROG,
             "-input $input_filename",
@@ -86,6 +97,8 @@ foreach my $input_filename (
             "-version $v",
         );
 
+        #warn "Testing $input_filename against $v\n";
+
         # Clone was removed as a requirement in 1.0006
         if ( $output =~ /Can\'t locate Clone\.pm in \@INC/ ) {
             ok( 1 );
@@ -115,12 +128,12 @@ foreach my $input_filename (
 
         # Now, read the output file with the right version.
         ok( !$output, "A successful run produces no output" );
-        die "$output\n" if $output;
+        die "'$input_filename' -> '$v' : $output\n" if $output;
 
         my $db;
-        if ( $v =~ /^1\.000[3-7]/ ) {
+        if ( $v =~ /^1\.001[0-4]/ || $v =~ /^1\.000[3-9]/ ) {
             push @INC, 'lib';
-            eval "use DBM::Deep";
+            eval "use DBM::Deep $v"; die $@ if $@;
             $db = DBM::Deep->new( $output_filename );
         }
         elsif ( $v =~ /^1\.000?[0-2]?/ ) {