summaryrefslogtreecommitdiff
path: root/spew/dump_test.go
diff options
context:
space:
mode:
authorDave Collins <[email protected]>2013-11-14 19:11:52 -0800
committerDave Collins <[email protected]>2013-11-14 19:11:52 -0800
commitf13f098c7a759ac1c79318d6aee18426939db828 (patch)
tree88f873e88a3782c3f821c3f502611025c5bb7ba4 /spew/dump_test.go
parent1fe9f5ca4b46a8247ae5939097f5cfc5d8370729 (diff)
parent8e1b34364faac53e7da8801da5baf0c0df120a42 (diff)
Merge pull request #13 from pmezard/add-option-to-sort-map-keys
config: add SortKeys option to sort native map keys before display
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)
+ }
+}