FILE / ScuroNeko/mtg

mtglib/internal/tls/fake/client_side_fuzz_test.go

Исходный файл и его история в репозитории.
FILE 30aa9d3a44b6f8521ec374148337133e71c96511
Files
mtg/mtglib/internal/tls/fake/client_side_fuzz_test.go
T
2026-03-12 19:13:33 +01:00

49 lines
995 B
Go

package fake_test
import (
"bytes"
"testing"
"time"
"github.com/9seconds/mtg/v2/internal/testlib"
"github.com/9seconds/mtg/v2/mtglib"
"github.com/9seconds/mtg/v2/mtglib/internal/tls/fake"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/mock"
"github.com/stretchr/testify/require"
)
type connMock struct {
testlib.EssentialsConnMock
readBuf *bytes.Buffer
}
func (f *connMock) Read(p []byte) (int, error) {
return f.readBuf.Read(p)
}
func FuzzReadClientHello(f *testing.F) {
seed := [248]byte{}
secret, err := mtglib.ParseSecret(
"ee367a189aee18fa31c190054efd4a8e9573746f726167652e676f6f676c65617069732e636f6d",
)
require.NoError(f, err)
f.Add(seed[:])
f.Fuzz(func(t *testing.T, value []byte) {
r := &connMock{
readBuf: bytes.NewBuffer(value),
}
r.
On("SetReadDeadline", mock.AnythingOfType("time.Time")).
Twice().
Return(nil)
_, err := fake.ReadClientHello(r, secret.Key[:], secret.Host, time.Hour)
assert.Error(t, err)
})
}