summaryrefslogtreecommitdiff
path: root/test/lib
diff options
context:
space:
mode:
authorHeiko Schlittermann (HS12-RIPE) <hs@schlittermann.de>2021-04-01 11:33:01 +0200
committerHeiko Schlittermann (HS12-RIPE) <hs@schlittermann.de>2021-04-01 11:34:20 +0200
commit47bc7a521803eaea0d6666c327f2e21e22eb920b (patch)
tree662c9f0ff9d22d1e3c3a7600baa1c107e5e6c87d /test/lib
parent701b5a89766772fe78539ea157eebe9f5687e1e4 (diff)
downloadexim4-47bc7a521803eaea0d6666c327f2e21e22eb920b.tar.gz
testsuite: provide cp() if File::Copy is too old.
Diffstat (limited to 'test/lib')
-rw-r--r--test/lib/Exim/Utils.pm13
1 files changed, 12 insertions, 1 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;