Author: turnstep
Date: Mon Jul 13 12:25:54 2009
New Revision: 13052

Added:
   DBD-Pg/trunk/t/00_release.t
Modified:
   DBD-Pg/trunk/MANIFEST.SKIP

Log:
Add new test to track version numbers.


Modified: DBD-Pg/trunk/MANIFEST.SKIP
==============================================================================
--- DBD-Pg/trunk/MANIFEST.SKIP  (original)
+++ DBD-Pg/trunk/MANIFEST.SKIP  Mon Jul 13 12:25:54 2009
@@ -26,4 +26,4 @@
 cover_db/
 dbdpg_test_database/*
 versiontest/*
-
+t/00_release.t

Added: DBD-Pg/trunk/t/00_release.t
==============================================================================
--- (empty file)
+++ DBD-Pg/trunk/t/00_release.t Mon Jul 13 12:25:54 2009
@@ -0,0 +1,93 @@
+#!perl
+
+## Make sure the version number is consistent in all places
+
+use 5.006;
+use strict;
+use warnings;
+use Data::Dumper;
+use Test::More;
+use lib 't','.';
+
+if (!$ENV{TEST_AUTHOR}) {
+       plan skip_all => 'Set the environment variable TEST_AUTHOR to enable 
this test';
+}
+plan tests => 1;
+
+my %v;
+my $vre = qr{(\d+\.\d+\.\d+\_?\d*)};
+
+## Grab version from various files
+my $file = 'META.yml';
+open my $fh, '<', $file or die qq{Could not open "$file": $!\n};
+while (<$fh>) {
+       push @{$v{$file}} => [$1,$.] if /version\s*:\s*$vre/;
+}
+close $fh or warn qq{Could not close "$file": $!\n};
+
+$file = 'Makefile.PL';
+open $fh, '<', $file or die qq{Could not open "$file": $!\n};
+while (<$fh>) {
+       push @{$v{$file}} => [$1,$.] if /VERSION = '$vre'/;
+}
+close $fh or warn qq{Could not close "$file": $!\n};
+
+$file = 'Pg.pm';
+open $fh, '<', $file or die qq{Could not open "$file": $!\n};
+while (<$fh>) {
+       push @{$v{$file}} => [$1,$.] if (/VERSION = qv\('$vre'/ or /documents 
version $vre/);
+}
+close $fh or warn qq{Could not close "$file": $!\n};
+
+$file = 'lib/Bundle/DBD/Pg.pm';
+open $fh, '<', $file or die qq{Could not open "$file": $!\n};
+while (<$fh>) {
+       push @{$v{$file}} => [$1,$.] if /VERSION = '$vre'/;
+}
+close $fh or warn qq{Could not close "$file": $!\n};
+
+$file = 'Changes';
+open $fh, '<', $file or die qq{Could not open "$file": $!\n};
+while (<$fh>) {
+       if (/^$vre/) {
+               push @{$v{$file}} => [$1,$.];
+               last;
+       }
+}
+close $fh or warn qq{Could not close "$file": $!\n};
+
+$file = 'README';
+open $fh, '<', $file or die qq{Could not open "$file": $!\n};
+while (<$fh>) {
+       push @{$v{$file}} => [$1,$.] if (/is version $vre/ or /TEST VERSION 
\($vre/);
+}
+close $fh or warn qq{Could not close "$file": $!\n};
+
+my $good = 1;
+my $lastver;
+for my $filename (keys %v) {
+       for my $glob (@{$v{$filename}}) {
+               my ($ver,$line) = @$glob;
+               if (! defined $lastver) {
+                       $lastver = $ver;
+               }
+               elsif ($ver ne $lastver) {
+                       $good = 0;
+               }
+       }
+}
+
+if ($good) {
+       pass "All version numbers are the same ($lastver)";
+}
+else {
+       fail 'All version numbers were not the same!';
+       for my $filename (sort keys %v) {
+               for my $glob (@{$v{$filename}}) {
+                       my ($ver,$line) = @$glob;
+                       diag "File: $filename. Line: $line. Version: $ver\n";
+               }
+       }
+}
+
+exit;

Reply via email to