2 # inspired by perl's cmpVERSION
6 use ExtUtils::MakeMaker;
7 use File::Spec::Functions 'devnull';
10 or plan skip_all => "Not a git tree";
12 chomp(my $base_tag = `git describe --abbrev=0`);
14 my @changed = grep /\.pm$/ && m(/),
15 `git diff --name-only $base_tag --diff-filter=ACMRTUXB`;
19 plan tests => scalar @changed;
22 for my $file (@changed) {
23 my $orig_content = get_file_from_git($file, $base_tag);
24 my $orig_version = eval { MM->parse_version(\$orig_content) };
25 my $curr_version = eval { MM->parse_version($file) };
27 if ($curr_version ne "undef" && $orig_version ne "undef") {
28 cmp_ok($curr_version, '>', $orig_version, "$file - out of date");
30 elsif ($orig_version ne "undef") {
31 fail("$file - version was removed");
33 elsif ($curr_version eq "undef") {
34 fail("$file - has no version");
41 sub get_file_from_git {
42 my ($file, $tag) = @_;
45 return scalar `git --no-pager show $tag:$file 2>$null`;