proc free_load { arg } { }
proc free_exit {} {}
proc free_version {} {
- set tmp [ exec free --version ]
+ global topdir
+ set tmp [ exec ${topdir}free --version ]
+ regexp "procps-ng version (\[0-9.\]*)" $tmp tmp version
+ clone_output "${topdir}free version $version\n"
+}
+
+# w functions
+proc w_load { arg } { }
+proc w_exit {} {}
+proc w_version {} {
+ global topdir
+ set tmp [ exec ${topdir}w -V ]
regexp "procps-ng version (\[0-9.\]*)" $tmp tmp version
- clone_output "free version $version\n"
+ clone_output "${topdir}w version $version\n"
}
#
timeout { pass "$testname" }
}
}
+
+proc make_testproc { } {
+ global testproc_path testproc_comm testproc1_pid testproc2_pid
+
+ set testproc_path [ exec mktemp -u ]
+ exec ln -s "/bin/sleep" $testproc_path
+ set testproc1_pid [ exec $testproc_path 600 & ]
+ set testproc2_pid [ exec $testproc_path 600 & ]
+ set testproc_comm [ exec basename $testproc_path ]
+ spawn readlink $testproc_path
+ expect {
+ -re "^/bin/sleep\\s*$" { }
+ timeout { perror "test proc does not link to sleep 1" }
+ eof { perror "test proc does not link to sleep 1" }
+ }
+}
--- /dev/null
+#
+# Dejagnu tests for w - part of procps
+#
+# FIXME - the user lines only go to idle
+set w "${topdir}w"
+
+set w_uptime "\\s+\\d{2}:\\d{2}:\\d{2} up (\\d+ days?,)\\s*\\d+(min|:\\d+), +\\d+ users, +load average: \[0-9.\]+, \[0-9.\]+, \[0-9.\]+\\s+"
+set w_std_header "${w_uptime}USER\\s+TTY\\s+LOGIN@\\s+IDLE\\s+JCPU\\s+PCPU\\s+WHAT\\s+"
+set w_short_header "${w_uptime}USER\\s+TTY\\s+IDLE\\s+WHAT\\s+"
+set w_from_header "${w_uptime}USER\\s+TTY\\s+FROM\\s+LOGIN@\\s+IDLE\\s+JCPU\\s+PCPU\\s+WHAT\\s+"
+set w_fromshort_header "${w_uptime}USER\\s+TTY\\s+FROM\\s+IDLE\\s+WHAT\\s+"
+
+set w_user "\[A-Za-z0-9_-\]+"
+set w_tty "\[a-z0-9/]+"
+set w_from "\[A-Za-z0-9.:-\]+"
+set w_login "\(\\d+\[A-Z\]\[a-z\]{2}\\d+\|\[A-Z\]\[a-z\]{2}\\d+\|\\d+:\\d+\)"
+set w_idle "\(\\?xdm\\?\|\\?\|\\d+days\|\\d+:\\d+m?\|\\d+.\\d+s\)"
+set w_ival7 "\(\\?\|\\d+days\|\\d+:\\d+m?\|\\d+.\\d+s\)"
+set w_what "\[A-Za-z0-9_\/\\-\]+"
+set w_std_userlines "\(${w_user}\\s+${w_tty}\\s+${w_login}\\s+${w_idle}\\s+${w_ival7}\\s+${w_ival7}\\s+${w_what}\\s*\){1,}"
+set w_short_userlines "\(${w_user}\\s+${w_tty}\\s+${w_idle}\\s+${w_what}\\s*\){1,}"
+set w_from_userlines "\(${w_user}\\s+${w_tty}\\s+${w_from}\\s+${w_login}\\s+${w_idle}\\s+${w_ival7}\\s+${w_ival7}\\s+${w_what}\\s*\){1,}"
+set w_fromshort_userlines "\(${w_user}\\s+${w_tty}\\s+${w_from}\\s+${w_idle}\\s+${w_what}\\s*\){1,}"
+
+set test "w with no arguments"
+spawn $w
+expect_pass "$test" "^${w_std_header}${w_std_userlines}"
+
+
+set test "w with no headers"
+spawn $w -h
+expect_pass "$test" "^${w_std_userlines}"
+
+set test "w with -u flag"
+spawn $w -u
+expect_pass "$test" "^${w_std_header}${w_std_userlines}"
+
+set test "w with short output"
+spawn $w -s
+expect_pass "$test" "^${w_short_header}${w_short_userlines}"
+
+set test "w with from flag"
+spawn $w -f
+expect_pass "$test" "^${w_from_header}${w_from_userlines}"
+
+set test "w with from and short flags"
+spawn $w -fs
+expect_pass "$test" "^${w_fromshort_header}${w_fromshort_userlines}"
+
+set test "w with short and from flags"
+spawn $w -sf
+expect_pass "$test" "^${w_fromshort_header}${w_fromshort_userlines}"
+