Tracestate.Entries should work on nil *Tracestate (#902)
diff --git a/trace/tracestate/tracestate.go b/trace/tracestate/tracestate.go
index a3232e2..2345dd3 100644
--- a/trace/tracestate/tracestate.go
+++ b/trace/tracestate/tracestate.go
@@ -55,6 +55,9 @@
// Entries returns a slice of Entry.
func (ts *Tracestate) Entries() []Entry {
+ if ts == nil {
+ return nil
+ }
return ts.entries
}
diff --git a/trace/tracestate/tracestate_test.go b/trace/tracestate/tracestate_test.go
index f4b2635..db76d9c 100644
--- a/trace/tracestate/tracestate_test.go
+++ b/trace/tracestate/tracestate_test.go
@@ -301,3 +301,13 @@
wantError(t, tracestate, err, testname,
"create did not err when entries contained duplicate keys")
}
+
+func TestEntriesWithNil(t *testing.T) {
+ ts, err := New(nil)
+ if err != nil {
+ t.Fatal(err)
+ }
+ if got, want := len(ts.Entries()), 0; got != want {
+ t.Errorf("zero value should have no entries, got %v; want %v", got, want)
+ }
+}