summaryrefslogtreecommitdiff
path: root/spew/dump_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'spew/dump_test.go')
-rw-r--r--spew/dump_test.go42
1 files changed, 42 insertions, 0 deletions
diff --git a/spew/dump_test.go b/spew/dump_test.go
index 31b7b6b..354c71c 100644
--- a/spew/dump_test.go
+++ b/spew/dump_test.go
@@ -65,6 +65,7 @@ import (
"bytes"
"fmt"
"github.com/davecgh/go-spew/spew"
+ "reflect"
"testing"
"unsafe"
)
@@ -896,3 +897,44 @@ func TestDump(t *testing.T) {
}
}
}
+
+func TestSortValues(t *testing.T) {
+ v := reflect.ValueOf
+
+ a := v("a")
+ b := v("b")
+ c := v("c")
+ tests := []struct {
+ input []reflect.Value
+ expected []reflect.Value
+ }{
+ {[]reflect.Value{v(2), v(1), v(3)},
+ []reflect.Value{v(1), v(2), v(3)}},
+ {[]reflect.Value{v(2.), v(1.), v(3.)},
+ []reflect.Value{v(1.), v(2.), v(3.)}},
+ {[]reflect.Value{v(false), v(true), v(false)},
+ []reflect.Value{v(false), v(false), v(true)}},
+ {[]reflect.Value{b, a, c},
+ []reflect.Value{a, b, c}},
+ }
+ for _, test := range tests {
+ spew.SortValues(test.input)
+ if !reflect.DeepEqual(test.input, test.expected) {
+ t.Errorf("Sort mismatch:\n %v != %v", test.input, test.expected)
+ }
+ }
+}
+
+func TestDumpSortedKeys(t *testing.T) {
+ cfg := spew.ConfigState{SortKeys: true}
+ s := cfg.Sdump(map[int]string{1: "1", 3: "3", 2: "2"})
+ expected := `(map[int]string) {
+(int) 1: (string) "1",
+(int) 2: (string) "2",
+(int) 3: (string) "3"
+}
+`
+ if s != expected {
+ t.Errorf("Sorted keys mismatch:\n %v %v", s, expected)
+ }
+}