summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkjnash <k.j.nash@usa.net>2023-12-12 15:52:00 (GMT)
committerkjnash <k.j.nash@usa.net>2023-12-12 15:52:00 (GMT)
commit292e8668fb689183fd54df651dc1642c879255c3 (patch)
tree8c1acf50aff05942715312aa9ba7602d24505756
parent8025e899e12e9d7a3b4f22347d0222c3df3c9567 (diff)
downloadtcl-292e8668fb689183fd54df651dc1642c879255c3.zip
tcl-292e8668fb689183fd54df651dc1642c879255c3.tar.gz
tcl-292e8668fb689183fd54df651dc1642c879255c3.tar.bz2
When http.tcl uses Thread, require Thread 2.8.9- to avoid failure of r/w operations on 2.8.8 thread::transfer socket on Windows.
-rw-r--r--library/http/http.tcl8
-rw-r--r--tests/httpProxy.test154
2 files changed, 101 insertions, 61 deletions
diff --git a/library/http/http.tcl b/library/http/http.tcl
index 563e5ad..bc0eeba 100644
--- a/library/http/http.tcl
+++ b/library/http/http.tcl
@@ -5259,6 +5259,8 @@ proc http::AllDone {varName args} {
# An error in thread::send -async causes return of just the error message
# (not the expected 3 elements), and raises a bgerror in the main thread.
# Hence wrap the command with catch as a precaution.
+# - Bug in Thread 2.8.8 - on Windows, read/write operations fail on a socket
+# moved from another thread by thread::transfer.
# ------------------------------------------------------------------------------
proc http::AltSocket {args} {
@@ -5357,10 +5359,10 @@ proc http::LoadThreadIfNeeded {} {
set http(usingThread) 0
return
}
- if {[catch {package require Thread}]} {
+ if {[catch {package require Thread 2.8.9-}]} {
if {$http(-threadlevel) == 2} {
set msg {[http::config -threadlevel] has value 2,\
- but the Thread package is not available}
+ but the Thread package (2.8.9 or above) is not available}
return -code error $msg
}
set http(usingThread) 0
@@ -5387,7 +5389,7 @@ proc http::LoadThreadIfNeeded {} {
# ------------------------------------------------------------------------------
proc http::SockInThread {caller defcmd sockargs} {
- package require Thread
+ package require Thread 2.8.9-
set catchCode [catch {eval $defcmd $sockargs} sock errdict]
if {$catchCode == 0} {
diff --git a/tests/httpProxy.test b/tests/httpProxy.test
index ae926ff..24b6e8c 100644
--- a/tests/httpProxy.test
+++ b/tests/httpProxy.test
@@ -7,7 +7,7 @@
# Copyright © 1991-1993 The Regents of the University of California.
# Copyright © 1994-1996 Sun Microsystems, Inc.
# Copyright © 1998-2000 Ajuba Solutions.
-# Copyright © 2022 Keith Nash.
+# Copyright © 2022-2023 Keith Nash.
#
# See the file "license.terms" for information on usage and redistribution of
# this file, and for a DISCLAIMER OF ALL WARRANTIES.
@@ -30,9 +30,9 @@ proc bgerror {args} {
proc stopMe {token} {
set ${token}(z) done
}
-
+#set ThreadLevel 0
if {![info exists ThreadLevel]} {
- if {[catch {package require Thread}] == 0} {
+ if {[catch {package require Thread 2.8.9-}] == 0} {
set ValueRange {0 1 2}
} else {
set ValueRange {0 1}
@@ -51,14 +51,52 @@ if {![info exists ThreadLevel]} {
catch {puts "==== Test with ThreadLevel $ThreadLevel ===="}
http::config -threadlevel $ThreadLevel
-
-#testConstraint needsSquid 1
-#testConstraint needsTls 1
-
-if {[testConstraint needsTls]} {
+testConstraint needsSquidNoAuth 0
+testConstraint needsSquidAuth 0
+testConstraint needsTclTls 0
+testConstraint needsTwapi 0
+testConstraint needsTwapiFull 0
+testConstraint needsTls [expr { [testConstraint needsTclTls]
+ || [testConstraint needsTwapi]
+ || [testConstraint needsTwapiFull]
+ }]
+
+if {[testConstraint needsTclTls]} {
package require tls
http::register https 443 [list ::tls::socket -ssl2 0 -ssl3 0 \
-tls1 0 -tls1.1 0 -tls1.2 1 -tls1.3 0 -autoservername 1] ::tls::socketCmd 1 1
+} elseif {[testConstraint needsTwapi]} {
+ # "Original" http::register with 3 arguments has the same capabilities as
+ # in http 2.9 and earlier. This means that:
+ # (1) it cannot open a socket in a background thread (this option stops a
+ # slow DNS lookup from blocking a [socket -async] command); and
+ # (2) it cannot use a https proxy.
+ #
+ testConstraint needsSquidNoAuth 0
+ testConstraint needsSquidAuth 0
+ package require twapi
+ http::register https 443 ::twapi::tls_socket
+} elseif {[testConstraint needsTwapiFull]} {
+ # (Any revisions to TWAPI, and the contents/existence of the twapiTlsPlus
+ # wrapper, can be negotiated if the bugs listed below can be fixed.)
+ # Use a temporary wrapper package twapiTlsPlus to present a suitable API.
+ #
+ # N.B. MUST EDIT twapi*/tls.tcl so that
+ #- set so [$socketcmd {*}$socket_args {*}$args]
+ #+ set so [{*}$socketcmd {*}$socket_args {*}$args]
+ #
+ # Bug with https, threadLevel 1,2, no proxy: try test 'httpProxy-2.2.*'
+ # Bug with https, threadLevel 0, with proxy: try test 'httpProxy-3.4.0'
+ # In both cases (using TWAPI 4.7.2 25d8bc), the result is:
+ # ---- Test generated error; Return code was: 1
+ # ---- Return code should have been one of: 0 2
+ # ---- errorInfo: cannot yield: C stack busy
+ # while executing
+ # "http::geturl https://www.google.com/"
+ #
+ package require twapiTlsPlus
+ http::register https 443 ::twapiTlsPlus::socket ::twapiTlsPlus::socketCmd 1 1
+} else {
}
# Testing with Squid
@@ -86,7 +124,7 @@ set aliceCreds {Basic YWxpY2U6YWxpY2lh}
# concat Basic [base64::encode intruder:intruder]
set badCreds {Basic aW50cnVkZXI6aW50cnVkZXI=}
-test httpProxy-1.1.$ThreadLevel {squid is running - ipv4 noauth} -constraints {needsSquid} -setup {
+test httpProxy-1.1.$ThreadLevel {squid is running - ipv4 no-auth} -constraints {needsSquidNoAuth} -setup {
} -body {
set token [http::geturl http://$n4host:$n4port/]
set ri [http::responseInfo $token]
@@ -97,7 +135,7 @@ test httpProxy-1.1.$ThreadLevel {squid is running - ipv4 noauth} -constraints {n
unset -nocomplain token ri res
}
-test httpProxy-1.2.$ThreadLevel {squid is running - ipv6 noauth} -constraints {needsSquid} -setup {
+test httpProxy-1.2.$ThreadLevel {squid is running - ipv6 no-auth} -constraints {needsSquidNoAuth} -setup {
} -body {
set token [http::geturl http://\[$n6host\]:$n6port/]
set ri [http::responseInfo $token]
@@ -108,7 +146,7 @@ test httpProxy-1.2.$ThreadLevel {squid is running - ipv6 noauth} -constraints {n
unset -nocomplain token ri res
}
-test httpProxy-1.3.$ThreadLevel {squid is running - ipv4 auth} -constraints {needsSquid} -setup {
+test httpProxy-1.3.$ThreadLevel {squid is running - ipv4 with-auth} -constraints {needsSquidAuth} -setup {
} -body {
set token [http::geturl http://$a4host:$a4port/]
set ri [http::responseInfo $token]
@@ -119,7 +157,7 @@ test httpProxy-1.3.$ThreadLevel {squid is running - ipv4 auth} -constraints {nee
unset -nocomplain token ri res
}
-test httpProxy-1.4.$ThreadLevel {squid is running - ipv6 auth} -constraints {needsSquid} -setup {
+test httpProxy-1.4.$ThreadLevel {squid is running - ipv6 with-auth} -constraints {needsSquidAuth} -setup {
} -body {
set token [http::geturl http://\[$a6host\]:$a6port/]
set ri [http::responseInfo $token]
@@ -130,7 +168,7 @@ test httpProxy-1.4.$ThreadLevel {squid is running - ipv6 auth} -constraints {nee
unset -nocomplain token ri res
}
-test httpProxy-2.1.$ThreadLevel {http no-proxy no-auth} -constraints {needsSquid} -setup {
+test httpProxy-2.1.$ThreadLevel {http no-proxy no-auth} -constraints {} -setup {
http::config -proxyhost {} -proxyport {} -proxynot {} -proxyauth {}
} -body {
set token [http::geturl http://www.google.com/]
@@ -143,7 +181,7 @@ test httpProxy-2.1.$ThreadLevel {http no-proxy no-auth} -constraints {needsSquid
unset -nocomplain token ri res
}
-test httpProxy-2.2.$ThreadLevel {https no-proxy no-auth} -constraints {needsSquid needsTls} -setup {
+test httpProxy-2.2.$ThreadLevel {https no-proxy no-auth} -constraints {needsTls} -setup {
http::config -proxyhost {} -proxyport {} -proxynot {} -proxyauth {}
} -body {
set token [http::geturl https://www.google.com/]
@@ -156,7 +194,7 @@ test httpProxy-2.2.$ThreadLevel {https no-proxy no-auth} -constraints {needsSqui
unset -nocomplain token ri res
}
-test httpProxy-2.3.$ThreadLevel {http with-proxy ipv4 no-auth} -constraints {needsSquid} -setup {
+test httpProxy-2.3.$ThreadLevel {http with-proxy ipv4 no-auth} -constraints {needsSquidNoAuth} -setup {
http::config -proxyhost $n4host -proxyport $n4port -proxynot {127.0.0.1 localhost} -proxyauth {}
} -body {
set token [http::geturl http://www.google.com/]
@@ -170,7 +208,7 @@ test httpProxy-2.3.$ThreadLevel {http with-proxy ipv4 no-auth} -constraints {nee
http::config -proxyhost {} -proxyport {} -proxynot {}
}
-test httpProxy-2.4.$ThreadLevel {https with-proxy ipv4 no-auth} -constraints {needsSquid needsTls} -setup {
+test httpProxy-2.4.$ThreadLevel {https with-proxy ipv4 no-auth} -constraints {needsSquidNoAuth needsTls} -setup {
http::config -proxyhost $n4host -proxyport $n4port -proxynot {127.0.0.1 localhost} -proxyauth {}
} -body {
set token [http::geturl https://www.google.com/]
@@ -184,7 +222,7 @@ test httpProxy-2.4.$ThreadLevel {https with-proxy ipv4 no-auth} -constraints {ne
http::config -proxyhost {} -proxyport {} -proxynot {}
}
-test httpProxy-2.5.$ThreadLevel {http with-proxy ipv6 no-auth} -constraints {needsSquid} -setup {
+test httpProxy-2.5.$ThreadLevel {http with-proxy ipv6 no-auth} -constraints {needsSquidNoAuth} -setup {
http::config -proxyhost $n6host -proxyport $n6port -proxynot {::1 localhost} -proxyauth {}
} -body {
set token [http::geturl http://www.google.com/]
@@ -198,7 +236,7 @@ test httpProxy-2.5.$ThreadLevel {http with-proxy ipv6 no-auth} -constraints {nee
http::config -proxyhost {} -proxyport {} -proxynot {}
}
-test httpProxy-2.6.$ThreadLevel {https with-proxy ipv6 no-auth} -constraints {needsSquid needsTls} -setup {
+test httpProxy-2.6.$ThreadLevel {https with-proxy ipv6 no-auth} -constraints {needsSquidNoAuth needsTls} -setup {
http::config -proxyhost $n6host -proxyport $n6port -proxynot {::1 localhost} -proxyauth {}
} -body {
set token [http::geturl https://www.google.com/]
@@ -212,7 +250,7 @@ test httpProxy-2.6.$ThreadLevel {https with-proxy ipv6 no-auth} -constraints {ne
http::config -proxyhost {} -proxyport {} -proxynot {}
}
-test httpProxy-3.1.$ThreadLevel {http no-proxy with-auth valid-creds-provided} -constraints {needsSquid} -setup {
+test httpProxy-3.1.$ThreadLevel {http no-proxy with-auth valid-creds-provided} -constraints {} -setup {
http::config -proxyhost {} -proxyport $a4port -proxynot {127.0.0.1 localhost} -proxyauth $aliceCreds
} -body {
set token [http::geturl http://www.google.com/]
@@ -228,7 +266,7 @@ test httpProxy-3.1.$ThreadLevel {http no-proxy with-auth valid-creds-provided} -
http::config -proxyhost {} -proxyport {} -proxynot {} -proxyauth {}
}
-test httpProxy-3.2.$ThreadLevel {https no-proxy with-auth valid-creds-provided} -constraints {needsSquid needsTls} -setup {
+test httpProxy-3.2.$ThreadLevel {https no-proxy with-auth valid-creds-provided} -constraints {needsTls} -setup {
http::config -proxyhost {} -proxyport $a4port -proxynot {127.0.0.1 localhost} -proxyauth $aliceCreds
} -body {
set token [http::geturl https://www.google.com/]
@@ -244,7 +282,7 @@ test httpProxy-3.2.$ThreadLevel {https no-proxy with-auth valid-creds-provided}
http::config -proxyhost {} -proxyport {} -proxynot {} -proxyauth {}
}
-test httpProxy-3.3.$ThreadLevel {http with-proxy ipv4 with-auth valid-creds-provided} -constraints {needsSquid} -setup {
+test httpProxy-3.3.$ThreadLevel {http with-proxy ipv4 with-auth valid-creds-provided} -constraints {needsSquidAuth} -setup {
http::config -proxyhost $a4host -proxyport $a4port -proxynot {127.0.0.1 localhost} -proxyauth $aliceCreds
} -body {
set token [http::geturl http://www.google.com/]
@@ -260,7 +298,7 @@ test httpProxy-3.3.$ThreadLevel {http with-proxy ipv4 with-auth valid-creds-prov
http::config -proxyhost {} -proxyport {} -proxynot {} -proxyauth {}
}
-test httpProxy-3.4.$ThreadLevel {https with-proxy ipv4 with-auth valid-creds-provided} -constraints {needsSquid needsTls} -setup {
+test httpProxy-3.4.$ThreadLevel {https with-proxy ipv4 with-auth valid-creds-provided} -constraints {needsSquidAuth needsTls} -setup {
http::config -proxyhost $a4host -proxyport $a4port -proxynot {127.0.0.1 localhost} -proxyauth $aliceCreds
} -body {
set token [http::geturl https://www.google.com/]
@@ -276,7 +314,7 @@ test httpProxy-3.4.$ThreadLevel {https with-proxy ipv4 with-auth valid-creds-pro
http::config -proxyhost {} -proxyport {} -proxynot {} -proxyauth {}
}
-test httpProxy-3.5.$ThreadLevel {http with-proxy ipv6 with-auth valid-creds-provided} -constraints {needsSquid} -setup {
+test httpProxy-3.5.$ThreadLevel {http with-proxy ipv6 with-auth valid-creds-provided} -constraints {needsSquidAuth} -setup {
http::config -proxyhost $a6host -proxyport $a6port -proxynot {::1 localhost} -proxyauth $aliceCreds
} -body {
set token [http::geturl http://www.google.com/]
@@ -292,7 +330,7 @@ test httpProxy-3.5.$ThreadLevel {http with-proxy ipv6 with-auth valid-creds-prov
http::config -proxyhost {} -proxyport {} -proxynot {} -proxyauth {}
}
-test httpProxy-3.6.$ThreadLevel {https with-proxy ipv6 with-auth valid-creds-provided} -constraints {needsSquid needsTls} -setup {
+test httpProxy-3.6.$ThreadLevel {https with-proxy ipv6 with-auth valid-creds-provided} -constraints {needsSquidAuth needsTls} -setup {
http::config -proxyhost $a6host -proxyport $a6port -proxynot {::1 localhost} -proxyauth $aliceCreds
} -body {
set token [http::geturl https://www.google.com/]
@@ -308,7 +346,7 @@ test httpProxy-3.6.$ThreadLevel {https with-proxy ipv6 with-auth valid-creds-pro
http::config -proxyhost {} -proxyport {} -proxynot {} -proxyauth {}
}
-test httpProxy-3.7.$ThreadLevel {http with-proxy ipv4 with-auth valid-creds-provided; check that 2nd valid request with creds is possible, and keep-alive works} -constraints {needsSquid} -setup {
+test httpProxy-3.7.$ThreadLevel {http with-proxy ipv4 with-auth valid-creds-provided; check that 2nd valid request with creds is possible, and keep-alive works} -constraints {needsSquidAuth} -setup {
array unset ::http::socketMapping
http::config -proxyhost $a4host -proxyport $a4port -proxynot {127.0.0.1 localhost} -proxyauth $aliceCreds
set token0 [http::geturl http://www.google.com/ -keepalive 1 -timeout 5000]
@@ -334,7 +372,7 @@ test httpProxy-3.7.$ThreadLevel {http with-proxy ipv4 with-auth valid-creds-prov
http::config -proxyhost {} -proxyport {} -proxynot {} -proxyauth {}
}
-test httpProxy-3.7x.$ThreadLevel {http with-proxy ipv4 with-auth 1st request no-creds-provided; check that 2nd request with creds is possible} -constraints {needsSquid} -setup {
+test httpProxy-3.7x.$ThreadLevel {http with-proxy ipv4 with-auth 1st request no-creds-provided; check that 2nd request with creds is possible} -constraints {needsSquidAuth} -setup {
array unset ::http::socketMapping
http::config -proxyhost $a4host -proxyport $a4port -proxynot {127.0.0.1 localhost} -proxyauth {}
set token0 [http::geturl http://www.google.com/ -keepalive 1 -timeout 5000]
@@ -362,7 +400,7 @@ test httpProxy-3.7x.$ThreadLevel {http with-proxy ipv4 with-auth 1st request no-
http::config -proxyhost {} -proxyport {} -proxynot {} -proxyauth {}
}
-test httpProxy-3.8.$ThreadLevel {https with-proxy ipv4 with-auth valid-creds-provided; check that 2nd valid request with creds is possible, and keep-alive works} -constraints {needsSquid needsTls} -setup {
+test httpProxy-3.8.$ThreadLevel {https with-proxy ipv4 with-auth valid-creds-provided; check that 2nd valid request with creds is possible, and keep-alive works} -constraints {needsSquidAuth needsTls} -setup {
array unset ::http::socketMapping
http::config -proxyhost $a4host -proxyport $a4port -proxynot {127.0.0.1 localhost} -proxyauth $aliceCreds
set token0 [http::geturl https://www.google.com/ -keepalive 1 -timeout 5000]
@@ -390,7 +428,7 @@ test httpProxy-3.8.$ThreadLevel {https with-proxy ipv4 with-auth valid-creds-pro
http::config -proxyhost {} -proxyport {} -proxynot {} -proxyauth {}
}
-test httpProxy-3.8x.$ThreadLevel {https with-proxy ipv4 with-auth 1st request no-creds-provided; check that 2nd request with creds is possible} -constraints {needsSquid needsTls} -setup {
+test httpProxy-3.8x.$ThreadLevel {https with-proxy ipv4 with-auth 1st request no-creds-provided; check that 2nd request with creds is possible} -constraints {needsSquidAuth needsTls} -setup {
array unset ::http::socketMapping
http::config -proxyhost $a4host -proxyport $a4port -proxynot {127.0.0.1 localhost} -proxyauth {}
set token0 [http::geturl https://www.google.com/ -keepalive 1 -timeout 5000]
@@ -420,7 +458,7 @@ test httpProxy-3.8x.$ThreadLevel {https with-proxy ipv4 with-auth 1st request no
http::config -proxyhost {} -proxyport {} -proxynot {} -proxyauth {}
}
-test httpProxy-3.9.$ThreadLevel {http with-proxy ipv6 with-auth valid-creds-provided; check that 2nd valid request with creds is possible, and keep-alive works} -constraints {needsSquid} -setup {
+test httpProxy-3.9.$ThreadLevel {http with-proxy ipv6 with-auth valid-creds-provided; check that 2nd valid request with creds is possible, and keep-alive works} -constraints {needsSquidAuth} -setup {
array unset ::http::socketMapping
http::config -proxyhost $a6host -proxyport $a6port -proxynot {::1 localhost} -proxyauth $aliceCreds
set token0 [http::geturl http://www.google.com/ -keepalive 1 -timeout 5000]
@@ -446,7 +484,7 @@ test httpProxy-3.9.$ThreadLevel {http with-proxy ipv6 with-auth valid-creds-prov
http::config -proxyhost {} -proxyport {} -proxynot {} -proxyauth {}
}
-test httpProxy-3.9p.$ThreadLevel {http with-proxy ipv6 with-auth valid-creds-provided; check that 2nd valid request with creds is possible, and keep-alive works, pipelining requested and possible} -constraints {needsSquid} -setup {
+test httpProxy-3.9p.$ThreadLevel {http with-proxy ipv6 with-auth valid-creds-provided; check that 2nd valid request with creds is possible, and keep-alive works, pipelining requested and possible} -constraints {needsSquidAuth} -setup {
array unset ::http::socketMapping
http::config -proxyhost $a6host -proxyport $a6port -proxynot {::1 localhost} -proxyauth $aliceCreds
} -body {
@@ -477,7 +515,7 @@ after idle {
http::config -proxyhost {} -proxyport {} -proxynot {} -proxyauth {}
}
-test httpProxy-3.9x.$ThreadLevel {http with-proxy ipv6 with-auth 1st request no-creds-provided; check that 2nd request with creds is possible} -constraints {needsSquid} -setup {
+test httpProxy-3.9x.$ThreadLevel {http with-proxy ipv6 with-auth 1st request no-creds-provided; check that 2nd request with creds is possible} -constraints {needsSquidAuth} -setup {
array unset ::http::socketMapping
http::config -proxyhost $a6host -proxyport $a6port -proxynot {::1 localhost} -proxyauth {}
set token0 [http::geturl http://www.google.com/ -keepalive 1 -timeout 5000]
@@ -505,7 +543,7 @@ test httpProxy-3.9x.$ThreadLevel {http with-proxy ipv6 with-auth 1st request no-
http::config -proxyhost {} -proxyport {} -proxynot {} -proxyauth {}
}
-test httpProxy-3.10.$ThreadLevel {https with-proxy ipv6 with-auth valid-creds-provided; check that 2nd valid request with creds is possible, and keep-alive works} -constraints {needsSquid needsTls} -setup {
+test httpProxy-3.10.$ThreadLevel {https with-proxy ipv6 with-auth valid-creds-provided; check that 2nd valid request with creds is possible, and keep-alive works} -constraints {needsSquidAuth needsTls} -setup {
array unset ::http::socketMapping
http::config -proxyhost $a6host -proxyport $a6port -proxynot {::1 localhost} -proxyauth $aliceCreds
set token0 [http::geturl https://www.google.com/ -keepalive 1 -timeout 5000]
@@ -533,7 +571,7 @@ test httpProxy-3.10.$ThreadLevel {https with-proxy ipv6 with-auth valid-creds-pr
http::config -proxyhost {} -proxyport {} -proxynot {} -proxyauth {}
}
-test httpProxy-3.10p.$ThreadLevel {https with-proxy ipv6 with-auth valid-creds-provided; check that 2nd valid request with creds is possible, and keep-alive works, pipelining requested and possible} -constraints {needsSquid needsTls} -setup {
+test httpProxy-3.10p.$ThreadLevel {https with-proxy ipv6 with-auth valid-creds-provided; check that 2nd valid request with creds is possible, and keep-alive works, pipelining requested and possible} -constraints {needsSquidAuth needsTls} -setup {
array unset ::http::socketMapping
http::config -proxyhost $a6host -proxyport $a6port -proxynot {::1 localhost} -proxyauth $aliceCreds
} -body {
@@ -566,7 +604,7 @@ after idle {
http::config -proxyhost {} -proxyport {} -proxynot {} -proxyauth {}
}
-test httpProxy-3.10x.$ThreadLevel {https with-proxy ipv6 with-auth 1st request no-creds-provided; check that 2nd request with creds is possible} -constraints {needsSquid needsTls} -setup {
+test httpProxy-3.10x.$ThreadLevel {https with-proxy ipv6 with-auth 1st request no-creds-provided; check that 2nd request with creds is possible} -constraints {needsSquidAuth needsTls} -setup {
array unset ::http::socketMapping
http::config -proxyhost $a6host -proxyport $a6port -proxynot {::1 localhost} -proxyauth {}
set token0 [http::geturl https://www.google.com/ -keepalive 1 -timeout 5000]
@@ -596,7 +634,7 @@ test httpProxy-3.10x.$ThreadLevel {https with-proxy ipv6 with-auth 1st request n
http::config -proxyhost {} -proxyport {} -proxynot {} -proxyauth {}
}
-test httpProxy-4.1.$ThreadLevel {http no-proxy with-auth no-creds-provided} -constraints {needsSquid} -setup {
+test httpProxy-4.1.$ThreadLevel {http no-proxy with-auth no-creds-provided} -constraints {} -setup {
http::config -proxyhost {} -proxyport $a4port -proxynot {127.0.0.1 localhost} -proxyauth {}
} -body {
set token [http::geturl http://www.google.com/]
@@ -612,7 +650,7 @@ test httpProxy-4.1.$ThreadLevel {http no-proxy with-auth no-creds-provided} -con
http::config -proxyhost {} -proxyport {} -proxynot {} -proxyauth {}
}
-test httpProxy-4.2.$ThreadLevel {https no-proxy with-auth no-creds-provided} -constraints {needsSquid needsTls} -setup {
+test httpProxy-4.2.$ThreadLevel {https no-proxy with-auth no-creds-provided} -constraints {needsTls} -setup {
http::config -proxyhost {} -proxyport $a4port -proxynot {127.0.0.1 localhost} -proxyauth {}
} -body {
set token [http::geturl https://www.google.com/]
@@ -628,7 +666,7 @@ test httpProxy-4.2.$ThreadLevel {https no-proxy with-auth no-creds-provided} -co
http::config -proxyhost {} -proxyport {} -proxynot {} -proxyauth {}
}
-test httpProxy-4.3.$ThreadLevel {http with-proxy ipv4 with-auth no-creds-provided} -constraints {needsSquid} -setup {
+test httpProxy-4.3.$ThreadLevel {http with-proxy ipv4 with-auth no-creds-provided} -constraints {needsSquidAuth} -setup {
http::config -proxyhost $a4host -proxyport $a4port -proxynot {127.0.0.1 localhost} -proxyauth {}
} -body {
set token [http::geturl http://www.google.com/]
@@ -644,7 +682,7 @@ test httpProxy-4.3.$ThreadLevel {http with-proxy ipv4 with-auth no-creds-provide
http::config -proxyhost {} -proxyport {} -proxynot {} -proxyauth {}
}
-test httpProxy-4.4.$ThreadLevel {https with-proxy ipv4 with-auth no-creds-provided} -constraints {needsSquid needsTls} -setup {
+test httpProxy-4.4.$ThreadLevel {https with-proxy ipv4 with-auth no-creds-provided} -constraints {needsSquidAuth needsTls} -setup {
http::config -proxyhost $a4host -proxyport $a4port -proxynot {127.0.0.1 localhost} -proxyauth {}
} -body {
set token [http::geturl https://www.google.com/]
@@ -660,7 +698,7 @@ test httpProxy-4.4.$ThreadLevel {https with-proxy ipv4 with-auth no-creds-provid
http::config -proxyhost {} -proxyport {} -proxynot {} -proxyauth {}
}
-test httpProxy-4.5.$ThreadLevel {http with-proxy ipv6 with-auth no-creds-provided} -constraints {needsSquid} -setup {
+test httpProxy-4.5.$ThreadLevel {http with-proxy ipv6 with-auth no-creds-provided} -constraints {needsSquidAuth} -setup {
http::config -proxyhost $a6host -proxyport $a6port -proxynot {::1 localhost} -proxyauth {}
} -body {
set token [http::geturl http://www.google.com/]
@@ -676,7 +714,7 @@ test httpProxy-4.5.$ThreadLevel {http with-proxy ipv6 with-auth no-creds-provide
http::config -proxyhost {} -proxyport {} -proxynot {} -proxyauth {}
}
-test httpProxy-4.6.$ThreadLevel {https with-proxy ipv6 with-auth no-creds-provided} -constraints {needsSquid needsTls} -setup {
+test httpProxy-4.6.$ThreadLevel {https with-proxy ipv6 with-auth no-creds-provided} -constraints {needsSquidAuth needsTls} -setup {
http::config -proxyhost $a6host -proxyport $a6port -proxynot {::1 localhost} -proxyauth {}
} -body {
set token [http::geturl https://www.google.com/]
@@ -692,7 +730,7 @@ test httpProxy-4.6.$ThreadLevel {https with-proxy ipv6 with-auth no-creds-provid
http::config -proxyhost {} -proxyport {} -proxynot {} -proxyauth {}
}
-test httpProxy-4.7.$ThreadLevel {http with-proxy ipv4 with-auth no-creds-provided; check that 2nd request is possible} -constraints {needsSquid} -setup {
+test httpProxy-4.7.$ThreadLevel {http with-proxy ipv4 with-auth no-creds-provided; check that 2nd request is possible} -constraints {needsSquidAuth} -setup {
array unset ::http::socketMapping
http::config -proxyhost $a4host -proxyport $a4port -proxynot {127.0.0.1 localhost} -proxyauth {}
set token0 [http::geturl http://www.google.com/ -keepalive 1 -timeout 5000]
@@ -718,7 +756,7 @@ test httpProxy-4.7.$ThreadLevel {http with-proxy ipv4 with-auth no-creds-provide
http::config -proxyhost {} -proxyport {} -proxynot {} -proxyauth {}
}
-test httpProxy-4.8.$ThreadLevel {https with-proxy ipv4 with-auth no-creds-provided; check that 2nd request is possible} -constraints {needsSquid needsTls} -setup {
+test httpProxy-4.8.$ThreadLevel {https with-proxy ipv4 with-auth no-creds-provided; check that 2nd request is possible} -constraints {needsSquidAuth needsTls} -setup {
array unset ::http::socketMapping
http::config -proxyhost $a4host -proxyport $a4port -proxynot {127.0.0.1 localhost} -proxyauth {}
set token0 [http::geturl https://www.google.com/ -keepalive 1 -timeout 5000]
@@ -746,7 +784,7 @@ test httpProxy-4.8.$ThreadLevel {https with-proxy ipv4 with-auth no-creds-provid
http::config -proxyhost {} -proxyport {} -proxynot {} -proxyauth {}
}
-test httpProxy-4.9.$ThreadLevel {http with-proxy ipv6 with-auth no-creds-provided; check that 2nd request is possible} -constraints {needsSquid} -setup {
+test httpProxy-4.9.$ThreadLevel {http with-proxy ipv6 with-auth no-creds-provided; check that 2nd request is possible} -constraints {needsSquidAuth} -setup {
array unset ::http::socketMapping
http::config -proxyhost $a6host -proxyport $a6port -proxynot {::1 localhost} -proxyauth {}
set token0 [http::geturl http://www.google.com/ -keepalive 1 -timeout 5000]
@@ -772,7 +810,7 @@ test httpProxy-4.9.$ThreadLevel {http with-proxy ipv6 with-auth no-creds-provide
http::config -proxyhost {} -proxyport {} -proxynot {} -proxyauth {}
}
-test httpProxy-4.9p.$ThreadLevel {http with-proxy ipv6 with-auth no-creds-provided; check that 2nd request is possible, pipelining requested and possible} -constraints {needsSquid} -setup {
+test httpProxy-4.9p.$ThreadLevel {http with-proxy ipv6 with-auth no-creds-provided; check that 2nd request is possible, pipelining requested and possible} -constraints {needsSquidAuth} -setup {
array unset ::http::socketMapping
http::config -proxyhost $a6host -proxyport $a6port -proxynot {::1 localhost} -proxyauth {}
} -body {
@@ -803,7 +841,7 @@ after idle {
http::config -proxyhost {} -proxyport {} -proxynot {} -proxyauth {}
}
-test httpProxy-4.10.$ThreadLevel {https with-proxy ipv6 with-auth no-creds-provided; check that 2nd request is possible} -constraints {needsSquid needsTls} -setup {
+test httpProxy-4.10.$ThreadLevel {https with-proxy ipv6 with-auth no-creds-provided; check that 2nd request is possible} -constraints {needsSquidAuth needsTls} -setup {
array unset ::http::socketMapping
http::config -proxyhost $a6host -proxyport $a6port -proxynot {::1 localhost} -proxyauth {}
set token0 [http::geturl https://www.google.com/ -keepalive 1 -timeout 5000]
@@ -831,7 +869,7 @@ test httpProxy-4.10.$ThreadLevel {https with-proxy ipv6 with-auth no-creds-provi
http::config -proxyhost {} -proxyport {} -proxynot {} -proxyauth {}
}
-test httpProxy-4.10p.$ThreadLevel {https with-proxy ipv6 with-auth no-creds-provided; check that 2nd request is possible, pipelining requested but not possible} -constraints {needsSquid needsTls} -setup {
+test httpProxy-4.10p.$ThreadLevel {https with-proxy ipv6 with-auth no-creds-provided; check that 2nd request is possible, pipelining requested but not possible} -constraints {needsSquidAuth needsTls} -setup {
array unset ::http::socketMapping
http::config -proxyhost $a6host -proxyport $a6port -proxynot {::1 localhost} -proxyauth {}
} -body {
@@ -865,7 +903,7 @@ after idle {
http::config -proxyhost {} -proxyport {} -proxynot {} -proxyauth {}
}
-test httpProxy-5.1.$ThreadLevel {http no-proxy with-auth bad-creds-provided} -constraints {needsSquid} -setup {
+test httpProxy-5.1.$ThreadLevel {http no-proxy with-auth bad-creds-provided} -constraints {} -setup {
http::config -proxyhost {} -proxyport $a4port -proxynot {127.0.0.1 localhost} -proxyauth $badCreds
} -body {
set token [http::geturl http://www.google.com/]
@@ -881,7 +919,7 @@ test httpProxy-5.1.$ThreadLevel {http no-proxy with-auth bad-creds-provided} -co
http::config -proxyhost {} -proxyport {} -proxynot {} -proxyauth {}
}
-test httpProxy-5.2.$ThreadLevel {https no-proxy with-auth bad-creds-provided} -constraints {needsSquid needsTls} -setup {
+test httpProxy-5.2.$ThreadLevel {https no-proxy with-auth bad-creds-provided} -constraints {needsTls} -setup {
http::config -proxyhost {} -proxyport $a4port -proxynot {127.0.0.1 localhost} -proxyauth $badCreds
} -body {
set token [http::geturl https://www.google.com/]
@@ -897,7 +935,7 @@ test httpProxy-5.2.$ThreadLevel {https no-proxy with-auth bad-creds-provided} -c
http::config -proxyhost {} -proxyport {} -proxynot {} -proxyauth {}
}
-test httpProxy-5.3.$ThreadLevel {http with-proxy ipv4 with-auth bad-creds-provided} -constraints {needsSquid} -setup {
+test httpProxy-5.3.$ThreadLevel {http with-proxy ipv4 with-auth bad-creds-provided} -constraints {needsSquidAuth} -setup {
http::config -proxyhost $a4host -proxyport $a4port -proxynot {127.0.0.1 localhost} -proxyauth $badCreds
} -body {
set token [http::geturl http://www.google.com/]
@@ -913,7 +951,7 @@ test httpProxy-5.3.$ThreadLevel {http with-proxy ipv4 with-auth bad-creds-provid
http::config -proxyhost {} -proxyport {} -proxynot {} -proxyauth {}
}
-test httpProxy-5.4.$ThreadLevel {https with-proxy ipv4 with-auth bad-creds-provided} -constraints {needsSquid needsTls} -setup {
+test httpProxy-5.4.$ThreadLevel {https with-proxy ipv4 with-auth bad-creds-provided} -constraints {needsSquidAuth needsTls} -setup {
http::config -proxyhost $a4host -proxyport $a4port -proxynot {127.0.0.1 localhost} -proxyauth $badCreds
} -body {
set token [http::geturl https://www.google.com/]
@@ -929,7 +967,7 @@ test httpProxy-5.4.$ThreadLevel {https with-proxy ipv4 with-auth bad-creds-provi
http::config -proxyhost {} -proxyport {} -proxynot {} -proxyauth {}
}
-test httpProxy-5.5.$ThreadLevel {http with-proxy ipv6 with-auth bad-creds-provided} -constraints {needsSquid} -setup {
+test httpProxy-5.5.$ThreadLevel {http with-proxy ipv6 with-auth bad-creds-provided} -constraints {needsSquidAuth} -setup {
http::config -proxyhost $a6host -proxyport $a6port -proxynot {::1 localhost} -proxyauth $badCreds
} -body {
set token [http::geturl http://www.google.com/]
@@ -945,7 +983,7 @@ test httpProxy-5.5.$ThreadLevel {http with-proxy ipv6 with-auth bad-creds-provid
http::config -proxyhost {} -proxyport {} -proxynot {} -proxyauth {}
}
-test httpProxy-5.6.$ThreadLevel {https with-proxy ipv6 with-auth bad-creds-provided} -constraints {needsSquid needsTls} -setup {
+test httpProxy-5.6.$ThreadLevel {https with-proxy ipv6 with-auth bad-creds-provided} -constraints {needsSquidAuth needsTls} -setup {
http::config -proxyhost $a6host -proxyport $a6port -proxynot {::1 localhost} -proxyauth $badCreds
} -body {
set token [http::geturl https://www.google.com/]
@@ -961,7 +999,7 @@ test httpProxy-5.6.$ThreadLevel {https with-proxy ipv6 with-auth bad-creds-provi
http::config -proxyhost {} -proxyport {} -proxynot {} -proxyauth {}
}
-test httpProxy-5.7.$ThreadLevel {http with-proxy ipv4 with-auth bad-creds-provided; check that 2nd request is possible} -constraints {needsSquid} -setup {
+test httpProxy-5.7.$ThreadLevel {http with-proxy ipv4 with-auth bad-creds-provided; check that 2nd request is possible} -constraints {needsSquidAuth} -setup {
array unset ::http::socketMapping
http::config -proxyhost $a4host -proxyport $a4port -proxynot {127.0.0.1 localhost} -proxyauth $badCreds
set token0 [http::geturl http://www.google.com/ -keepalive 1 -timeout 5000]
@@ -987,7 +1025,7 @@ test httpProxy-5.7.$ThreadLevel {http with-proxy ipv4 with-auth bad-creds-provid
http::config -proxyhost {} -proxyport {} -proxynot {} -proxyauth {}
}
-test httpProxy-5.7p.$ThreadLevel {http with-proxy ipv4 with-auth bad-creds-provided; check that 2nd request is possible, pipelining requested and possible} -constraints {needsSquid} -setup {
+test httpProxy-5.7p.$ThreadLevel {http with-proxy ipv4 with-auth bad-creds-provided; check that 2nd request is possible, pipelining requested and possible} -constraints {needsSquidAuth} -setup {
array unset ::http::socketMapping
http::config -proxyhost $a4host -proxyport $a4port -proxynot {127.0.0.1 localhost} -proxyauth $badCreds
} -body {
@@ -1018,7 +1056,7 @@ after idle {
http::config -proxyhost {} -proxyport {} -proxynot {} -proxyauth {}
}
-test httpProxy-5.8.$ThreadLevel {https with-proxy ipv4 with-auth bad-creds-provided; check that 2nd request is possible} -constraints {needsSquid needsTls} -setup {
+test httpProxy-5.8.$ThreadLevel {https with-proxy ipv4 with-auth bad-creds-provided; check that 2nd request is possible} -constraints {needsSquidAuth needsTls} -setup {
array unset ::http::socketMapping
http::config -proxyhost $a4host -proxyport $a4port -proxynot {127.0.0.1 localhost} -proxyauth $badCreds
set token0 [http::geturl https://www.google.com/ -keepalive 1 -timeout 5000]
@@ -1046,7 +1084,7 @@ test httpProxy-5.8.$ThreadLevel {https with-proxy ipv4 with-auth bad-creds-provi
http::config -proxyhost {} -proxyport {} -proxynot {} -proxyauth {}
}
-test httpProxy-5.8p.$ThreadLevel {https with-proxy ipv4 with-auth bad-creds-provided; check that 2nd request is possible, pipelining requested but not possible} -constraints {needsSquid needsTls} -setup {
+test httpProxy-5.8p.$ThreadLevel {https with-proxy ipv4 with-auth bad-creds-provided; check that 2nd request is possible, pipelining requested but not possible} -constraints {needsSquidAuth needsTls} -setup {
array unset ::http::socketMapping
http::config -proxyhost $a4host -proxyport $a4port -proxynot {127.0.0.1 localhost} -proxyauth $badCreds
} -body {
@@ -1079,7 +1117,7 @@ after idle {
http::config -proxyhost {} -proxyport {} -proxynot {} -proxyauth {}
}
-test httpProxy-5.9.$ThreadLevel {http with-proxy ipv6 with-auth bad-creds-provided; check that 2nd request is possible} -constraints {needsSquid} -setup {
+test httpProxy-5.9.$ThreadLevel {http with-proxy ipv6 with-auth bad-creds-provided; check that 2nd request is possible} -constraints {needsSquidAuth} -setup {
array unset ::http::socketMapping
http::config -proxyhost $a6host -proxyport $a6port -proxynot {::1 localhost} -proxyauth $badCreds
set token0 [http::geturl http://www.google.com/ -keepalive 1 -timeout 5000]
@@ -1105,7 +1143,7 @@ test httpProxy-5.9.$ThreadLevel {http with-proxy ipv6 with-auth bad-creds-provid
http::config -proxyhost {} -proxyport {} -proxynot {} -proxyauth {}
}
-test httpProxy-5.10.$ThreadLevel {https with-proxy ipv6 with-auth bad-creds-provided; check that 2nd request is possible} -constraints {needsSquid needsTls} -setup {
+test httpProxy-5.10.$ThreadLevel {https with-proxy ipv6 with-auth bad-creds-provided; check that 2nd request is possible} -constraints {needsSquidAuth needsTls} -setup {
array unset ::http::socketMapping
http::config -proxyhost $a6host -proxyport $a6port -proxynot {::1 localhost} -proxyauth $badCreds
set token0 [http::geturl https://www.google.com/ -keepalive 1 -timeout 5000]