6 |
6 |
7 BEGIN { |
7 BEGIN { |
8 use_ok "BlockDev"; |
8 use_ok "BlockDev"; |
9 } |
9 } |
10 |
10 |
|
11 my %part; |
|
12 { |
|
13 open(my $pp => "/proc/partitions"); |
|
14 while (<$pp>) { chomp; |
|
15 $. <= 2 and next; |
|
16 my ($ma, $mi, $si, $dev) = split; |
|
17 $part{$dev} = { major => $ma, |
|
18 minor => $mi, |
|
19 size => $si * 1024 }; |
|
20 } |
|
21 } |
|
22 |
11 my @devices = BlockDev->list(); |
23 my @devices = BlockDev->list(); |
12 { # device list |
24 { # device list |
13 |
25 |
14 my @proc = (); |
26 is_deeply([sort @devices] => [sort keys %part], "got all devices"); |
15 open(my $fh, "/proc/partitions"); |
|
16 while (<$fh>) { |
|
17 /^\s*(\d+\s+){3}(?<dev>\S+)/ or next; |
|
18 push @proc => $+{dev}; |
|
19 } |
|
20 is_deeply(\@devices => \@proc, "got all devices"); |
|
21 } |
27 } |
22 |
28 |
23 foreach (@devices) { |
29 foreach (@devices) { |
|
30 |
24 my $dev = BlockDev->new(dev => $_); |
31 my $dev = BlockDev->new(dev => $_); |
25 isa_ok($dev, "BlockDev"); |
32 isa_ok($dev, "BlockDev"); |
|
33 |
26 ok(-b $dev->dev, "block device " . $dev->dev); |
34 ok(-b $dev->dev, "block device " . $dev->dev); |
|
35 is($dev->major, $part{$_}{major}, "major $_"); |
|
36 is($dev->minor, $part{$_}{minor}, "minor $_"); |
|
37 SKIP: { |
|
38 skip "need root permission" => 1 if $<; |
|
39 is($dev->size, $part{$_}{size}, "size $part{$_}{size}"); |
|
40 } |
|
41 |
27 } |
42 } |
28 |
43 |
29 done_testing(); |
44 done_testing(); |