7 use Test::More tests => 4;
10 use_ok('Linux::Proc::Maps');
11 use_ok('Linux::Proc::Maps', qw{read_maps write_maps parse_maps_single_line format_maps_single_line});
14 subtest read_maps => sub {
18 like($@, qr/filename or pid required/i, 'Die on missing argument');
20 eval { read_maps('missing-ebo3d1FHkKEAsGL3ZK89H5') };
21 like($@, qr/open failed/i, 'Die on open failed');
23 my $regions = read_maps(path('corpus/maps1')->absolute);
24 isa_ok($regions, 'ARRAY');
25 is(scalar @$regions, 20, 'Number of regions is correct');
26 # note explain $regions;
29 subtest parse_maps_single_line => sub {
33 my $line = '00400000-0040c000 r-xp 00000000 08:01 23624 /bin/cat';
34 my $region = parse_maps_single_line($line);
36 isa_ok($region, 'HASH');
38 address_end => 4243456,
39 address_start => 4194304,
44 pathname => '/bin/cat',
48 }, 'Region parses correctly');
49 # note explain $region;
53 my $line = '021d8000-021f9000 rw-p 00000000 00:00 0 [heap]';
54 my $region = parse_maps_single_line($line);
56 isa_ok($region, 'HASH');
57 is($region->{pathname}, '[heap]', 'Heap region identified');
61 my $line = '7f5d1a490000-7f5d1a494000 rw-p 00000000 00:00 0 ';
62 my $region = parse_maps_single_line($line);
64 isa_ok($region, 'HASH');
65 is($region->{pathname}, '', 'Pathname is optional');
69 my $line = '7f5d1a490000-7f5d1a494000 rw-p 00000000 00:00';
70 my $region = parse_maps_single_line($line);
72 is($region, undef, 'Missing inode correctly fails');