]> Cypherpunks repositories - gostls13.git/commitdiff
net/http/httptrace: test the order of hooks when ctx has multi ClientTraces
authorJaana Burcu Dogan <jbd@google.com>
Fri, 19 Aug 2016 17:46:49 +0000 (10:46 -0700)
committerJaana Burcu Dogan <jbd@google.com>
Fri, 19 Aug 2016 23:40:55 +0000 (23:40 +0000)
Change-Id: I95cae14bb5561947ada9577fb05053f93321a4a8
Reviewed-on: https://go-review.googlesource.com/27400
Run-TryBot: Jaana Burcu Dogan <jbd@google.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
src/net/http/httptrace/trace_test.go

index c7eaed83d478518ced0953b20e3702b52d2818d4..77941b351980d5d2af0621d7162988dcfbceb5ed 100644 (file)
@@ -6,9 +6,36 @@ package httptrace
 
 import (
        "bytes"
+       "context"
        "testing"
 )
 
+func TestWithClientTrace(t *testing.T) {
+       var buf bytes.Buffer
+       connectStart := func(b byte) func(network, addr string) {
+               return func(network, addr string) {
+                       buf.WriteByte(b)
+               }
+       }
+
+       ctx := context.Background()
+       oldtrace := &ClientTrace{
+               ConnectStart: connectStart('O'),
+       }
+       ctx = WithClientTrace(ctx, oldtrace)
+       newtrace := &ClientTrace{
+               ConnectStart: connectStart('N'),
+       }
+       ctx = WithClientTrace(ctx, newtrace)
+       trace := ContextClientTrace(ctx)
+
+       buf.Reset()
+       trace.ConnectStart("net", "addr")
+       if got, want := buf.String(), "NO"; got != want {
+               t.Errorf("got %q; want %q", got, want)
+       }
+}
+
 func TestCompose(t *testing.T) {
        var buf bytes.Buffer
        var testNum int