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) } } }) }