From e4e84c7aad9fb887150ba1fcfaf64463765419c9 Mon Sep 17 00:00:00 2001 From: Ethan Werner Date: Fri, 7 Aug 2026 17:17:32 +0400 Subject: javascript port --- go/snowflake_fuzz_test.go | 102 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 go/snowflake_fuzz_test.go (limited to 'go/snowflake_fuzz_test.go') diff --git a/go/snowflake_fuzz_test.go b/go/snowflake_fuzz_test.go new file mode 100644 index 0000000..a2ba624 --- /dev/null +++ b/go/snowflake_fuzz_test.go @@ -0,0 +1,102 @@ +package snowflake + +import "testing" + +func FuzzFromString(f *testing.F) { + s := New() + f.Add(s.String()) + f.Add("") + f.Add("0") + f.Add("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789") + + f.Fuzz(func(t *testing.T, data string) { + result, err := FromString(data) + if err != nil { + return + } + if !result.IsZero() { + roundTrip := result.String() + parsed, err := FromString(roundTrip) + if err != nil { + t.Fatalf("round-trip failed: %v", err) + } + if parsed != result { + t.Fatalf("round-trip mismatch: %v != %v", result, parsed) + } + } + }) +} + +func FuzzFromHex(f *testing.F) { + s := New() + f.Add(s.Hex()) + f.Add("") + f.Add("00") + + f.Fuzz(func(t *testing.T, data string) { + result, err := FromHex(data) + if err != nil { + return + } + roundTrip := result.Hex() + parsed, err := FromHex(roundTrip) + if err != nil { + t.Fatalf("round-trip failed: %v", err) + } + if parsed != result { + t.Fatalf("round-trip mismatch: %v != %v", result, parsed) + } + }) +} + +func FuzzUnmarshalJSON(f *testing.F) { + s := New() + serialized, _ := s.MarshalJSON() + f.Add(string(serialized)) + f.Add(`""`) + f.Add(`"0"`) + + f.Fuzz(func(t *testing.T, data string) { + var result Snowflake + err := result.UnmarshalJSON([]byte(data)) + if err != nil { + return + } + if !result.IsZero() { + roundTrip, _ := result.MarshalJSON() + var parsed Snowflake + if err := parsed.UnmarshalJSON(roundTrip); err != nil { + t.Fatalf("round-trip failed: %v", err) + } + if parsed != result { + t.Fatalf("round-trip mismatch: %v != %v", result, parsed) + } + } + }) +} + +func FuzzUnmarshalText(f *testing.F) { + s := New() + serialized, _ := s.MarshalText() + f.Add(string(serialized)) + f.Add("") + f.Add("0") + + f.Fuzz(func(t *testing.T, data string) { + var result Snowflake + err := result.UnmarshalText([]byte(data)) + if err != nil { + return + } + if !result.IsZero() { + roundTrip, _ := result.MarshalText() + var parsed Snowflake + if err := parsed.UnmarshalText(roundTrip); err != nil { + t.Fatalf("round-trip failed: %v", err) + } + if parsed != result { + t.Fatalf("round-trip mismatch: %v != %v", result, parsed) + } + } + }) +} -- cgit v1.3.1