From c10f8700e065338dcacda0f4659339e86c402358 Mon Sep 17 00:00:00 2001 From: Jaana Burcu Dogan Date: Fri, 19 Aug 2016 10:46:49 -0700 Subject: [PATCH] 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 --- src/net/http/httptrace/trace_test.go | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) 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 -- 2.48.1