summaryrefslogtreecommitdiffstats
path: root/src/encoding/json/fold_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/encoding/json/fold_test.go')
-rw-r--r--src/encoding/json/fold_test.go50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/encoding/json/fold_test.go b/src/encoding/json/fold_test.go
new file mode 100644
index 0000000..9d6fd05
--- /dev/null
+++ b/src/encoding/json/fold_test.go
@@ -0,0 +1,50 @@
+// Copyright 2013 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 json
+
+import (
+ "bytes"
+ "testing"
+)
+
+func FuzzEqualFold(f *testing.F) {
+ for _, ss := range [][2]string{
+ {"", ""},
+ {"123abc", "123ABC"},
+ {"αβδ", "ΑΒΔ"},
+ {"abc", "xyz"},
+ {"abc", "XYZ"},
+ {"1", "2"},
+ {"hello, world!", "hello, world!"},
+ {"hello, world!", "Hello, World!"},
+ {"hello, world!", "HELLO, WORLD!"},
+ {"hello, world!", "jello, world!"},
+ {"γειά, κόσμε!", "γειά, κόσμε!"},
+ {"γειά, κόσμε!", "Γειά, Κόσμε!"},
+ {"γειά, κόσμε!", "ΓΕΙΆ, ΚΌΣΜΕ!"},
+ {"γειά, κόσμε!", "ΛΕΙΆ, ΚΌΣΜΕ!"},
+ {"AESKey", "aesKey"},
+ {"AESKEY", "aes_key"},
+ {"aes_key", "AES_KEY"},
+ {"AES_KEY", "aes-key"},
+ {"aes-key", "AES-KEY"},
+ {"AES-KEY", "aesKey"},
+ {"aesKey", "AesKey"},
+ {"AesKey", "AESKey"},
+ {"AESKey", "aeskey"},
+ {"DESKey", "aeskey"},
+ {"AES Key", "aeskey"},
+ } {
+ f.Add([]byte(ss[0]), []byte(ss[1]))
+ }
+ equalFold := func(x, y []byte) bool { return string(foldName(x)) == string(foldName(y)) }
+ f.Fuzz(func(t *testing.T, x, y []byte) {
+ got := equalFold(x, y)
+ want := bytes.EqualFold(x, y)
+ if got != want {
+ t.Errorf("equalFold(%q, %q) = %v, want %v", x, y, got, want)
+ }
+ })
+}