Files
orly/pkg/tests/generate.go
mleku 4ee09ada17 Relocate tests/generate.go under pkg/tests/
- **tests/generate.go**:
  - Moved file to `pkg/tests/` directory for better organization.
2025-07-17 14:02:48 +01:00

35 lines
887 B
Go

// Package tests provides a tool to generate arbitrary random events for fuzz
// testing the encoder.
package tests
import (
"encoding/base64"
"lukechampine.com/frand"
"orly.dev/pkg/crypto/p256k"
"orly.dev/pkg/encoders/event"
"orly.dev/pkg/encoders/kind"
"orly.dev/pkg/encoders/timestamp"
"orly.dev/pkg/utils/chk"
)
// GenerateEvent creates events full of random kinds and content data.
func GenerateEvent(maxSize int) (ev *event.E, binSize int, err error) {
l := frand.Intn(maxSize * 6 / 8) // account for base64 expansion
ev = &event.E{
Kind: kind.TextNote,
CreatedAt: timestamp.Now(),
Content: []byte(base64.StdEncoding.EncodeToString(frand.Bytes(l))),
}
signer := new(p256k.Signer)
if err = signer.Generate(); chk.E(err) {
return
}
if err = ev.Sign(signer); chk.E(err) {
return
}
var bin []byte
bin = ev.Marshal(bin)
binSize = len(bin)
return
}