#!perl
my
@commits
=
split
/\n/,
<<'EOC';
0ea3cb6 PERL-550 allow extra fields in DBRef documents
7335f60 PERL-527 Make DBRef 'db' optional; make all read-only
a36ddb6 PERL-546 remove 'client' and 'fetch' from DBRef
EOC
my
%ticket_map
;
for
my
$commit
(
@commits
) {
for
my
$ticket
(
$commit
=~ /PERL-(\d+)/g ) {
next
if
$ENV
{CHECK_JIRA_SKIP}
&&
grep
{
$ticket
eq
$_
}
split
" "
,
$ENV
{CHECK_JIRA_SKIP};
$ticket_map
{
$ticket
} ||= [];
push
@{
$ticket_map
{
$ticket
}},
$commit
;
}
}
open
my
$fh
,
"<:encoding(UTF-8)"
,
"Changes"
;
my
@content
=
grep
{ /^v0.999.999.3(?:\s+|$)/ ... /^\S/ } <
$fh
>;
shift
@content
;
pop
@content
while
(
@content
&&
$content
[-1] =~ /^(?:\S|\s*$)/ );
my
$changelog
=
join
(
" "
,
@content
);
my
@bad
;
for
my
$ticket
(
keys
%ticket_map
) {
if
(
index
(
$changelog
,
"PERL-$ticket"
) < 0 ) {
push
@bad
,
$ticket
;
}
}
if
( !
@commits
) {
pass(
"No commits with Jira tickets"
);
}
else
{
ok( !
scalar
@bad
,
"Jira tickets in Changes"
)
or diag
"Jira tickets missing:\n"
.
join
(
"\n"
,
map
{
" * $_"
}
map
{ @{
$ticket_map
{
$_
}} }
sort
{
$a
<=>
$b
}
@bad
);
}