diff options
Diffstat (limited to 'testsuite/vmstat.test')
-rw-r--r-- | testsuite/vmstat.test/vmstat.exp | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/testsuite/vmstat.test/vmstat.exp b/testsuite/vmstat.test/vmstat.exp new file mode 100644 index 0000000..48d0b0f --- /dev/null +++ b/testsuite/vmstat.test/vmstat.exp @@ -0,0 +1,57 @@ + +# +# Dejagnu tests for vmstat - part of procps + +set vmstat "${topdir}src/vmstat" + +# Tests that need to see /proc/vmstat +if { [ file readable "/proc/vmstat" ] == 0 } { + unsupported "vmstat with no arguments - /proc/vmstat is unreadable" + unsupported "vmstat with -a flag - /proc/vmstat is unreadable" + unsupported "vmstat fork option - /proc/vmstat is unreadable" +} else { + set test "vmstat with no arguments" + spawn $vmstat + expect_pass "$test" "^procs\[ -\]+memory\[ -\]+swap\[ -\]+io\[ -\]+system\[ -\]+cpu\[ -\]+\\s*r\\s+b\\s+swpd\\s+free\\s+buff\\s+cache\\s+si\\s+so\\s+bi\\s+bo\\s+in\\s+cs us sy id wa st gu\\s*\(\\s+\\d+\){18}\\s*$" + + set test "vmstat with -a flag" + spawn $vmstat -a + expect_pass "$test" "^procs\[ -\]+memory\[ -\]+swap\[ -\]+io\[ -\]+system\[ -\]+cpu\[ -\]+\\s*r\\s+b\\s+swpd\\s+free\\s+inact\\s+active\\s+si\\s+so\\s+bi\\s+bo\\s+in\\s+cs us sy id wa st gu\\s*\(\\s+\\d+\){18}\\s*$" + + set test "vmstat fork option" + spawn $vmstat -f + expect_pass "$test" "^\\s+\\d+ forks\\s*$" +} + +if { [ file readable "/proc/slabinfo" ] == 0 } { + unsupported "slabinfo (-m option) test disabled as /proc/slabinfo is unreadable" +} else { +set test "vmstat slabinfo (-m option)" +spawn $vmstat -m +expect_pass "$test" "^Cache\\s+Num\\s+Total\\s+Size\\s+Pages\\s+\(\\S+\\s+\\d+\\s+\\d+\\s+\\d+\\s+\\d+\\s*\){1,}" +} + +set test "vmstat disk information (-d option)" +if { [ file readable "/sys/block" ] == 0 } { + unsupported "$test /sys/block not readable" +} else { + set fp [open /proc/diskstats ] + if { [ read $fp ] == "" } { + close $fp + unsupported "$test /proc/diskstats empty" + } else { + close $fp + 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+" + + # Need a partition + set diskstats [ exec cat /proc/diskstats ] + 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)" + spawn $vmstat -p $partition + expect_pass "$test" "^${partition}\\s+reads" + } else { + unsupported "vmstat partition (cannot find partition)" + } + } +} |