t/00-module.t
branchmoose
changeset 3 7e8df0715112
parent 2 ba9ad363d185
equal deleted inserted replaced
2:ba9ad363d185 3:7e8df0715112
     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();