aboutsummaryrefslogtreecommitdiff
path: root/src/tests/dejagnu/krb-root/rlogin.exp
diff options
context:
space:
mode:
Diffstat (limited to 'src/tests/dejagnu/krb-root/rlogin.exp')
-rw-r--r--src/tests/dejagnu/krb-root/rlogin.exp322
1 files changed, 0 insertions, 322 deletions
diff --git a/src/tests/dejagnu/krb-root/rlogin.exp b/src/tests/dejagnu/krb-root/rlogin.exp
deleted file mode 100644
index a0e8e4f..0000000
--- a/src/tests/dejagnu/krb-root/rlogin.exp
+++ /dev/null
@@ -1,322 +0,0 @@
-# Kerberos rlogin test.
-# This is a DejaGnu test script.
-# This script tests Kerberos rlogin.
-# Written by Ian Lance Taylor, Cygnus Support, <ian@cygnus.com>.
-
-# Find the programs we need. We use the binaries from the build tree
-# if they exist. If they do not, then they must be in PATH. We
-# expect $objdir to be .../kerberos/src.
-
-if ![info exists KRLOGIN] {
- set KRLOGIN [findfile $objdir/../../appl/bsd/rlogin]
-}
-
-if ![info exists KRLOGIND] {
- set KRLOGIND [findfile $objdir/../../appl/bsd/klogind]
-}
-
-if ![info exists LOGINKRB5] {
- set LOGINKRB5 [findfile $objdir/../../appl/bsd/login.krb5]
-}
-
-# Start up a root shell.
-if ![setup_root_shell rlogin] {
- return
-}
-
-# Make sure .k5login is reasonable.
-if ![check_k5login rlogin] {
- stop_root_shell
- return
-}
-
-# Set up the kerberos database.
-if {![get_hostname] \
- || ![setup_kerberos_files] \
- || ![setup_kerberos_env] \
- || ![setup_kerberos_db 0]} {
- stop_root_shell
- return
-}
-
-# A procedure to start up the rlogin daemon.
-
-proc start_rlogin_daemon { option } {
- global REALMNAME
- global KRLOGIND
- global LOGINKRB5
- global ROOT_PROMPT
- global tmppwd
- global hostname
- global rlogin_spawn_id
- global krlogind_pid
- global portbase
-
- # The -p argument tells it to accept a single connection, so we
- # don't need to use inetd. The 3543 is the port to listen at.
- # Note that tmppwd here is a shell variable, which is set in
- # setup_root_shell, not a TCL variable. The sh -c is to workaround
- # the broken controlling tty handling in hpux, and shouldn't hurt
- # anything else.
- send -i $rlogin_spawn_id "sh -c \"$KRLOGIND -k -c -D [expr 8 + $portbase] -S \$tmppwd/srvtab -M $REALMNAME -L $LOGINKRB5 $option\" &\r"
- expect {
- -i $rlogin_spawn_id
- -re "$ROOT_PROMPT" { }
- timeout {
- send_error "ERROR: timeout from rlogin $hostname -l root\n"
- return
- }
- eof {
- send_error "ERROR: eof from rlogin $hostname -l root\n"
- return
- }
- }
- send -i $rlogin_spawn_id "echo \$!\r"
- expect {
- -i $rlogin_spawn_id
- -re "\[0-9\]+" {
- set krlogind_pid $expect_out(0,string)
- verbose "krlogind process ID is $krlogind_pid"
- }
- timeout {
- send_error "ERROR: timeout from rlogin $hostname -l root\n"
- return
- }
- eof {
- send_error "ERROR: eof from rlogin $hostname -l root\n"
- return
- }
- }
- expect {
- -i $rlogin_spawn_id
- -re "$ROOT_PROMPT" { }
- timeout {
- send_error "ERROR: timeout from rlogin $hostname -l root\n"
- return
- }
- eof {
- send_error "ERROR: eof from rlogin $hostname -l root\n"
- return
- }
- }
-
- # Give the rlogin daemon a few seconds to get set up.
- sleep 2
-}
-
-# A procedure to stop the rlogin daemon.
-
-proc stop_rlogin_daemon { } {
- global krlogind_pid
-
- if [info exists krlogind_pid] {
- catch "exec kill $krlogind_pid"
- unset krlogind_pid
- }
-}
-
-# Wrap the tests in a procedure, so that we can kill the daemons if
-# we get some sort of error.
-
-proc rlogin_test { } {
- global REALMNAME
- global KRLOGIN
- global BINSH
- global SHELL_PROMPT
- global KEY
- global hostname
- global hostname
- global env
- global portbase
-
- # Start up the kerberos and kadmind daemons and get a srvtab and a
- # ticket file.
- if {![start_kerberos_daemons 0] \
- || ![add_kerberos_key host/$hostname 0] \
- || ![setup_srvtab 0] \
- || ![add_kerberos_key $env(USER) 0] \
- || ![kinit $env(USER) $env(USER)$KEY 0]} {
- return
- }
-
- # Start up the rlogin daemon.
- start_rlogin_daemon -k
-
- # Make an rlogin connection.
- spawn $KRLOGIN $hostname -k $REALMNAME -D [expr 8 + $portbase]
-
- expect_after {
- timeout {
- fail "$testname (timeout)"
- catch "expect_after"
- return
- }
- "onnection closed." {
- fail "$testname (connection closed)"
- catch "expect_after"
- return
- }
- eof {
- fail "$testname (eof)"
- catch "expect_after"
- return
- }
- }
-
- set testname "rlogin"
- expect {
- -re "$SHELL_PROMPT" {
- pass $testname
- }
- }
-
- # Switch to /bin/sh to try to avoid confusion from the shell
- # prompt.
- set testname "shell"
- send "$BINSH\r"
- expect "$BINSH"
- expect -re "$SHELL_PROMPT"
-
- set testname "date"
- send "date\r"
- expect "date"
- expect {
- -re "\[A-Za-z0-9 :\]+\[\r\n\]+" {
- if [check_date $expect_out(0,string)] {
- pass "date"
- } else {
- fail "date"
- }
- }
- }
- expect -re "$SHELL_PROMPT"
-
- set testname "exit"
- send "exit\r"
- expect -re "$SHELL_PROMPT"
- send "exit\r"
- expect {
- "onnection closed." {
- pass $testname
- }
- }
- # This last expect seems useless, but without it the rlogin process
- # sometimes hangs on HP-UX, in a tcsetattr call with TCSADRAIN.
- expect {
- "\r" { }
- }
-
- expect_after
-
- if [check_exit_status "exit status"] {
- pass "exit status"
- }
-
- # The rlogin daemon should have stopped, but we have no easy way
- # of checking whether it actually did. Kill it just in case.
- stop_rlogin_daemon
-
- # Try an encrypted connection.
- start_rlogin_daemon -e
- spawn $KRLOGIN $hostname -x -k $REALMNAME -D [expr 8 + $portbase]
-
- expect_after {
- timeout {
- fail "$testname (timeout)"
- catch "expect_after"
- return
- }
- "onnection closed" {
- fail "$testname (connection closed)"
- catch "expect_after"
- return
- }
- eof {
- fail "$testname (eof)"
- catch "expect_after"
- return
- }
- }
-
- set testname "encrypted rlogin"
- expect -re "encrypting .* transmissions"
- expect {
- -re "$SHELL_PROMPT" {
- pass $testname
- }
- }
-
- # Switch to /bin/sh to try to avoid confusion from the shell
- # prompt.
- set testname "shell"
- send "$BINSH\r"
- expect "$BINSH"
- expect -re "$SHELL_PROMPT"
-
- # Make sure the encryption is not destroying the text.
- set testname "echo"
- send "echo hello\r"
- expect "echo hello"
- expect "hello"
- expect {
- -re "$SHELL_PROMPT" {
- pass $testname
- }
- }
-
- # Send some characters which might cause an interrupt, and then
- # make sure we can still talk to the shell.
- set testname "interrupt characters"
- send "\003\177\034\r"
- expect -re "$SHELL_PROMPT"
- send "echo hello\r"
- expect "echo hello"
- expect "hello"
- expect {
- -re "$SHELL_PROMPT" {
- pass $testname
- }
- }
-
- set testname "~."
- send "~."
- expect {
- "Closed connection.\r" {
- pass $testname
- }
- "onnection closed" {
- pass $testname
- }
- }
-
- expect_after
-
- if [check_exit_status "exit status"] {
- pass "exit status"
- }
-
- # The rlogin daemon should have stopped, but we have no easy way
- # of checking whether it actually did. Kill it just in case.
- stop_rlogin_daemon
-}
-
-# Run the test. Logging in sometimes takes a while, so increase the
-# timeout.
-set oldtimeout $timeout
-set timeout 60
-set status [catch rlogin_test msg]
-set timeout $oldtimeout
-
-# Shut down the kerberos daemons, the rlogin daemon, and the root
-# process.
-stop_kerberos_daemons
-
-stop_rlogin_daemon
-
-stop_root_shell
-
-if { $status != 0 } {
- send_error "ERROR: error in rlogin.exp\n"
- send_error "$msg\n"
- exit 1
-}