2011-03-24 23:46:17 +00:00
|
|
|
// Copyright 2011 The Go Authors. All rights reserved.
|
|
|
|
// Use of this source code is governed by a BSD-style
|
|
|
|
// license that can be found in the LICENSE file.
|
|
|
|
|
|
|
|
// Bridge package to expose http internals to tests in the http_test
|
|
|
|
// package.
|
|
|
|
|
|
|
|
package http
|
|
|
|
|
2012-12-12 23:13:29 +00:00
|
|
|
import (
|
|
|
|
"net"
|
|
|
|
"time"
|
|
|
|
)
|
|
|
|
|
|
|
|
func NewLoggingConn(baseName string, c net.Conn) net.Conn {
|
|
|
|
return newLoggingConn(baseName, c)
|
|
|
|
}
|
2011-12-13 19:16:27 +00:00
|
|
|
|
2013-11-06 19:49:01 +00:00
|
|
|
var ExportAppendTime = appendTime
|
|
|
|
|
2013-07-16 06:54:42 +00:00
|
|
|
func (t *Transport) NumPendingRequestsForTesting() int {
|
|
|
|
t.reqMu.Lock()
|
|
|
|
defer t.reqMu.Unlock()
|
2014-07-19 08:53:52 +00:00
|
|
|
return len(t.reqCanceler)
|
2013-07-16 06:54:42 +00:00
|
|
|
}
|
|
|
|
|
2011-03-24 23:46:17 +00:00
|
|
|
func (t *Transport) IdleConnKeysForTesting() (keys []string) {
|
|
|
|
keys = make([]string, 0)
|
2013-07-16 06:54:42 +00:00
|
|
|
t.idleMu.Lock()
|
|
|
|
defer t.idleMu.Unlock()
|
2011-03-24 23:46:17 +00:00
|
|
|
if t.idleConn == nil {
|
|
|
|
return
|
|
|
|
}
|
2011-05-20 00:18:15 +00:00
|
|
|
for key := range t.idleConn {
|
2014-06-06 22:37:27 +00:00
|
|
|
keys = append(keys, key.String())
|
2011-03-24 23:46:17 +00:00
|
|
|
}
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
func (t *Transport) IdleConnCountForTesting(cacheKey string) int {
|
2013-07-16 06:54:42 +00:00
|
|
|
t.idleMu.Lock()
|
|
|
|
defer t.idleMu.Unlock()
|
2011-03-24 23:46:17 +00:00
|
|
|
if t.idleConn == nil {
|
|
|
|
return 0
|
|
|
|
}
|
2014-06-06 22:37:27 +00:00
|
|
|
for k, conns := range t.idleConn {
|
|
|
|
if k.String() == cacheKey {
|
|
|
|
return len(conns)
|
|
|
|
}
|
2011-03-24 23:46:17 +00:00
|
|
|
}
|
2014-06-06 22:37:27 +00:00
|
|
|
return 0
|
2011-03-24 23:46:17 +00:00
|
|
|
}
|
2011-05-20 00:18:15 +00:00
|
|
|
|
2013-11-06 19:49:01 +00:00
|
|
|
func (t *Transport) IdleConnChMapSizeForTesting() int {
|
|
|
|
t.idleMu.Lock()
|
|
|
|
defer t.idleMu.Unlock()
|
|
|
|
return len(t.idleConnCh)
|
|
|
|
}
|
|
|
|
|
2011-12-13 19:16:27 +00:00
|
|
|
func NewTestTimeoutHandler(handler Handler, ch <-chan time.Time) Handler {
|
|
|
|
f := func() <-chan time.Time {
|
2011-05-20 00:18:15 +00:00
|
|
|
return ch
|
|
|
|
}
|
|
|
|
return &timeoutHandler{handler, f, ""}
|
|
|
|
}
|
2013-07-16 06:54:42 +00:00
|
|
|
|
2014-06-06 22:37:27 +00:00
|
|
|
func ResetCachedEnvironment() {
|
|
|
|
httpProxyEnv.reset()
|
|
|
|
noProxyEnv.reset()
|
|
|
|
}
|
|
|
|
|
2013-07-16 06:54:42 +00:00
|
|
|
var DefaultUserAgent = defaultUserAgent
|