Skip to content

Instantly share code, notes, and snippets.

@tombergan
Created May 10, 2017 04:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tombergan/4f154bc9abad81e3428dc3121a4c2831 to your computer and use it in GitHub Desktop.
Save tombergan/4f154bc9abad81e3428dc3121a4c2831 to your computer and use it in GitHub Desktop.
diff --git a/http2/server_test.go b/http2/server_test.go
index 4449683..a6b14fe 100644
--- a/http2/server_test.go
+++ b/http2/server_test.go
@@ -2967,9 +2967,10 @@ func BenchmarkServerGets(b *testing.B) {
b.ReportAllocs()
const msg = "Hello, world"
- st := newServerTester(b, func(w http.ResponseWriter, r *http.Request) {
+ handler := func(w http.ResponseWriter, r *http.Request) {
io.WriteString(w, msg)
- })
+ }
+ st := newServerTester(b, handler, func(s *Server) { s.MaxConcurrentStreams = uint32(b.N + 1) })
defer st.Close()
st.greet()
@@ -2978,6 +2979,22 @@ func BenchmarkServerGets(b *testing.B) {
b.Fatal(err)
}
+ done := make(chan struct{})
+ go func() {
+ defer close(done)
+ finished := 0
+ for finished < b.N {
+ f, err := st.readFrame()
+ if err != nil {
+ st.t.Fatalf("Error: %v", err)
+ return
+ }
+ if df, ok := f.(*DataFrame); ok && df.StreamEnded() {
+ finished++
+ }
+ }
+ }()
+
for i := 0; i < b.N; i++ {
id := 1 + uint32(i)*2
st.writeHeaders(HeadersFrameParam{
@@ -2986,12 +3003,8 @@ func BenchmarkServerGets(b *testing.B) {
EndStream: true,
EndHeaders: true,
})
- st.wantHeaders()
- df := st.wantData()
- if !df.StreamEnded() {
- b.Fatalf("DATA didn't have END_STREAM; got %v", df)
- }
}
+ <-done
}
func BenchmarkServerPosts(b *testing.B) {
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment