summaryrefslogtreecommitdiff
path: root/testsuite/slabtop.test/slabtop.exp
blob: 2ef033607e4dfe29510dfb43ae80a2e393ef80ef (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#
# Dehagnu testing for slabtop - part of procps
#
set slabtop ${topdir}src/slabtop

set avst "Active / Total"
set used "\\\(% used\\\)\\s+:"
set pct "\\\(\\d+\\.\\d+%\\\)"

set slabtop_header "^ $avst Objects $used \\d+ / \\d+ ${pct}\\s+$avst Slabs $used \\d+ / \\d+ ${pct}\\s+$avst Caches $used \\d+ / \\d+ ${pct}\\s+$avst Size $used \\d+\\.\\d+K / \\d+\\.\\d+K ${pct}\\s+Minimum / Average / Maximum Object : \\d+\\.\\d+K / \\d+\\.\\d+K / \\d+\\.\\d+K\\s+OBJS ACTIVE  USE OBJ SIZE  SLABS OBJ/SLAB CACHE SIZE NAME\\s+"

set test "slabtop help"
spawn $slabtop --help
expect_pass $test "^\\s+Usage:\\s+\(lt-\)\?slabtop \\\[options\\\]"

set test "slabtop o then d options"
spawn $slabtop -o -d 10
expect_pass $test "Cannot combine -d and -o options"

set test "slabtop d then o options"
spawn $slabtop -d 10 -o
expect_pass $test "Cannot combine -d and -o options"

set sort_tests {
    "a" "active objects" "^\\s*\\d+\\s+(\\d+)\\s+\\d+%\\s+\\d+\\.\\d+K\\s+\\d+\\s+\\d+\\s+\\d+K\\s+\\S\[^\r\]+\\s*"
    "b" "objects per slab" "^\\s*\\d+\\s+\\d+\\s+\\d+%\\s+\\d+\\.\\d+K\\s+\\d+\\s+(\\d+)\\s+\\d+K\\s+\\S\[^\r\]+\\s*"
    "c" "cache size" "^\\s*\\d+\\s+\\d+\\s+\\d+%\\s+\\d+\\.\\d+K\\s+\\d+\\s+\\d+\\s+(\\d+)K\\s+\\S\[^\r\]+\\s*"
    "l" "number of slabs" "^\\s*\\d+\\s+\\d+\\s+\\d+%\\s+\\d+\\.\\d+K\\s+(\\d+)\\s+\\d+\\s+\\d+K\\s+\\S\[^\r\]+\\s*"
    "o" "object count" "^\\s*(\\d+)\\s+\\d+\\s+\\d+%\\s+\\d+\\.\\d+K\\s+\\d+\\s+\\d+\\s+\\d+K\\s+\\S\[^\r\]+\\s*"
    "s" "object size" "^\\s*\\d+\\s+\\d+\\s+\\d+%\\s+(\\d+\\.\\d+)K\\s+\\d+\\s+\\d+\\s+\\d+K\\s+\\S\[^\r\]+\\s*"
    "u" "utilisation" "^\\s*\\d+\\s+\\d+\\s+(\\d+)%\\s+\\d+\\.\\d+K\\s+\\d+\\s+\\d+\\s+\\d+K\\s+\\S\[^\r\]+\\s*"
 }

# BEGIN - Tests requiring /proc/slabinfo
if { [ file readable "/proc/slabinfo" ] == 0 } {
    unsupported "slabtop tests disabled as /proc/slabinfo is unreadable"
} else {

foreach { flag desc match } $sort_tests {
    set test "slabtop sorted by $desc"
    spawn $slabtop -o -s $flag
    expect_table_dsc $test $slabtop_header $match
}
}
# END - Tests requiring /proc/slabinfo