summaryrefslogtreecommitdiffstats
path: root/src/tests
diff options
context:
space:
mode:
authorEzra Peisach <epeisach@mit.edu>2001-07-04 15:05:09 +0000
committerEzra Peisach <epeisach@mit.edu>2001-07-04 15:05:09 +0000
commitfa496bbae0cdd7395102a4286f30e2e8ce1bc50c (patch)
treedda2bd462b91f6d1cdc38edf3c862fa6ae95bc17 /src/tests
parentd45c287d2d789e6e7703144fa13628a12a842271 (diff)
downloadkrb5-fa496bbae0cdd7395102a4286f30e2e8ce1bc50c.tar.gz
krb5-fa496bbae0cdd7395102a4286f30e2e8ce1bc50c.tar.xz
krb5-fa496bbae0cdd7395102a4286f30e2e8ce1bc50c.zip
* v4gssftp.exp, gssftp.exp: Test transfering a file > 1MB to
exercise PBSZ failure. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@13554 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/tests')
-rw-r--r--src/tests/dejagnu/krb-standalone/ChangeLog5
-rw-r--r--src/tests/dejagnu/krb-standalone/gssftp.exp62
-rw-r--r--src/tests/dejagnu/krb-standalone/v4gssftp.exp64
3 files changed, 129 insertions, 2 deletions
diff --git a/src/tests/dejagnu/krb-standalone/ChangeLog b/src/tests/dejagnu/krb-standalone/ChangeLog
index d5d323169..e34d13e61 100644
--- a/src/tests/dejagnu/krb-standalone/ChangeLog
+++ b/src/tests/dejagnu/krb-standalone/ChangeLog
@@ -1,3 +1,8 @@
+2001-07-04 Ezra Peisach <epeisach@mit.edu>
+
+ * v4gssftp.exp, gssftp.exp: Test transfering a file > 1MB to
+ exercise PBSZ failure.
+
2001-06-22 Tom Yu <tlyu@mit.edu>
* gssftp.exp: Use $tmppwd rather than hardcoding tmpdir.
diff --git a/src/tests/dejagnu/krb-standalone/gssftp.exp b/src/tests/dejagnu/krb-standalone/gssftp.exp
index 912c36686..d0b49d320 100644
--- a/src/tests/dejagnu/krb-standalone/gssftp.exp
+++ b/src/tests/dejagnu/krb-standalone/gssftp.exp
@@ -72,8 +72,17 @@ 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
+
+
# Test that a file was copied correctly.
-proc check_file { filename } {
+proc check_file { filename {bigfile 0}} {
if ![file exists $filename] {
verbose "$filename does not exist"
send_log "$filename does not exist\n"
@@ -95,6 +104,24 @@ proc check_file { filename } {
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"
@@ -293,6 +320,19 @@ proc ftp_test { } {
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"
@@ -320,6 +360,26 @@ proc ftp_test { } {
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."
diff --git a/src/tests/dejagnu/krb-standalone/v4gssftp.exp b/src/tests/dejagnu/krb-standalone/v4gssftp.exp
index a940aa50d..859cce470 100644
--- a/src/tests/dejagnu/krb-standalone/v4gssftp.exp
+++ b/src/tests/dejagnu/krb-standalone/v4gssftp.exp
@@ -81,8 +81,16 @@ 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
+
# Test that a file was copied correctly.
-proc check_file { filename } {
+proc check_file { filename {bigfile 0}} {
if ![file exists $filename] {
verbose "$filename does not exist"
send_log "$filename does not exist\n"
@@ -104,6 +112,24 @@ proc check_file { filename } {
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"
@@ -340,6 +366,19 @@ proc v4ftp_test { } {
fail $testname
}
+ set testname "big local get(v4)"
+ 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(v4)"
send "private\r"
expect "Data channel protection level set to private"
@@ -375,6 +414,29 @@ proc v4ftp_test { } {
fail $testname
}
+
+ # Test a large file that will overflow PBSZ size
+ set testname "big encrypted get(v4)"
+ 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" {}
+ -re "krb_rd_priv failed for KERBEROS_V4" {
+ fail $testname
+ send "quit\r"
+ catch "expect_after"
+ return
+ }
+ }
+ expect "ftp> "
+ if [check_file $tmppwd/copy 1] {
+ pass $testname
+ } else {
+ fail $testname
+ }
+
set testname "close(v4)"
send "close\r"
expect "Goodbye."