From 47bc7a521803eaea0d6666c327f2e21e22eb920b Mon Sep 17 00:00:00 2001 From: "Heiko Schlittermann (HS12-RIPE)" Date: Thu, 1 Apr 2021 11:33:01 +0200 Subject: [PATCH] testsuite: provide cp() if File::Copy is too old. --- test/lib/Exim/Utils.pm | 13 ++++++++++++- test/runtest | 3 +-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/test/lib/Exim/Utils.pm b/test/lib/Exim/Utils.pm index b744b0b43..1dbd2d0da 100644 --- a/test/lib/Exim/Utils.pm +++ b/test/lib/Exim/Utils.pm @@ -2,8 +2,9 @@ package Exim::Utils; use v5.10.1; use strict; use warnings; +use File::Copy; use parent 'Exporter'; -our @EXPORT_OK = qw(uniq numerically); +our @EXPORT_OK = qw(uniq numerically cp); sub uniq { @@ -13,4 +14,14 @@ sub uniq { sub numerically { $::a <=> $::b } +sub cp { + if ($File::Copy::VERSION >= 2.15) { # since Perl 5.11 we should have >= 2.15 + return File::Copy::cp(@_); + } + copy(@_) or return undef; + my ($src, $dst) = @_; + my @st = stat $src or return undef; + chmod($st[2]&07777, $dst); +} + 1; diff --git a/test/runtest b/test/runtest index 64a149322..c9a07e0f8 100755 --- a/test/runtest +++ b/test/runtest @@ -29,11 +29,10 @@ use File::Basename; use Pod::Usage; use Getopt::Long; use FindBin qw'$RealBin'; -use File::Copy qw(cp); use lib "$RealBin/lib"; use Exim::Runtest; -use Exim::Utils qw(uniq numerically); +use Exim::Utils qw(uniq numerically cp); use if $ENV{DEBUG} && scalar($ENV{DEBUG} =~ /\bruntest\b/) => 'Smart::Comments' => '####'; use if $ENV{DEBUG} && scalar($ENV{DEBUG} =~ /\bruntest\b/) => 'Data::Dumper'; -- 2.30.2