diff -r ba9ad363d185 -r 7e8df0715112 t/00-module.t --- a/t/00-module.t Wed Jul 27 23:07:42 2011 +0200 +++ b/t/00-module.t Wed Jul 27 23:23:47 2011 +0200 @@ -8,22 +8,37 @@ use_ok "BlockDev"; } +my %part; +{ + open(my $pp => "/proc/partitions"); + while (<$pp>) { chomp; + $. <= 2 and next; + my ($ma, $mi, $si, $dev) = split; + $part{$dev} = { major => $ma, + minor => $mi, + size => $si * 1024 }; + } +} + my @devices = BlockDev->list(); { # device list - my @proc = (); - open(my $fh, "/proc/partitions"); - while (<$fh>) { - /^\s*(\d+\s+){3}(?\S+)/ or next; - push @proc => $+{dev}; - } - is_deeply(\@devices => \@proc, "got all devices"); + is_deeply([sort @devices] => [sort keys %part], "got all devices"); } foreach (@devices) { + my $dev = BlockDev->new(dev => $_); isa_ok($dev, "BlockDev"); + ok(-b $dev->dev, "block device " . $dev->dev); + is($dev->major, $part{$_}{major}, "major $_"); + is($dev->minor, $part{$_}{minor}, "minor $_"); + SKIP: { + skip "need root permission" => 1 if $<; + is($dev->size, $part{$_}{size}, "size $part{$_}{size}"); + } + } done_testing();