|
@@ -75,6 +75,7 @@ func resetHooks() {
|
|
|
type serverTesterOpt string
|
|
type serverTesterOpt string
|
|
|
|
|
|
|
|
var optOnlyServer = serverTesterOpt("only_server")
|
|
var optOnlyServer = serverTesterOpt("only_server")
|
|
|
|
|
+var optQuiet = serverTesterOpt("quiet_logging")
|
|
|
|
|
|
|
|
func newServerTester(t testing.TB, handler http.HandlerFunc, opts ...interface{}) *serverTester {
|
|
func newServerTester(t testing.TB, handler http.HandlerFunc, opts ...interface{}) *serverTester {
|
|
|
resetHooks()
|
|
resetHooks()
|
|
@@ -89,7 +90,7 @@ func newServerTester(t testing.TB, handler http.HandlerFunc, opts ...interface{}
|
|
|
NextProtos: []string{NextProtoTLS, "h2-14"},
|
|
NextProtos: []string{NextProtoTLS, "h2-14"},
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- onlyServer := false
|
|
|
|
|
|
|
+ var onlyServer, quiet bool
|
|
|
for _, opt := range opts {
|
|
for _, opt := range opts {
|
|
|
switch v := opt.(type) {
|
|
switch v := opt.(type) {
|
|
|
case func(*tls.Config):
|
|
case func(*tls.Config):
|
|
@@ -97,7 +98,12 @@ func newServerTester(t testing.TB, handler http.HandlerFunc, opts ...interface{}
|
|
|
case func(*httptest.Server):
|
|
case func(*httptest.Server):
|
|
|
v(ts)
|
|
v(ts)
|
|
|
case serverTesterOpt:
|
|
case serverTesterOpt:
|
|
|
- onlyServer = (v == optOnlyServer)
|
|
|
|
|
|
|
+ switch v {
|
|
|
|
|
+ case optOnlyServer:
|
|
|
|
|
+ onlyServer = true
|
|
|
|
|
+ case optQuiet:
|
|
|
|
|
+ quiet = true
|
|
|
|
|
+ }
|
|
|
default:
|
|
default:
|
|
|
t.Fatalf("unknown newServerTester option type %T", v)
|
|
t.Fatalf("unknown newServerTester option type %T", v)
|
|
|
}
|
|
}
|
|
@@ -116,7 +122,11 @@ func newServerTester(t testing.TB, handler http.HandlerFunc, opts ...interface{}
|
|
|
st.hpackDec = hpack.NewDecoder(initialHeaderTableSize, st.onHeaderField)
|
|
st.hpackDec = hpack.NewDecoder(initialHeaderTableSize, st.onHeaderField)
|
|
|
|
|
|
|
|
ts.TLS = ts.Config.TLSConfig // the httptest.Server has its own copy of this TLS config
|
|
ts.TLS = ts.Config.TLSConfig // the httptest.Server has its own copy of this TLS config
|
|
|
- ts.Config.ErrorLog = log.New(io.MultiWriter(stderrv(), twriter{t: t, st: st}, logBuf), "", log.LstdFlags)
|
|
|
|
|
|
|
+ if quiet {
|
|
|
|
|
+ ts.Config.ErrorLog = log.New(ioutil.Discard, "", 0)
|
|
|
|
|
+ } else {
|
|
|
|
|
+ ts.Config.ErrorLog = log.New(io.MultiWriter(stderrv(), twriter{t: t, st: st}, logBuf), "", log.LstdFlags)
|
|
|
|
|
+ }
|
|
|
ts.StartTLS()
|
|
ts.StartTLS()
|
|
|
|
|
|
|
|
if VerboseLogs {
|
|
if VerboseLogs {
|
|
@@ -1120,8 +1130,9 @@ func TestServer_RSTStream_Unblocks_Read(t *testing.T) {
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
func(err error) {
|
|
func(err error) {
|
|
|
- if err == nil {
|
|
|
|
|
- t.Error("unexpected nil error from Request.Body.Read")
|
|
|
|
|
|
|
+ want := StreamError{StreamID: 0x1, Code: 0x8}
|
|
|
|
|
+ if !reflect.DeepEqual(err, want) {
|
|
|
|
|
+ t.Errorf("Read error = %v; want %v", err, want)
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
)
|
|
)
|