From fbc419f92ed1f07fff7fea54d8a4cba603018a19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=B6=9B?= Date: Sun, 5 Oct 2025 09:36:43 +0800 Subject: [PATCH] =?UTF-8?q?test(base36):=20=E6=B7=BB=E5=8A=A0=20Encode=20?= =?UTF-8?q?=E5=92=8C=20EncodeInt64=20=E7=9A=84=E6=A8=A1=E7=B3=8A=E6=B5=8B?= =?UTF-8?q?=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 为 base36 包添加了两个 fuzz 测试函数,分别用于测试 Encode/Decode 和 EncodeInt64/DecodeToInt64 的正确性。 测试覆盖了字符串和 int64 类型的编码与解码过程, 确保在各种输入下功能的稳定性和正确性。 --- serialize/base36/base36_test.go | 42 +++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 serialize/base36/base36_test.go diff --git a/serialize/base36/base36_test.go b/serialize/base36/base36_test.go new file mode 100644 index 0000000..7e8aaf5 --- /dev/null +++ b/serialize/base36/base36_test.go @@ -0,0 +1,42 @@ +package base36 + +import ( + "fmt" + "testing" +) + +func FuzzEncode(f *testing.F) { + testCases := []string{"a", "abc", "uuid"} + for _, tc := range testCases { + f.Add(tc) + } + f.Fuzz(func(t *testing.T, a string) { + encoded := Encode([]byte(a)) + redecoded, err := Decode(encoded) + fmt.Printf("Origin: %s, Encoded: %s\n", a, encoded) + if err != nil { + t.Errorf("Decode(%q) failed: %v", encoded, err) + } + if string(redecoded) != a { + t.Errorf("Decode(%q) = %q, want %q", encoded, redecoded, a) + } + }) +} + +func FuzzEncodeInt64(f *testing.F) { + testCases := []int64{1, 6, 34598347534, 234532543, 2342546456, 34587639284756293} + for _, tc := range testCases { + f.Add(tc) + } + f.Fuzz(func(t *testing.T, a int64) { + encoded := EncodeInt64(a) + redecoded, err := DecodeToInt64(encoded) + fmt.Printf("Origin: %d, Encoded: %s\n", a, encoded) + if err != nil { + t.Errorf("Decode(%q) failed: %v", encoded, err) + } + if redecoded != a { + t.Errorf("Decode(%q) = %q, want %q", encoded, redecoded, a) + } + }) +}