Blame xt/release/changes_has_content.t
|
Packit |
a89ea5 |
use Test::More tests => 2;
|
|
Packit |
a89ea5 |
|
|
Packit |
a89ea5 |
note 'Checking Changes';
|
|
Packit |
a89ea5 |
my $changes_file = 'Changes';
|
|
Packit |
a89ea5 |
my $newver = '0.2306';
|
|
Packit |
a89ea5 |
my $trial_token = '-TRIAL';
|
|
Packit |
a89ea5 |
my $encoding = 'UTF-8';
|
|
Packit |
a89ea5 |
|
|
Packit |
a89ea5 |
SKIP: {
|
|
Packit |
a89ea5 |
ok(-e $changes_file, "$changes_file file exists")
|
|
Packit |
a89ea5 |
or skip 'Changes is missing', 1;
|
|
Packit |
a89ea5 |
|
|
Packit |
a89ea5 |
ok(_get_changes($newver), "$changes_file has content for $newver");
|
|
Packit |
a89ea5 |
}
|
|
Packit |
a89ea5 |
|
|
Packit |
a89ea5 |
done_testing;
|
|
Packit |
a89ea5 |
|
|
Packit |
a89ea5 |
sub _get_changes
|
|
Packit |
a89ea5 |
{
|
|
Packit |
a89ea5 |
my $newver = shift;
|
|
Packit |
a89ea5 |
|
|
Packit |
a89ea5 |
# parse changelog to find commit message
|
|
Packit |
a89ea5 |
open(my $fh, '<', $changes_file) or die "cannot open $changes_file: $!";
|
|
Packit |
a89ea5 |
my $changelog = join('', <$fh>);
|
|
Packit |
a89ea5 |
if ($encoding) {
|
|
Packit |
a89ea5 |
require Encode;
|
|
Packit |
a89ea5 |
$changelog = Encode::decode($encoding, $changelog, Encode::FB_CROAK());
|
|
Packit |
a89ea5 |
}
|
|
Packit |
a89ea5 |
close $fh;
|
|
Packit |
a89ea5 |
|
|
Packit |
a89ea5 |
my @content =
|
|
Packit |
a89ea5 |
grep { /^$newver(?:$trial_token)?(?:\s+|$)/ ... /^\S/ } # from newver to un-indented
|
|
Packit |
a89ea5 |
split /\n/, $changelog;
|
|
Packit |
a89ea5 |
shift @content; # drop the version line
|
|
Packit |
a89ea5 |
|
|
Packit |
a89ea5 |
# drop unindented last line and trailing blank lines
|
|
Packit |
a89ea5 |
pop @content while ( @content && $content[-1] =~ /^(?:\S|\s*$)/ );
|
|
Packit |
a89ea5 |
|
|
Packit |
a89ea5 |
# return number of non-blank lines
|
|
Packit |
a89ea5 |
return scalar @content;
|
|
Packit |
a89ea5 |
}
|
|
Packit |
a89ea5 |
|