Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -376,7 +376,7 @@ endif
test-cpan-release-acceptance: build
@mkdir -p build/reports
@log="build/reports/cpan-release-acceptance.log"; \
modules='PPR,Catalyst,Mojolicious,Image::ExifTool,DateTime,Template,DBIx::Class'; \
modules='PPR,Catalyst,Mojolicious,Image::ExifTool,DateTime,Template,DBIx::Class,Excel::Writer::XLSX'; \
echo "CPAN release acceptance log: $$log"; \
echo "Selected modules: $$modules" > "$$log"; \
echo "Commit: $$(git rev-parse --short HEAD)" >> "$$log"; \
Expand Down
7 changes: 4 additions & 3 deletions dev/tools/cpan_random_tester.pl
Original file line number Diff line number Diff line change
Expand Up @@ -84,8 +84,9 @@
# cap is extended when necessary so every exception gets its full soft timeout
# plus the configured idle grace period.
my %MODULE_TIMEOUT_SECONDS = (
'DBIx::Class' => 3600,
'Image::ExifTool' => 3600,
'DBIx::Class' => 3600,
'Excel::Writer::XLSX' => 7200,
'Image::ExifTool' => 3600,
);

# CPAN package index
Expand Down Expand Up @@ -2207,7 +2208,7 @@ sub print_usage {
- Targets are randomly chosen from modules that haven't passed yet
(or from --modules if specified).
- Dependencies discovered during a run are recorded too (PASS/FAIL).
- A few heavy targets (e.g. DBIx::Class) have a higher per-module timeout in the script.
- A few heavy targets (e.g. DBIx::Class and Excel::Writer::XLSX) have a higher per-module timeout in the script.
Their effective hard cap is also extended to include the configured idle
grace period, so a smaller global --max-runtime does not cancel the exception.
- Long targets are not killed merely for crossing --timeout if their output
Expand Down
10 changes: 9 additions & 1 deletion dev/tools/tests/cpan_random_tester_parser.t
Original file line number Diff line number Diff line change
Expand Up @@ -263,7 +263,15 @@ is(pass_percentage(8833, 8277), '51.6',
'pass percentage excludes skipped and standard-Perl-failed modules');
is(pass_percentage(0, 0), '0.0', 'empty pass/fail denominator is stable');

my %slow = ('Image::ExifTool' => 3600);
my %slow = (
'Excel::Writer::XLSX' => 7200,
'Image::ExifTool' => 3600,
);
is_deeply(
[effective_timeout_limits('Excel::Writer::XLSX', 120, 600, 300, \%slow)],
[7200, 7800],
'Excel::Writer::XLSX keeps its extended soft limit and idle grace',
);
is_deeply(
[effective_timeout_limits('Image::ExifTool', 120, 600, 300, \%slow)],
[3600, 4200],
Expand Down
2 changes: 1 addition & 1 deletion dev/tools/tests/cpan_release_acceptance_contract.t
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ open my $tf, '<', $tester or die "Cannot read $tester: $!";
my $tester_text = do { local $/; <$tf> };
close $tf;

my @modules = qw(PPR Catalyst Mojolicious Image::ExifTool DateTime Template DBIx::Class);
my @modules = qw(PPR Catalyst Mojolicious Image::ExifTool DateTime Template DBIx::Class Excel::Writer::XLSX);
like($make_text, qr/^test-cpan-release-acceptance: build$/m,
'release acceptance target builds before testing');
like($make_text, qr/--modules "\$\$modules".*--jobs 8 --strict-exit/s,
Expand Down
2 changes: 2 additions & 0 deletions docs/about/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ priorities and future plans.

## Work in progress

- Extend CPAN release acceptance coverage to Excel::Writer::XLSX with a timeout suitable for its large test suite.

- Restore `local` compatibility for tied hash and array elements, sparse
arrays, magic stashes, implicit `$_` foreach aliases (including early
return), and localized regex captures on both execution backends.
Expand Down
Loading