From: Jaana Burcu Dogan Date: Fri, 19 Aug 2016 17:46:49 +0000 (-0700) Subject: net/http/httptrace: test the order of hooks when ctx has multi ClientTraces X-Git-Tag: go1.8beta1~1761 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=c10f8700e065338dcacda0f4659339e86c402358;p=gostls13.git net/http/httptrace: test the order of hooks when ctx has multi ClientTraces Change-Id: I95cae14bb5561947ada9577fb05053f93321a4a8 Reviewed-on: https://go-review.googlesource.com/27400 Run-TryBot: Jaana Burcu Dogan Reviewed-by: Brad Fitzpatrick --- diff --git a/src/net/http/httptrace/trace_test.go b/src/net/http/httptrace/trace_test.go index c7eaed83d4..77941b3519 100644 --- a/src/net/http/httptrace/trace_test.go +++ b/src/net/http/httptrace/trace_test.go @@ -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