diff --git a/testsuite/config/unix.exp b/testsuite/config/unix.exp index eb984b81..b1d28fae 100644 --- a/testsuite/config/unix.exp +++ b/testsuite/config/unix.exp @@ -63,6 +63,46 @@ proc expect_table { test match_header match_items match_footer } { } } +proc expect_table_dsc { test match_header match_item } { + expect { + -re $match_header {} + default { + fail "$test (header)" + return + } + } + + set do_loop 1 + set last_value 999999 + set found_item 0 + while { $do_loop ==1 } { + expect { + -re $match_item { + set current_value $expect_out(1,string) + if { $current_value > $last_value } { + fail "$test (sorting $current_value > $last_value)" + return + } else { + set found_item 1 + set last_value $current_value + } + } + default { + if { $found_item == 0 } { + fail "$test (items)" + } else { + pass $test + } + return + } + } + } + #expect { + # -re $match_footer { pass $test } + # default { fail "$test (footer)" } + #} +} + proc make_testproc { } { # Time to run the whole job set sleep_time 300 diff --git a/testsuite/slabtop.test/slabtop.exp b/testsuite/slabtop.test/slabtop.exp new file mode 100644 index 00000000..92ca76c9 --- /dev/null +++ b/testsuite/slabtop.test/slabtop.exp @@ -0,0 +1,30 @@ +# +# Dehagnu testing for slabtop - part of procps +# +set slabtop ${topdir}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 "usage: $slabtop \\\[options\\\]" + +set sort_tests { + "a" "active objects" "^\\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" "^\\d+\\s+\\d+\\s+\\d+%\\s+\\d+\\.\\d+K\\s+\\d+\\s+\\d+\\s+(\\d+)K\\s+\\S\[^\r\]+\\s*" + "l" "number of slabs" "^\\d+\\s+\\d+\\s+\\d+%\\s+\\d+\\.\\d+K\\s+(\\d+)\\s+\\d+\\s+\\d+K\\s+\\S\[^\r\]+\\s*" + "o" "object count" "^(\\d+)\\s+\\d+\\s+\\d+%\\s+\\d+\\.\\d+K\\s+\\d+\\s+\\d+\\s+\\d+K\\s+\\S\[^\r\]+\\s*" + "s" "object size" "^\\d+\\s+\\d+\\s+\\d+%\\s+(\\d+\\.\\d+)K\\s+\\d+\\s+\\d+\\s+\\d+K\\s+\\S\[^\r\]+\\s*" + "u" "utilisation" "^\\d+\\s+\\d+\\s+(\\d+)%\\s+\\d+\\.\\d+K\\s+\\d+\\s+\\d+\\s+\\d+K\\s+\\S\[^\r\]+\\s*" + } +foreach { flag desc match } $sort_tests { + set test "slabtop sorted by $desc" + spawn $slabtop -o -s $flag + expect_table_dsc $test $slabtop_header $match +} +