This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
In Porting/cmpVERSION.pl, treat undefined versions more rigorously.
authorNicholas Clark <nick@ccl4.org>
Sun, 3 Jun 2012 14:04:47 +0000 (16:04 +0200)
committerNicholas Clark <nick@ccl4.org>
Mon, 18 Jun 2012 12:15:41 +0000 (14:15 +0200)
For any changed module, if the old version is undefined or unparseable, treat
it as a SKIP, not an OK. If the old version *was* parseable, but the current
version is not, treat that as a FAIL - moving from a parseable to an
unparseable version is a regression.

Porting/cmpVERSION.pl

index 51dc35b..58ec7c3 100755 (executable)
@@ -147,11 +147,12 @@ foreach my $pm_file (sort keys %module_diffs) {
     my $orig_pm_content = get_file_from_git($pm_file, $tag_to_compare);
     my $orig_pm_version = eval {MM->parse_version(\$orig_pm_content)};
     ++$count;
-    
-    if ((!defined $pm_version || !defined $orig_pm_version)
-       || ($pm_version eq 'undef' || $orig_pm_version eq 'undef') # sigh
-       || ($pm_version ne $orig_pm_version) # good
-       ) {
+
+    if (!defined $orig_pm_version || $orig_pm_version eq 'undef') { # sigh
+        print "ok $count - SKIP Can't pass \$VERSION in $pm_file\n" if $tap;
+    } elsif (!defined $pm_version || $pm_version eq 'undef') {
+        print "not ok $count - in $pm_file version was $orig_pm_version, now unparsable\n" if $tap;
+    } elsif ($pm_version ne $orig_pm_version) { # good
         print "ok $count - $pm_file\n" if $tap;
     } else {
        if ($tap) {