summaryrefslogtreecommitdiffstats
path: root/vendor/golang.org/x/net/trace/trace_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/golang.org/x/net/trace/trace_test.go')
-rw-r--r--vendor/golang.org/x/net/trace/trace_test.go71
1 files changed, 71 insertions, 0 deletions
diff --git a/vendor/golang.org/x/net/trace/trace_test.go b/vendor/golang.org/x/net/trace/trace_test.go
new file mode 100644
index 000000000..14d7c237a
--- /dev/null
+++ b/vendor/golang.org/x/net/trace/trace_test.go
@@ -0,0 +1,71 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package trace
+
+import (
+ "net/http"
+ "reflect"
+ "testing"
+)
+
+type s struct{}
+
+func (s) String() string { return "lazy string" }
+
+// TestReset checks whether all the fields are zeroed after reset.
+func TestReset(t *testing.T) {
+ tr := New("foo", "bar")
+ tr.LazyLog(s{}, false)
+ tr.LazyPrintf("%d", 1)
+ tr.SetRecycler(func(_ interface{}) {})
+ tr.SetTraceInfo(3, 4)
+ tr.SetMaxEvents(100)
+ tr.SetError()
+ tr.Finish()
+
+ tr.(*trace).reset()
+
+ if !reflect.DeepEqual(tr, new(trace)) {
+ t.Errorf("reset didn't clear all fields: %+v", tr)
+ }
+}
+
+// TestResetLog checks whether all the fields are zeroed after reset.
+func TestResetLog(t *testing.T) {
+ el := NewEventLog("foo", "bar")
+ el.Printf("message")
+ el.Errorf("error")
+ el.Finish()
+
+ el.(*eventLog).reset()
+
+ if !reflect.DeepEqual(el, new(eventLog)) {
+ t.Errorf("reset didn't clear all fields: %+v", el)
+ }
+}
+
+func TestAuthRequest(t *testing.T) {
+ testCases := []struct {
+ host string
+ want bool
+ }{
+ {host: "192.168.23.1", want: false},
+ {host: "192.168.23.1:8080", want: false},
+ {host: "malformed remote addr", want: false},
+ {host: "localhost", want: true},
+ {host: "localhost:8080", want: true},
+ {host: "127.0.0.1", want: true},
+ {host: "127.0.0.1:8080", want: true},
+ {host: "::1", want: true},
+ {host: "[::1]:8080", want: true},
+ }
+ for _, tt := range testCases {
+ req := &http.Request{RemoteAddr: tt.host}
+ any, sensitive := AuthRequest(req)
+ if any != tt.want || sensitive != tt.want {
+ t.Errorf("AuthRequest(%q) = %t, %t; want %t, %t", tt.host, any, sensitive, tt.want, tt.want)
+ }
+ }
+}