aboutsummaryrefslogtreecommitdiff
path: root/src/kadmin/passwd/unit-test/lib/helpers.exp
diff options
context:
space:
mode:
Diffstat (limited to 'src/kadmin/passwd/unit-test/lib/helpers.exp')
-rw-r--r--src/kadmin/passwd/unit-test/lib/helpers.exp217
1 files changed, 0 insertions, 217 deletions
diff --git a/src/kadmin/passwd/unit-test/lib/helpers.exp b/src/kadmin/passwd/unit-test/lib/helpers.exp
deleted file mode 100644
index 25b71a2..0000000
--- a/src/kadmin/passwd/unit-test/lib/helpers.exp
+++ /dev/null
@@ -1,217 +0,0 @@
-#
-# $Id$
-#
-
-global s
-set s "\[\r\n\t\ \]"
-
-if {[info commands exp_version] != {}} {
- set exp_version_4 [regexp {^4} [exp_version]]
-} else {
- set exp_version_4 [regexp {^4} [expect_version]]
-}
-
-# Backward compatibility until we're using expect 5 everywhere
-if {$exp_version_4} {
- global wait_error_index wait_errno_index wait_status_index
- set wait_error_index 0
- set wait_errno_index 1
- set wait_status_index 1
-} else {
- set wait_error_index 2
- set wait_errno_index 3
- set wait_status_index 3
-}
-
-proc myfail { comment } {
- global mytest_name
- global mytest_status
- wait
- fail "$mytest_name: $comment"
- set mytest_status 1
-}
-
-proc mypass {} {
-}
-
-##
-## When you expect on an id, and eof is detected, the spawn_id is closed.
-## It may be waited for, but calling expect or close on this id is an ERROR!
-##
-
-proc mytest { name kpargs status args } {
- global spawn_id
- global timeout
- global mytest_name
- global mytest_status
- global wait_error_index wait_errno_index wait_status_index
-
- verbose "starting test: $name"
-
- set mytest_name "$name"
-
- eval kpasswd_start $kpargs
-
- # at the end, eof is success
-
- lappend args { eof { if {[regexp "\[\r\n\]$" $expect_out(buffer)] == 0} { myfail "final status message not newline-terminated" } } }
-
- # for each test argument....
- # rep invariant: when this foreach ends, the id is close'd, but
- # not wait'ed.
-
- foreach test $args {
- set mytest_status 0
-
- # treat the arg as an expect parameter
- # if failure, the process will be closed and waited.
-
- uplevel 1 "expect {
- $test
- timeout { close; myfail \"timeout\"}
- eof { myfail \"eof read before expected message string\" }
- }"
-
- if {$mytest_status == 1} { return }
- }
-
- # at this point, the id is closed and we can wait on it.
-
- set ret [wait]
- verbose "% Exit $ret" 1
- if {[lindex $ret $wait_error_index] == -1} {
- fail "$name: wait returned error [lindex $ret $wait_errno_index]"
- } else {
- if { [lindex $ret $wait_status_index] == $status ||
- (($status<0) && ([lindex $ret $wait_status_index] == ($status+256))) } {
- pass "$name"
- } else {
- fail "$name: unexpected return status [lindex $ret $wait_status_index], should be $status"
- }
- }
-}
-
-proc kinit { princ pass } {
- global env;
- global KINIT
- spawn -noecho $KINIT -5 $princ;
-
- expect {
- -re "Password for .*:\[^\n\]*$"
- {send "$pass\n"}
- timeout {puts "Timeout waiting for prompt" ; close }
- }
-
- # this necessary so close(1) in the child will not sleep waiting for
- # the parent, which is us, to read pending data.
-
- expect {
- eof {}
- }
- wait
-}
-
-proc kdestroy {} {
- global KDESTROY
- global errorCode errorInfo
- global env
-
- if {[info exists errorCode]} {
- set saveErrorCode $errorCode
- }
- if {[info exists errorInfo]} {
- set saveErrorInfo $errorInfo
- }
- catch "system $KDESTROY -5 2>/dev/null"
- if {[info exists saveErrorCode]} {
- set errorCode $saveErrorCode
- } elseif {[info exists errorCode]} {
- unset errorCode
- }
- if {[info exists saveErrorInfo]} {
- set errorInfo $saveErrorInfo
- } elseif {[info exists errorInfo]} {
- unset errorInfo
- }
-}
-
-global initerr_str
-global initerr_regexp
-set initerr_str "Cannot establish a session with the Kerberos administrative server for realm \[^\r\n\]*\\. "
-set initerr_regexp "Cannot establish a session with the Kerberos administrative server for$s+realm \[^\r\n\]*\\.$s+"
-
-proc test_win { args name princ pass1 { pass2 "\001\001" } } {
- global s
- global initerr_regexp
-
- if { $pass2 == "\001\001" } { set pass2 "$pass1" }
-
- mytest "$name" $args 0 {
- -re "Changing password for $princ.*\\.$s+Old password:\[^\n\]*$"
- { send "$pass1\n" }
- } {
- -re "Old Kerberos password is incorrect. Please try again."
- { close; myfail "Old password incorrect" }
- -re "${initerr_regexp}(.+\[^\r\n\t\ \])\r\n"
- { close; myfail "init error: $expect_out(1,string)" }
- -re "$s+New password:\[^\n\]*$"
- { send "$pass2\n" }
- -re "$s+.*$s+.*$s+.*$s+New password:\[^\n\]*$"
- { send "$pass2\n" }
- } {
- -re "$s+New password \\(again\\):\[^\n\]*$"
- { send "$pass2\n" }
- } {
- -re "$s+Kerberos password changed."
- { mypass }
- -re "$s+Password changed."
- { close; myfail "Wrong message on success." }
- }
-}
-
-proc test_initerr { args name princ pass status err } {
- global s
- global initerr_regexp
-
- regsub -all "$s+" $err "$s+" err2
-
- mytest "$name" $args $status {
- -re "Changing password for $princ.*\\.$s+Old password:\[^\n\]*$"
- { send "$pass\n" }
- } {
- -re "$err2"
- { mypass }
- -re "Old Kerberos password is incorrect. Please try again."
- { close; myfail "Old password incorrect" }
- -re "${initerr_regexp}(.+)\r\n"
- { close; myfail "init error: $expect_out(1,string)" }
- }
-}
-
-proc test_3pass { args name princ pass1 pass2 pass3 status err } {
- global s
- global initerr_regexp
-
- regsub -all "$s+" $err "$s+" err2
-
- mytest "$name" $args $status {
- -re "Changing password for $princ.*\\.$s+Old password:\[^\n\]*$"
- { send "$pass1\n" }
- } {
- -re "Old Kerberos password is incorrect. Please try again."
- { close; myfail "Old password incorrect" }
- -re "${initerr_regexp}(.+)\r\n"
- { close; myfail "init error: $expect_out(1,string)" }
- -re "$s+New password:\[^\n\]*$"
- { send "$pass2\n" }
- -re "$s+.*$s+.*$s+.*$s+New password:\[^\n\]*$"
- { send "$pass2\n" }
- } {
- -re "$s+New password \\(again\\):\[^\n\]*$"
- { send "$pass3\n" }
- } {
- -re "$s+$err2"
- { mypass }
- }
-}
-