summaryrefslogtreecommitdiffstats
path: root/tests/zlib.test
diff options
context:
space:
mode:
authorpatthoyts <patthoyts@users.sourceforge.net>2009-07-09 22:48:44 (GMT)
committerpatthoyts <patthoyts@users.sourceforge.net>2009-07-09 22:48:44 (GMT)
commitaa9d6e35ecc0a79757a530c4a4b95e90887e5635 (patch)
treeac9009aa90c4913d181a4e791ab11e5aa9ccb656 /tests/zlib.test
parent8d66bea70e3b60faed905bf41460eb10c2fdc20b (diff)
downloadtcl-aa9d6e35ecc0a79757a530c4a4b95e90887e5635.zip
tcl-aa9d6e35ecc0a79757a530c4a4b95e90887e5635.tar.gz
tcl-aa9d6e35ecc0a79757a530c4a4b95e90887e5635.tar.bz2
[Bug #2818131] Added tests and fixed a typo that broke zlib push for deflate format.
Diffstat (limited to 'tests/zlib.test')
-rw-r--r--tests/zlib.test100
1 files changed, 94 insertions, 6 deletions
diff --git a/tests/zlib.test b/tests/zlib.test
index b8d6e66..3705419 100644
--- a/tests/zlib.test
+++ b/tests/zlib.test
@@ -10,7 +10,7 @@
# See the file "license.terms" for information on usage and redistribution of
# this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
-# RCS: @(#) $Id: zlib.test,v 1.9 2009/07/05 21:46:27 patthoyts Exp $
+# RCS: @(#) $Id: zlib.test,v 1.10 2009/07/09 22:48:44 patthoyts Exp $
if {[lsearch [namespace children] ::tcltest] == -1} {
package require tcltest 2.1
@@ -175,7 +175,7 @@ test zlib-9.1 "check fcopy with push" -constraints zlib -setup {
removeFile $sfile
} -returnCodes {ok} -result {copied 81920 size 81920}
test zlib-9.2 "socket fcopy with push" -constraints zlib -setup {
- set srv [socket -server {apply {{c a p} {
+ set srv [socket -myaddr localhost -server {apply {{c a p} {
chan configure $c -encoding binary -translation binary
puts -nonewline $c [zlib gzip [string repeat a 81920]]
close $c
@@ -196,7 +196,8 @@ test zlib-9.2 "socket fcopy with push" -constraints zlib -setup {
removeFile $file
} -returnCodes {ok error} -result {read 81920 size 81920}
test zlib-9.3 "socket fcopy bg (identity)" -constraints zlib -setup {
- set srv [socket -server {apply {{c a p} {
+ set srv [socket -myaddr localhost -server {apply {{c a p} {
+ puts "connection from $a:$p on $c"
chan configure $c -encoding binary -translation binary
puts -nonewline $c [string repeat a 81920]
close $c
@@ -204,7 +205,8 @@ test zlib-9.3 "socket fcopy bg (identity)" -constraints zlib -setup {
set file [makeFile {} test.gz]
} -body {
lassign [chan configure $srv -sockname] addr name port
- set sin [socket $addr $port]
+ puts "listening for connections on $addr $port"
+ set sin [socket localhost $port]
chan configure $sin -translation binary
update
set fout [open $file wb]
@@ -217,9 +219,10 @@ test zlib-9.3 "socket fcopy bg (identity)" -constraints zlib -setup {
list read $::total size [file size $file]
} -cleanup {
close $srv
+ removeFile $file
} -returnCodes {ok error} -result {read 81920 size 81920}
test zlib-9.4 "socket fcopy bg (gzip)" -constraints zlib -setup {
- set srv [socket -server {apply {{c a p} {
+ set srv [socket -myaddr localhost -server {apply {{c a p} {
chan configure $c -encoding binary -translation binary
puts -nonewline $c [zlib gzip [string repeat a 81920]]
close $c
@@ -244,7 +247,7 @@ test zlib-9.4 "socket fcopy bg (gzip)" -constraints zlib -setup {
removeFile $file
} -result {read 81920 size 81920}
test zlib-9.5 "socket fcopy incremental (gzip)" -constraints zlib -setup {
- set srv [socket -server {apply {{c a p} {
+ set srv [socket -myaddr localhost -server {apply {{c a p} {
chan configure $c -encoding binary -translation binary
puts -nonewline $c [zlib gzip [string repeat a 81920]]
close $c
@@ -277,6 +280,91 @@ test zlib-9.5 "socket fcopy incremental (gzip)" -constraints zlib -setup {
rename zlib95copy {}
removeFile $file
} -result {{eof 81920} size 81920}
+
+test zlib-9.6 "bug #2818131 (gzip)" -constraints zlib -setup {
+ proc zlib96read {c} {
+ set d [read $c]
+ if {[eof $c]} {
+ chan event $c readable {}
+ set ::total [list eof [string length $d]]
+ }
+ }
+ set srv [socket -myaddr localhost -server {apply {{c a p} {
+ chan configure $c -translation binary -buffering none
+ zlib push gzip $c
+ puts -nonewline $c [string repeat hello 100]
+ close $c
+ }}} 0]
+} -body {
+ lassign [chan configure $srv -sockname] addr name port
+ after 1000 {set ::total timeout}
+ set s [socket $addr $port]
+ chan configure $s -translation binary -buffering none
+ zlib push gunzip $s
+ chan event $s readable [list zlib96read $s]
+ vwait ::total
+ close $s
+ set ::total
+} -cleanup {
+ close $srv
+ rename zlib96read {}
+} -returnCodes {ok error} -result {eof 500}
+test zlib-9.7 "bug #2818131 (compress)" -constraints zlib -setup {
+ proc zlib97read {c} {
+ set d [read $c]
+ if {[eof $c]} {
+ chan event $c readable {}
+ set ::total [list eof [string length $d]]
+ }
+ }
+ set srv [socket -myaddr localhost -server {apply {{c a p} {
+ chan configure $c -translation binary -buffering none
+ zlib push compress $c
+ puts -nonewline $c [string repeat hello 100]
+ close $c
+ }}} 0]
+} -body {
+ lassign [chan configure $srv -sockname] addr name port
+ after 1000 {set ::total timeout}
+ set s [socket $addr $port]
+ chan configure $s -translation binary -buffering none
+ zlib push decompress $s
+ chan event $s readable [list zlib97read $s]
+ vwait ::total
+ close $s
+ set ::total
+} -cleanup {
+ close $srv
+ rename zlib97read {}
+} -returnCodes {ok error} -result {eof 500}
+test zlib-9.8 "bug #2818131 (deflate)" -constraints zlib -setup {
+ proc zlib98read {c} {
+ set d [read $c]
+ if {[eof $c]} {
+ chan event $c readable {}
+ set ::total [list eof [string length $d]]
+ }
+ }
+ set srv [socket -myaddr localhost -server {apply {{c a p} {
+ chan configure $c -translation binary -buffering none
+ zlib push deflate $c
+ puts -nonewline $c [string repeat hello 100]
+ close $c
+ }}} 0]
+} -body {
+ lassign [chan configure $srv -sockname] addr name port
+ after 1000 {set ::total timeout}
+ set s [socket $addr $port]
+ chan configure $s -translation binary -buffering none
+ zlib push inflate $s
+ chan event $s readable [list zlib98read $s]
+ vwait ::total
+ close $s
+ set ::total
+} -cleanup {
+ close $srv
+ rename zlib98read {}
+} -returnCodes {ok error} -result {eof 500}
::tcltest::cleanupTests
return