Skip to content
Draft
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 .github/workflows/testsuite.yml
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ jobs:
- name: perl -V
run: perl -V
- name: Install Dependencies
uses: perl-actions/install-with-cpm@v1
uses: perl-actions/install-with-cpanm@v1
with:
sudo: false
cpanfile: "cpanfile"
Expand Down
4 changes: 3 additions & 1 deletion Makefile.PL
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,9 @@ WriteMakefile(
'File::Slurper' => 0,
'File::Temp' => 0,
'File::Basename' => 0,
'Test2::Harness::Util::IPC' => 0,
# Test2::Harness::Util::IPC was renamed to Test2::Harness::IPC::Util.
# t/lib/Test/TMF.pm handles both at runtime; tests skip gracefully
# when neither is available, so no hard dependency is needed.
'Test::MockModule' => 0,
},
PREREQ_PM => {
Expand Down
3 changes: 2 additions & 1 deletion cpanfile
Original file line number Diff line number Diff line change
Expand Up @@ -20,5 +20,6 @@ on 'test' => sub {
requires 'File::Temp' => 0;
requires 'File::Path' => 0;
requires 'File::Basename' => 0;
requires 'Test2::Harness::Util::IPC' => 0;
# Test2::Harness::Util::IPC was renamed to Test2::Harness::IPC::Util.
# t/lib/Test/TMF.pm handles both at runtime and skips gracefully.
};
23 changes: 21 additions & 2 deletions t/lib/Test/TMF.pm
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,19 @@ use Fcntl qw/SEEK_CUR/;

use Cwd 'abs_path';

use Test2::Harness::Util::IPC qw/run_cmd/;
our $RUN_CMD_AVAILABLE;
BEGIN {
# Test2::Harness::Util::IPC was deprecated in favor of Test2::Harness::IPC::Util.
# On some Perl versions (e.g. 5.20), neither module may compile successfully —
# the old one is a broken deprecation shim and the new one isn't installed.
$RUN_CMD_AVAILABLE =
eval { require Test2::Harness::IPC::Util; Test2::Harness::IPC::Util->import('run_cmd'); 1 }
|| eval { require Test2::Harness::Util::IPC; Test2::Harness::Util::IPC->import('run_cmd'); 1 }
|| 0;
}

use Exporter 'import';
use Exporter ();
our @ISA = ('Exporter');
our @EXPORT = qw{

tmf_test_code
Expand All @@ -29,6 +39,15 @@ our @EXPORT = qw{

};

sub import {
my $class = shift;
unless ($RUN_CMD_AVAILABLE) {
require Test2::Tools::Basic;
Test2::Tools::Basic::plan( skip_all => "Test2::Harness IPC module not available (run_cmd)" );
}
$class->export_to_level( 1, $class, @_ );
}

our $TMP; # directory

sub _setup_tmp_dir {
Expand Down
Loading