46 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
#!/usr/bin/perl
 | 
						|
# 00_local_versionsync.t - Private test to check all version numbers match
 | 
						|
# $Id$
 | 
						|
 | 
						|
use warnings;
 | 
						|
use strict;
 | 
						|
use File::Find;
 | 
						|
use Test::More;
 | 
						|
 | 
						|
eval "use File::Slurp";
 | 
						|
plan skip_all => "File::Slurp required for testing version sync"
 | 
						|
    if $@;
 | 
						|
 | 
						|
plan qw(no_plan);
 | 
						|
 | 
						|
my $last_version = undef;
 | 
						|
find({wanted => \&check_version, no_chdir => 1}, 'blib');
 | 
						|
if (! defined $last_version) {
 | 
						|
    fail('Failed to find any files with $VERSION');
 | 
						|
}
 | 
						|
 | 
						|
sub check_version {
 | 
						|
    # $_ is the full path to the file
 | 
						|
    return if (! m{blib/script/}xms && ! m{\.pm \z}xms);
 | 
						|
 | 
						|
    my $content = read_file($_);
 | 
						|
 | 
						|
    # only look at perl scripts, not sh scripts
 | 
						|
    return if (m{blib/script/}xms && $content !~ m/\A \#![^\r\n]+?perl/xms);
 | 
						|
 | 
						|
    my @version_lines = $content =~ m/ ( [^\n]* \$VERSION\s= [^\n]* ) /gxms;
 | 
						|
    if (@version_lines == 0) {
 | 
						|
       fail($_);
 | 
						|
    }
 | 
						|
    for my $line (@version_lines) {
 | 
						|
        if (!defined $last_version) {
 | 
						|
            $last_version = shift @version_lines;
 | 
						|
            pass($_);
 | 
						|
        }
 | 
						|
        else {
 | 
						|
            is($line, $last_version, $_);
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 | 
						|
 |