38 lines
545 B
Go
38 lines
545 B
Go
// Generate a repatable string of characters for fuzz testing.
|
|
|
|
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"math/rand"
|
|
"unicode"
|
|
)
|
|
|
|
func main() {
|
|
source := rand.NewSource(17)
|
|
r := rand.New(source)
|
|
|
|
for {
|
|
switch r.Intn(4) {
|
|
case 0:
|
|
if r.Intn(20) == 0 {
|
|
fmt.Printf("\n")
|
|
} else {
|
|
out(r, 32, 128)
|
|
}
|
|
case 1:
|
|
out(r, 128, 256)
|
|
case 2:
|
|
out(r, 256, 0x10000)
|
|
default:
|
|
out(r, 0x10000, unicode.MaxRune)
|
|
}
|
|
}
|
|
}
|
|
|
|
func out(r *rand.Rand, begin, end int) {
|
|
var c rune
|
|
c = (rune)(r.Intn(end-begin) + begin)
|
|
fmt.Printf("%c", c)
|
|
}
|