svn rev #22423: trunk/src/tests/dejagnu/krb-standalone/

tlyu@MIT.EDU tlyu at MIT.EDU
Thu Jun 25 22:44:42 EDT 2009


http://src.mit.edu/fisheye/changelog/krb5/?cs=22423
Commit By: tlyu
Log Message:
ticket: 6428

Add test case omitted in last commit.


Changed Files:
A   trunk/src/tests/dejagnu/krb-standalone/princexpire.exp
Added: trunk/src/tests/dejagnu/krb-standalone/princexpire.exp
===================================================================
--- trunk/src/tests/dejagnu/krb-standalone/princexpire.exp	2009-06-26 02:43:21 UTC (rev 22422)
+++ trunk/src/tests/dejagnu/krb-standalone/princexpire.exp	2009-06-26 02:44:41 UTC (rev 22423)
@@ -0,0 +1,105 @@
+proc doit { } {
+    global REALMNAME
+    global KLIST
+    global KINIT
+    global KDESTROY
+    global KEY
+    global KADMIN_LOCAL
+    global KTUTIL
+    global hostname
+    global tmppwd
+    global spawn_id
+    global supported_enctypes
+    global KRBIV
+    global portbase
+    global mode
+
+    set princ "expiredprinc"
+
+    # Start up the kerberos and kadmind daemons.
+    if ![start_kerberos_daemons 0] {
+	return 1
+    }
+
+    # Use kadmin to add a key.
+    if ![add_kerberos_key $princ 0] {
+	return 1
+    }
+
+    setup_kerberos_env kdc
+
+    set test "kadmin.local modprinc -expire"
+    spawn $KADMIN_LOCAL -q "modprinc -expire \"2 days ago\" $princ"
+    catch expect_after
+    expect {
+	timeout {
+	    fail $test
+	}
+	eof {
+	    pass $test
+	}
+    }
+    set k_stat [wait -i $spawn_id]
+    verbose "wait -i $spawn_id returned $k_stat ($test)"
+    catch "close -i $spawn_id"
+
+    set test "kadmin.local -pwexpire"
+    spawn $KADMIN_LOCAL -q "modprinc -pwexpire \"2 days ago\" $princ"
+    catch expect_after
+    expect {
+	timeout {
+	    fail $test
+	}
+	eof {
+	    pass $test
+	}
+    }
+    set k_stat [wait -i $spawn_id]
+    verbose "wait -i $spawn_id returned $k_stat ($test)"
+    catch "close -i $spawn_id"
+
+    setup_kerberos_env client
+    spawn $KINIT -5 -k -t /dev/null $princ
+    expect {
+	"entry in database has expired" {
+	    pass $test
+	}
+	"Password has expired" {
+	    fail "$test (inappropriate password expiration message)"
+	}
+	timeout {
+	    expect eof
+	    fail "$test (timeout)"
+	    return 0
+	}
+	eof {
+	    fail "$test (eof)"
+	    return 0
+	}
+    }
+    expect eof
+    return 0
+}
+
+run_once princexpire {
+    # Set up the Kerberos files and environment.
+    if {![get_hostname] || ![setup_kerberos_files] || ![setup_kerberos_env]} {
+	return
+    }
+    # Initialize the Kerberos database.  The argument tells
+    # setup_kerberos_db that it is not being called from
+    # standalone.exp.
+    if ![setup_kerberos_db 0] {
+	return
+    }
+
+    set status [catch doit msg]
+
+    stop_kerberos_daemons
+
+    if { $status != 0 } {
+	send_error "ERROR: error in pwchange.exp\n"
+	send_error "$msg\n"
+	exit 1
+    }
+}




More information about the cvs-krb5 mailing list