File: 01_basic.t

package info (click to toggle)
libmodule-build-pluggable-cpanfile-perl 0.05-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 108 kB
  • sloc: perl: 65; makefile: 2
file content (83 lines) | stat: -rw-r--r-- 2,039 bytes parent folder | download
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
use strict;
use warnings;
use utf8;
use Test::More;
use Test::Module::Build::Pluggable;
use Module::Build::Pluggable::CPANfile;
use version;
use Capture::Tiny ':all';
use File::Spec;

if ( $^O eq 'MSWin32' ) {
    plan skip_all => 'Skip test on Windows';
}

require Module::Build;
my $support_test_requries = 
    ( version->parse($Module::Build::VERSION) >= version->parse('0.4004') ) ? 1 : 0;

my $test = Test::Module::Build::Pluggable->new();
$test->write_file('Build.PL', <<'...');
use strict;
use Module::Build::Pluggable (
    'CPANfile',
);
my $builder = Module::Build::Pluggable->new(
    dist_name => 'Eg',
    dist_version => 0.01,
    dist_abstract => 'test',
    dynamic_config => 0,
    module_name => 'Eg',
    requires => {},
    provides => {},
    author => 1,
    dist_author => 'test',
);
$builder->create_build_script();
...

$test->write_file('cpanfile', <<'...');
requires 'LWP::UserAgent' => '6.02';
requires 'HTTP::Message'  => '6.04';
suggests 'JSON' => '2.53';
on 'test' => sub {
   requires 'Test::More'     => '0.98';
   requires 'Test::Requires' => '0.06';
};
...
$test->write_file('MANIFEST', <<'...');
Build.PL
MANIFEST
...

my $stderr = capture_stderr { $test->run_build_pl() };
like $stderr, qr/not support 'suggests'/;
my $meta = $test->read_file(File::Spec->catfile('_build','prereqs'));
ok($meta);
my $prereqs = eval $meta;

is_deeply( $prereqs->{build_requires}, $support_test_requries ? {
        'Module::Build::Pluggable::CPANfile' => $Module::Build::Pluggable::CPANfile::VERSION,
    } : {
        'Test::More'     => '0.98',
        'Test::Requires' => '0.06',
        'Module::Build::Pluggable::CPANfile' => $Module::Build::Pluggable::CPANfile::VERSION,
    }
);

SKIP : {
    skip "You have Module::Build < 0.4004",1 if !$support_test_requries;
    is_deeply( $prereqs->{test_requires}, {
        'Test::More'     => '0.98',
        'Test::Requires' => '0.06',
    });
}

is_deeply( $prereqs->{requires}, {
    'LWP::UserAgent' => '6.02',
    'HTTP::Message'  => '6.04', 
});

done_testing();