summaryrefslogtreecommitdiffstats
path: root/src/tests/dejagnu/krb-standalone
diff options
context:
space:
mode:
authorGreg Hudson <ghudson@mit.edu>2009-11-22 14:58:54 +0000
committerGreg Hudson <ghudson@mit.edu>2009-11-22 14:58:54 +0000
commit14590b7c281e1fbf68afec2f3f4104b87e6010f4 (patch)
treee3f6c44278d9a69c45fbabd4b93146a99aa29244 /src/tests/dejagnu/krb-standalone
parent829462f1ae36623021b57a03aa1e4e6bb2dfbb6d (diff)
downloadkrb5-14590b7c281e1fbf68afec2f3f4104b87e6010f4.tar.gz
krb5-14590b7c281e1fbf68afec2f3f4104b87e6010f4.tar.xz
krb5-14590b7c281e1fbf68afec2f3f4104b87e6010f4.zip
Unbundle applications into separate repository
Remove libpty, gssftp, telnet, and the bsd applications from the source tree, build system, and tests. Docs still need to be updated to remove mentions of the applications. The build system should be simplified now that we're down to one configure script and don't need some of the functionality currently in aclocal.m4. ticket: 6583 status: open git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@23305 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/tests/dejagnu/krb-standalone')
-rw-r--r--src/tests/dejagnu/krb-standalone/gssftp.exp507
-rw-r--r--src/tests/dejagnu/krb-standalone/rcp.exp231
-rw-r--r--src/tests/dejagnu/krb-standalone/rsh.exp294
3 files changed, 0 insertions, 1032 deletions
diff --git a/src/tests/dejagnu/krb-standalone/gssftp.exp b/src/tests/dejagnu/krb-standalone/gssftp.exp
deleted file mode 100644
index 42dc94c75..000000000
--- a/src/tests/dejagnu/krb-standalone/gssftp.exp
+++ /dev/null
@@ -1,507 +0,0 @@
-# Kerberos ftp test.
-# This is a DejaGnu test script.
-# This script tests Kerberos ftp.
-# Originally written by Ian Lance Taylor, Cygnus Support, <ian@cygnus.com>.
-# Modified bye Ezra Peisach for GSSAPI support.
-
-# 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/build/tests/dejagnu
-
-if ![info exists FTP] {
- set FTP [findfile $objdir/../../appl/gssftp/ftp/ftp]
-}
-
-if ![info exists FTPD] {
- set FTPD [findfile $objdir/../../appl/gssftp/ftpd/ftpd]
-}
-
-# A procedure to start up the ftp daemon.
-
-proc start_ftp_daemon { } {
- global FTPD
- global tmppwd
- global ftpd_spawn_id
- global ftpd_pid
- global portbase
-
- # The -p argument tells it to accept a single connection, so we
- # don't need to use inetd. Portbase+8 is the port to listen at.
- # We rely on KRB5_KTNAME being set to the proper keyfile as there is
- # no way to cleanly set it with the gssapi API.
- # The -U argument tells it to use an alternate ftpusers file (using
- # /dev/null will allow root to login regardless of /etc/ftpusers).
- # The -a argument requires authorization, to mitigate any
- # vulnerability introduced by circumventing ftpusers.
- spawn $FTPD -p [expr 8 + $portbase] -a -U /dev/null -r $tmppwd/krb5.conf
- set ftpd_spawn_id $spawn_id
- set ftpd_pid [exp_pid]
-
- # Give the ftp daemon a few seconds to get set up.
- sleep 2
-}
-
-# A procedure to stop the ftp daemon.
-
-proc stop_ftp_daemon { } {
- global ftpd_spawn_id
- global ftpd_pid
-
- if [info exists ftpd_pid] {
- catch "close -i $ftpd_spawn_id"
- catch "exec kill $ftpd_pid"
- catch "wait -i $ftpd_spawn_id"
- unset ftpd_pid
- }
-}
-
-# Test that a file was copied correctly.
-proc check_file { filename {bigfile 0}} {
- if ![file exists $filename] {
- verbose "$filename does not exist"
- send_log "$filename does not exist\n"
- return 0
- }
-
- set file [open $filename r]
- if { [gets $file line] == -1 } {
- verbose "$filename is empty"
- send_log "$filename is empty\n"
- close $file
- return 0
- }
-
- if ![string match "This file is used for ftp testing." $line] {
- verbose "$filename contains $line"
- send_log "$filename contains $line\n"
- close $file
- return 0
- }
-
- if {$bigfile} {
- # + 1 for the newline
- seek $file 1048577 current
- if { [gets $file line] == -1 } {
- verbose "$filename is truncated"
- send_log "$filename is truncated\n"
- close $file
- return 0
- }
-
- if ![string match "This file is used for ftp testing." $line] {
- verbose "$filename contains $line"
- send_log "$filename contains $line\n"
- close $file
- return 0
- }
- }
-
- if { [gets $file line] != -1} {
- verbose "$filename is too long ($line)"
- send_log "$filename is too long ($line)\n"
- close $file
- return 0
- }
-
- close $file
-
- return 1
-}
-
-#
-# Restore environment variables possibly set.
-#
-proc ftp_restore_env { } {
- global env
- global ftp_save_ktname
-
- catch "unset env(KRB5_KTNAME)"
- if [info exists ftp_save_ktname] {
- set env(KRB5_KTNAME) $ftp_save_ktname
- unset ftp_save_ktname
- }
-}
-
-# Wrap the tests in a procedure, so that we can kill the daemons if
-# we get some sort of error.
-
-proc ftp_test { } {
- global FTP
- global KEY
- global REALMNAME
- global hostname
- global localhostname
- global env
- global ftpd_spawn_id
- global ftpd_pid
- global spawn_id
- global tmppwd
- global ftp_save_ktname
- global portbase
-
- # Start up the kerberos and kadmind daemons and get a srvtab and a
- # ticket file.
- if {![start_kerberos_daemons 0] \
- || ![add_random_key ftp/$hostname 0] \
- || ![modify_principal ftp/$hostname -kvno 254] \
- || ![setup_srvtab 0 ftp] \
- || ![xst $tmppwd/srvtab ftp/$hostname]
- || ![xst $tmppwd/srvtab ftp/$hostname]
- || ![xst $tmppwd/srvtab ftp/$hostname]
- || ![do_klist_kt $tmppwd/srvtab "gssftp keytab list"]
- || ![add_kerberos_key $env(USER) 0] \
- || ![kinit $env(USER) $env(USER)$KEY 0]} {
- return
- }
- # Force the host key to exist, so we get consistent errors below.
- catch "add_random_key host/$hostname 0"
-
- #
- # Save settings of KRB5_KTNAME
- #
- if [info exists env(KRB5_KTNAME)] {
- set ftp_save_ktname $env(KRB5_KTNAME)
- }
-
- #
- # set KRB5_KTNAME *incorrectly*
- #
- set env(KRB5_KTNAME) FILE:$tmppwd/srvtabxx
- verbose "KRB5_KTNAME=$env(KRB5_KTNAME)"
-
- # Force some auth errors.
- set testname "ftp auth errors"
-
- # Start the ftp daemon.
- start_ftp_daemon
-
- # Try connecting.
- spawn $FTP -d -v $hostname [expr 8 + $portbase]
- expect_after {
- -re "--->\[^\r\n\]*\r\n" { exp_continue }
- -re "encoding \[0-9\]* bytes MIC \[a-zA-Z0-9/+=\]*\r\n" { exp_continue }
- -re "sealed \[A-Z()\]*" { exp_continue }
- -re "secure_command\[A-Z()\]*" { exp_continue }
- timeout {
- fail "$testname (timeout)"
- catch "expect_after"
- return
- }
- eof {
- fail "$testname (eof)"
- catch "expect_after"
- return
- }
- }
- expect -nocase "connected to $hostname"
- expect -nocase -re "$localhostname.*ftp server .version \[0-9.\]*. ready."
- expect -re "Using authentication type GSSAPI; ADAT must follow"
- expect "GSSAPI accepted as authentication type"
- expect -re "Trying to authenticate to <ftp@.*>"
- # The ftp client doesn't print the gssapi error except on the last attempt.
-# expect "GSSAPI error major: Unspecified GSS failure."
-# expect -re "GSSAPI error minor: Key table file '.*' not found"
- expect -re "Trying to authenticate to <host@.*>"
- expect "GSSAPI error major: Unspecified GSS failure."
- expect -re "GSSAPI error minor: Key table file '.*' not found"
- expect -re "Name (.*): "
- close -i $spawn_id
- wait -i $spawn_id
- wait -i $ftpd_spawn_id
- catch "close -i $ftpd_spawn_id"
-
- #
- # set KRB5_KTNAME correctly now
- #
- set env(KRB5_KTNAME) FILE:$tmppwd/srvtab
- verbose "KRB5_KTNAME=$env(KRB5_KTNAME)"
-
- # Start the ftp daemon.
- start_ftp_daemon
-
- # Make an ftp client connection to it.
- spawn $FTP -d -v $hostname [expr 8 + $portbase]
-
- expect_after {
- "GSSAPI authentication failed" {
- fail "$testname (auth failed)"
- catch "expect_after"
- return
- }
- -re "--->\[^\r\n\]*\r\n" { exp_continue }
- -re "encoding \[0-9\]* bytes MIC \[a-zA-Z0-9/+=\]*\r\n" { exp_continue }
- -re "sealed \[A-Z()\]*" { exp_continue }
- -re "secure_command\[A-Z()\]*" { exp_continue }
- timeout {
- fail "$testname (timeout)"
- catch "expect_after"
- return
- }
- eof {
- fail "$testname (eof)"
- catch "expect_after"
- return
- }
- }
-
- set testname "ftp connection"
- expect -nocase "connected to $hostname"
- expect -nocase -re "$localhostname.*ftp server .version \[0-9.\]*. ready."
- expect -re "Using authentication type GSSAPI; ADAT must follow"
- expect "GSSAPI accepted as authentication type"
- expect {
- "GSSAPI authentication succeeded" { pass "ftp authentication" }
- eof { fail "ftp authentication" ; catch "expect_after" ; return }
- }
- expect -nocase "name ($hostname:$env(USER)): "
- send "$env(USER)\r"
- expect "GSSAPI user $env(USER)@$REALMNAME is authorized as $env(USER)"
- expect "Remote system type is UNIX."
- expect "Using binary mode to transfer files."
- expect "ftp> " {
- pass $testname
- }
-
- set testname "binary"
- send "binary\r"
- expect "ftp> " {
- pass $testname
- }
-
- set testname "status"
- send "status\r"
- expect -nocase "connected to $hostname."
- expect "Authentication type: GSSAPI"
- expect "ftp> " {
- pass $testname
- }
-
- set testname "ls"
- send "ls $tmppwd/ftp-test\r"
- expect -re "Opening ASCII mode data connection for .*ls."
- expect -re ".* $tmppwd/ftp-test"
- expect "ftp> " {
- pass $testname
- }
-
- set testname "nlist"
- send "nlist $tmppwd/ftp-test\r"
- expect -re "Opening ASCII mode data connection for file list."
- expect -re "$tmppwd/ftp-test"
- expect -re ".* Transfer complete."
- expect "ftp> " {
- pass $testname
- }
-
- set testname "ls missing"
- send "ls $tmppwd/ftp-testmiss\r"
- expect -re "Opening ASCII mode data connection for .*ls."
- expect {
- -re "$tmppwd/ftp-testmiss not found" {}
- -re "$tmppwd/ftp-testmiss: No such file or directory"
- }
- expect "ftp> " {
- pass $testname
- }
-
-
- set testname "get"
- catch "exec rm -f $tmppwd/copy"
- send "get $tmppwd/ftp-test $tmppwd/copy\r"
- expect "Opening BINARY mode data connection for $tmppwd/ftp-test"
- expect "Transfer complete"
- expect -re "\[0-9\]+ bytes received in \[0-9.e-\]+ seconds"
- expect "ftp> "
- if [check_file $tmppwd/copy] {
- pass $testname
- } else {
- fail $testname
- }
-
- set testname "put"
- catch "exec rm -f $tmppwd/copy"
- send "put $tmppwd/ftp-test $tmppwd/copy\r"
- expect "Opening BINARY mode data connection for $tmppwd/copy"
- expect "Transfer complete"
- expect -re "\[0-9\]+ bytes sent in \[0-9.e-\]+ seconds"
- expect "ftp> "
- if [check_file $tmppwd/copy] {
- pass $testname
- } else {
- fail $testname
- }
-
- set testname "cd"
- send "cd $tmppwd\r"
- expect "CWD command successful."
- expect "ftp> " {
- pass $testname
- }
-
- set testname "lcd"
- send "lcd $tmppwd\r"
- expect "Local directory now $tmppwd"
- expect "ftp> " {
- pass $testname
- }
-
- set testname "local get"
- catch "exec rm -f $tmppwd/copy"
- send "get ftp-test copy\r"
- expect "Opening BINARY mode data connection for ftp-test"
- expect "Transfer complete"
- expect -re "\[0-9\]+ bytes received in \[0-9.e-\]+ seconds"
- expect "ftp> "
- if [check_file $tmppwd/copy] {
- pass $testname
- } else {
- fail $testname
- }
-
- set testname "big local get"
- catch "exec rm -f $tmppwd/copy"
- send "get bigftp-test copy\r"
- expect "Opening BINARY mode data connection for bigftp-test"
- expect "Transfer complete"
- expect -re "\[0-9\]+ bytes received in \[0-9.e-\]+ seconds"
- expect "ftp> "
- if [check_file $tmppwd/copy 1] {
- pass $testname
- } else {
- fail $testname
- }
-
- set testname "start encryption"
- send "private\r"
- expect "Data channel protection level set to private"
- expect "ftp> " {
- pass $testname
- }
-
- set testname "status"
- send "status\r"
- expect "Protection Level: private"
- expect "ftp> " {
- pass $testname
- }
-
- set testname "encrypted get"
- catch "exec rm -f $tmppwd/copy"
- send "get ftp-test copy\r"
- expect "Opening BINARY mode data connection for ftp-test"
- expect "Transfer complete"
- expect -re "\[0-9\]+ bytes received in \[0-9.e-\]+ seconds"
- expect "ftp> "
- if [check_file $tmppwd/copy] {
- pass $testname
- } else {
- fail $testname
- }
-
- set testname "big encrypted get"
- catch "exec rm -f $tmppwd/copy"
- send "get bigftp-test copy\r"
- expect "Opening BINARY mode data connection for bigftp-test"
- expect {
- -timeout 300
- "Transfer complete" {}
- -re "Length .* of PROT buffer > PBSZ" {
- fail "$testname (PBSZ)"
- return 0
- }
- }
- expect -re "\[0-9\]+ bytes received in \[0-9.e+-\]+ seconds"
- expect "ftp> "
- if [check_file $tmppwd/copy 1] {
- pass $testname
- } else {
- fail $testname
- }
-
- set testname "close"
- send "close\r"
- expect "Goodbye."
- expect "ftp> "
- set status_list [wait -i $ftpd_spawn_id]
- verbose "wait -i $ftpd_spawn_id returned $status_list ($testname)"
- catch "close -i $ftpd_spawn_id"
- if { [lindex $status_list 2] != 0 || [lindex $status_list 3] != 0 } {
- send_log "exit status: $status_list\n"
- verbose "exit status: $status_list"
- fail $testname
- } else {
- pass $testname
- unset ftpd_pid
- }
-
- set testname "quit"
- send "quit\r"
- expect_after
- expect eof
- if [check_exit_status $testname] {
- pass $testname
- }
-}
-
-run_once gssftp {
- # Make sure .klogin is reasonable.
- if ![check_k5login ftp] {
- return
- }
-
- # Set up the kerberos database.
- if {![get_hostname] \
- || ![setup_kerberos_files] \
- || ![setup_kerberos_env] \
- || ![setup_kerberos_db 0]} {
- return
- }
-
- # Create a file to use for ftp testing.
- set file [open $tmppwd/ftp-test w]
- puts $file "This file is used for ftp testing."
- close $file
-
- # Create a large file to use for ftp testing. File needs to be
- # larger that 2^20 or 1MB for PBSZ testing.
- set file [open $tmppwd/bigftp-test w]
- puts $file "This file is used for ftp testing.\n"
- seek $file 1048576 current
- puts $file "This file is used for ftp testing."
- close $file
-
- # The ftp client will look in $HOME/.netrc for the user name to use.
- # To avoid confusing the testsuite, point $HOME at a directory where
- # we know there is no .netrc file.
- if [info exists env(HOME)] {
- set home $env(HOME)
- } elseif [info exists home] {
- unset home
- }
- set env(HOME) $tmppwd
-
- # Run the test. Logging in sometimes takes a while, so increase the
- # timeout.
- set oldtimeout $timeout
- set timeout 60
- set status [catch ftp_test msg]
- set timeout $oldtimeout
-
- # Shut down the kerberos daemons and the ftp daemon.
- stop_kerberos_daemons
-
- stop_ftp_daemon
-
- ftp_restore_env
-
- # Reset $HOME, for safety in case we are going to run more tests.
- if [info exists home] {
- set env(HOME) $home
- } else {
- unset env(HOME)
- }
-
- if { $status != 0 } {
- perror "error in gssftp.exp: $msg"
- }
-}
diff --git a/src/tests/dejagnu/krb-standalone/rcp.exp b/src/tests/dejagnu/krb-standalone/rcp.exp
deleted file mode 100644
index ab6a2c993..000000000
--- a/src/tests/dejagnu/krb-standalone/rcp.exp
+++ /dev/null
@@ -1,231 +0,0 @@
-# Kerberos rcp test.
-# This is a DejaGnu test script.
-# This script tests Kerberos rcp.
-# 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 RCP] {
- set RCP [findfile $objdir/../../appl/bsd/rcp]
-}
-
-if ![info exists KRSHD] {
- set KRSHD [findfile $objdir/../../appl/bsd/kshd]
-}
-
-# Remove old wrapper script
- catch "exec rm -f $tmppwd/rcp"
-
-# Make sure .k5login is reasonable.
-if ![check_k5login rcp] {
- return
-}
-
-# Set up the kerberos database.
-if {![get_hostname] \
- || ![setup_kerberos_files] \
- || ![setup_kerberos_env] \
- || ![setup_kerberos_db 0]} {
- return
-}
-
-# A procedure to start up the rsh daemon (rcp talks to the rsh
-# daemon).
-
-proc start_rsh_daemon { } {
- global REALMNAME
- global KRSHD T_INETD
- global RCP
- global tmppwd
- global krshd_spawn_id
- global krshd_pid
- global portbase
-
- # Setup the shared library wrapper for login.krb5
- if ![file exists $tmppwd/rcp] {
- setup_wrapper $tmppwd/rcp "$RCP $*"
- }
-
-
- # The -L ENV_SET is for the I/S Athena brokeness in dot files where
- # LD_LIBRARY_PATH will be overridden causing the "exec csh -c rcp ..."
- # to fail as the .cshrc is read in. We do not use the -f option as
- # a users shell might be sh...
- # Later a proper fix would be to have kshd exec rcp directly
- # shell indirection...
- spawn $T_INETD [expr 8 + $portbase] $KRSHD $KRSHD -k -c -P $tmppwd -S $tmppwd/srvtab -M $REALMNAME -L ENV_SET
- set krshd_spawn_id $spawn_id
- set krshd_pid [exp_pid]
-
- expect {
- -ex "Ready!" { }
- eof { error "couldn't start t_inetd helper" }
- }
-}
-
-# A procedure to stop the rsh daemon.
-
-proc stop_rsh_daemon { } {
- global krshd_spawn_id
- global krshd_pid
-
- if [info exists krshd_pid] {
- catch "exec kill $krshd_pid"
- catch {
- expect {
- -i $krshd_spawn_id
- -re ..* { exp_continue }
- eof {}
- }
- }
- catch "close -i $krshd_spawn_id"
- catch "wait -i $krshd_spawn_id"
- unset krshd_pid
- }
-}
-
-# Create a file to use for rcp testing.
-set file [open $tmppwd/rcp-test w]
-puts $file "This file is used for rcp testing."
-close $file
-
-# Test that a file was copied correctly.
-proc check_file { filename } {
- if ![file exists $filename] {
- verbose "$filename does not exist"
- send_log "$filename does not exist\n"
- return 0
- }
-
- set file [open $filename r]
- if { [gets $file line] == -1 } {
- verbose "$filename is empty"
- send_log "$filename is empty\n"
- close $file
- return 0
- }
-
- if ![string match "This file is used for rcp testing." $line] {
- verbose "$filename contains $line"
- send_log "$filename contains $line\n"
- close $file
- return 0
- }
-
- if { [gets $file line] != -1} {
- verbose "$filename is too long ($line)"
- send_log "$filename is too long ($line)\n"
- close $file
- return 0
- }
-
- close $file
-
- return 1
-}
-
-# Test copying one file to another.
-proc rcp_one_test { testname options frompref topref } {
- global REALMNAME
- global RCP
- global tmppwd
- global portbase
-
- send_log "rm -f $tmppwd/copy\n"
- verbose "exec rm -f $tmppwd/copy"
- catch "exec rm -f $tmppwd/copy"
-
- set from [format "%s%s" $frompref $tmppwd/rcp-test]
- set to [format "%s%s" $topref $tmppwd/copy]
-
- send_log "$RCP $options -D [expr 8 + $portbase] -N -k $REALMNAME $from $to\n"
- verbose "$RCP $options -D [expr 8 + $portbase] -N -k $REALMNAME $from $to"
- catch "exec $RCP $options -D [expr 8 + $portbase] -N -k $REALMNAME $from $to" exec_output
-
- if ![string match "" $exec_output] {
- send_log "$exec_output\n"
- verbose "$exec_output"
- fail $testname
- return 0
- }
-
- if ![check_file $tmppwd/copy] {
- fail $testname
- return 0
- }
-
- pass $testname
-
- return 1
-}
-
-# Wrap the tests in a procedure, so that we can kill the daemons if
-# we get some sort of error.
-
-proc rcp_test { } {
- global RCP
- global KEY
- global hostname
- global hostname
- global env
-
- # 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
- }
-
- rcp_one_test "local rcp" "" "" ""
-
- start_rsh_daemon
- rcp_one_test "rcp from" "" "$hostname:" ""
- stop_rsh_daemon
-
- start_rsh_daemon
- rcp_one_test "rcp to" "" "" "$hostname:"
- stop_rsh_daemon
-
- # Doing rcp between two hosts actually just executes rsh rcp on
- # the source. We could test this, but we're not set up for it
- # right now. Also, it's pretty much covered by the other rcp
- # tests and by the rsh tests.
- # start_rsh_daemon
- # rcp_one_test "rcp between" "" "$hostname:" "$hostname:"
- # stop_rsh_daemon
-
- start_rsh_daemon
- rcp_one_test "encrypted rcp from" "-x -c $env(KRB5CCNAME) -C $env(KRB5_CONFIG)" "$hostname:" ""
- stop_rsh_daemon
-
- start_rsh_daemon
- rcp_one_test "encrypted rcp to" "-x -c $env(KRB5CCNAME) -C $env(KRB5_CONFIG)" "" "$hostname:"
- stop_rsh_daemon
-
- # Doing rcp between two hosts actually just executes rsh rcp on
- # the source. We could test this, but we're not set up for it
- # right now. Also, it's pretty much covered by the other rcp
- # tests and by the rsh tests.
- # start_rsh_daemon
- # rcp_one_test "encrypted rcp between" "-x" "$hostname:" "$hostname:"
- # stop_rsh_daemon
-}
-
-# Run the test.
-set status [catch rcp_test msg]
-
-# Shut down the kerberos daemons and the rsh daemon.
-stop_kerberos_daemons
-
-stop_rsh_daemon
-
-if { $status != 0 } {
- send_error "ERROR: error in rcp.exp\n"
- send_error "$msg\n"
- exit 1
-}
diff --git a/src/tests/dejagnu/krb-standalone/rsh.exp b/src/tests/dejagnu/krb-standalone/rsh.exp
deleted file mode 100644
index 050a71c91..000000000
--- a/src/tests/dejagnu/krb-standalone/rsh.exp
+++ /dev/null
@@ -1,294 +0,0 @@
-# Kerberos rsh test.
-# This is a DejaGnu test script.
-# This script tests Kerberos rsh.
-# 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 RSH] {
- set RSH [findfile $objdir/../../appl/bsd/rsh]
-}
-
-if ![info exists KRSHD] {
- set KRSHD [findfile $objdir/../../appl/bsd/kshd]
-}
-
-if ![info exists KLIST] {
- set KLIST [findfile $objdir/../../clients/klist/klist]
-}
-
-# Make sure .k5login is reasonable.
-if ![check_k5login rsh] {
- return
-}
-
-# Set up the kerberos database.
-if {![get_hostname] \
- || ![setup_kerberos_files] \
- || ![setup_kerberos_db 0]} {
- return
-}
-
-# A procedure to start up the rsh daemon.
-
-proc start_rsh_daemon { option } {
- global REALMNAME
- global KRSHD T_INETD
- global tmppwd
- global krshd_spawn_id
- global krshd_pid
- global portbase
-
- spawn $T_INETD [expr 8 + $portbase] $KRSHD $KRSHD -k -c -S $tmppwd/srvtab -M $REALMNAME -A $option
- set krshd_spawn_id $spawn_id
- set krshd_pid [exp_pid]
-
- expect {
- -ex "Ready!" { }
- eof { error "couldn't start t_inetd helper" }
- }
-}
-
-# A procedure to stop the rsh daemon.
-
-proc stop_rsh_daemon { } {
- global krshd_spawn_id
- global krshd_pid
-
- if [info exists krshd_pid] {
- catch "exec kill $krshd_pid"
- catch {
- expect {
- -i $krshd_spawn_id
- -re ..* { exp_continue }
- eof {}
- }
- }
- catch "close -i $krshd_spawn_id"
- catch "wait -i $krshd_spawn_id"
- unset krshd_pid
- }
-}
-
-# Wrap the tests in a procedure, so that we can kill the daemons if
-# we get some sort of error.
-
-proc rsh_test { } {
- global REALMNAME
- global KLIST
- global RSH
- global KEY
- global BINSH
- global hostname
- global env
- global spawn_id
- global tmppwd
- 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] \
- || ![setup_kerberos_env client] \
- || ![kinit $env(USER) $env(USER)$KEY 0]} {
- return
- }
-
- # Start up the rsh daemon.
- start_rsh_daemon -k
-
- # Run rsh date.
- set testname "date"
- spawn $RSH $hostname -k $REALMNAME -D [expr 8 + $portbase] -A date
- expect {
- -re "\[A-Za-z0-9\]+ \[A-Za-z0-9\]+ +\[0-9\]+ \[0-9\]+:\[0-9\]+:\[0-9\]+ \[A-Za-z0-9\]+ \[0-9\]+\r\n" {
- set result $expect_out(0,string)
- }
- timeout {
- fail "$testname (timeout)"
- return
- }
- eof {
- fail "$testname (eof)"
- return
- }
- }
- expect eof
- if ![check_exit_status $testname] {
- return
- }
-
- if [check_date $result] {
- pass $testname
- } else {
- fail $testname
- }
-
- # The rsh daemon should have stopped, but we have no easy way
- # of checking whether it actually did. Kill it just in case.
- stop_rsh_daemon
-
- # Check encrypted rsh.
- set failed no
- start_rsh_daemon -ek
- set testname "encrypted rsh"
- spawn $RSH $hostname -x -k $REALMNAME -D [expr 8 + $portbase] -A echo hello
- expect {
- "hello" { expect eof }
- timeout {
- fail "$testname (timeout)"
- set failed yes
- }
- eof {
- fail "$testname (eof)"
- set failed yes
- }
- }
-
- catch "expect eof"
- if { $failed == "no" } {
- if ![check_exit_status $testname] {
- return
- }
- pass $testname
- stop_rsh_daemon
- } else {
- catch "wait -i $spawn_id"
- catch "close -i $spawn_id"
- stop_rsh_daemon
- }
-
- # Check ticket forwarding
- set failed no
- start_rsh_daemon -k
- set testname "rsh forwarding tickets"
-
- # We need a wrapper for klist in order to setup for shared library
- # runtime environment
- setup_wrapper $tmppwd/klist.wrap $KLIST
-
- spawn $RSH $hostname -f -k $REALMNAME -D [expr 8 + $portbase] -A $BINSH -c $tmppwd/klist.wrap
- expect {
- "Ticket cache:*\r" {
- expect eof
- }
- "klist: No credentials cache file found" {
- fail "$testname (not forwarded)"
- return
- }
- timeout {
- fail "$testname (timeout)"
- return
- }
- eof {
- fail "$testname (eof)"
- return
- }
- }
-
- if ![check_exit_status $testname] {
- return
- }
-
- pass $testname
-
- stop_rsh_daemon
-
- # Check encrypted ticket forwarding
- set failed no
- start_rsh_daemon -e
- set testname "encrypted rsh forwarding tickets"
- spawn $RSH $hostname -x -f -k $REALMNAME -D [expr 8 + $portbase] -A $BINSH -c $tmppwd/klist.wrap
- expect {
- "Ticket cache:*\r" {
- expect eof
- }
- "klist: No credentials cache file found" {
- fail "$testname (not forwarded)"
- return
- }
- timeout {
- fail "$testname (timeout)"
- return
- }
- eof {
- fail "$testname (eof)"
- return
- }
- }
-
- if ![check_exit_status $testname] {
- return
- }
-
- pass $testname
-
- stop_rsh_daemon
-
- # Check stderr
- start_rsh_daemon -k
- set testname "rsh to stderr"
- spawn $RSH $hostname -k $REALMNAME -D [expr 8 + $portbase] -A $BINSH -c "'echo hello 1>&2'"
- expect {
- "hello" { expect eof }
- timeout {
- fail "$testname (timeout)"
- return
- }
- eof {
- fail "$testname (eof)"
- return
- }
- }
-
- if ![check_exit_status $testname] {
- return
- }
-
- pass $testname
-
- stop_rsh_daemon
-
- start_rsh_daemon -e
- set testname "encrypted rsh to stderr"
- spawn $RSH $hostname -x -k $REALMNAME -D [expr 8 + $portbase] -A $BINSH -c "'echo hello 1>&2'"
- expect {
- "hello" { expect eof }
- timeout {
- fail "$testname (timeout)"
- return
- }
- eof {
- fail "$testname (eof)"
- return
- }
- }
-
- if ![check_exit_status $testname] {
- return
- }
-
- pass $testname
-
- # The rsh daemon should have stopped, but we have no easy way
- # of checking whether it actually did. Kill it just in case.
- stop_rsh_daemon
-}
-
-# Run the test.
-set status [catch rsh_test msg]
-
-# Shut down the kerberos daemons and the rsh daemon.
-stop_kerberos_daemons
-
-stop_rsh_daemon
-
-if { $status != 0 } {
- send_error "ERROR: error in rsh.exp\n"
- send_error "$msg\n"
- exit 1
-}