build-sys: Handle zero length diskstats in tests
vmstat -d testsuite will fail if your /proc/diskstats is present but zero length. While this seems buggy behaviour from lxcfs, its there and its a simple matter to test for it and skip those tests if we are run on a zero length /proc/diskstats system.
This commit is contained in:
parent
3dd1661a3d
commit
fc97889b2d
@ -35,15 +35,17 @@ set test "vmstat disk information (-d option)"
|
|||||||
if { [ file readable "/sys/block" ] == 0 } {
|
if { [ file readable "/sys/block" ] == 0 } {
|
||||||
unsupported "$test /sys/block not readable"
|
unsupported "$test /sys/block not readable"
|
||||||
} else {
|
} else {
|
||||||
|
set fp [open /proc/diskstats ]
|
||||||
|
if { [ read $fp ] == "" } {
|
||||||
|
close $fp
|
||||||
|
unsupported "$test /proc/diskstats empty"
|
||||||
|
} else {
|
||||||
|
close $fp
|
||||||
spawn $vmstat -d
|
spawn $vmstat -d
|
||||||
expect_pass "$test" "^disk\[ -\]+reads\[ -\]+writes\[ -\]+IO\[ -\]+\\s+total\\s+merged\\s+sectors\\s+ms\\s+total\\s+merged\\s+sectors\\s+ms\\s+cur\\s+sec\\s+"
|
expect_pass "$test" "^disk\[ -\]+reads\[ -\]+writes\[ -\]+IO\[ -\]+\\s+total\\s+merged\\s+sectors\\s+ms\\s+total\\s+merged\\s+sectors\\s+ms\\s+cur\\s+sec\\s+"
|
||||||
}
|
|
||||||
|
|
||||||
# Need a partition
|
# Need a partition
|
||||||
set diskstats [ exec cat /proc/diskstats ]
|
set diskstats [ exec cat /proc/diskstats ]
|
||||||
if { [ file readable "/sys/block" ] == 0 } {
|
|
||||||
unsupported "vmstat partition /sys/block not readable"
|
|
||||||
} else {
|
|
||||||
if [ regexp "\\s+\\d+\\s+\\d+\\s+\((?:hd|sd|vd)\[a-z\]\\d+\)\\s+\[0-9\]\[0-9\]+" $diskstats line partition == 1 ] {
|
if [ regexp "\\s+\\d+\\s+\\d+\\s+\((?:hd|sd|vd)\[a-z\]\\d+\)\\s+\[0-9\]\[0-9\]+" $diskstats line partition == 1 ] {
|
||||||
set test "vmstat partition (using $partition)"
|
set test "vmstat partition (using $partition)"
|
||||||
spawn $vmstat -p $partition
|
spawn $vmstat -p $partition
|
||||||
@ -51,4 +53,5 @@ if { [ file readable "/sys/block" ] == 0 } {
|
|||||||
} else {
|
} else {
|
||||||
unsupported "vmstat partition (cannot find partition)"
|
unsupported "vmstat partition (cannot find partition)"
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user