blob: 832f239f63abd46b412cc54ee8f47df9506a4202 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
package Test::DH;
use strict;
use warnings;
use Test::More;
use Exporter qw(import);
use File::Basename qw(dirname);
my $ROOT_DIR;
BEGIN {
$ROOT_DIR = dirname(dirname(dirname(__FILE__)));
};
use lib "$ROOT_DIR/lib";
$ENV{PATH} = "$ROOT_DIR:$ENV{PATH}" if $ENV{PATH} !~ m{\Q$ROOT_DIR\E/?:};
use Debian::Debhelper::Dh_Lib;
our @EXPORT = qw(
each_compat_up_to_and_incl_subtest each_compat_subtest
each_compat_from_and_above_subtest
);
sub each_compat_up_to_and_incl_subtest($&) {
my ($compat, $code) = @_;
my $low = Debian::Debhelper::Dh_Lib::MIN_COMPAT_LEVEL;
error("compat $compat is no longer support! Min compat $low")
if $compat < $low;
subtest '' => sub {
while ($low <= $compat) {
$code->($low);
++$low;
}
};
return;
}
sub each_compat_from_and_above_subtest($&) {
my ($compat, $code) = @_;
my $lowest = Debian::Debhelper::Dh_Lib::MIN_COMPAT_LEVEL;
my $end = Debian::Debhelper::Dh_Lib::MAX_COMPAT_LEVEL;
if ($lowest > $compat) {
diag("Bumping $compat to $lowest ($compat is no longer supported)");
$compat = $lowest;
}
error("$compat is from the future! Max known is $end")
if $compat > $end;
subtest '' => sub {
while ($compat <= $end) {
$code->($compat);
++$compat;
}
};
return;
}
sub each_compat_subtest(&) {
unshift(@_, Debian::Debhelper::Dh_Lib::MIN_COMPAT_LEVEL);
goto \&each_compat_from_and_above_subtest;
}
1;
|