forked from TrueCloudLab/xk6-frostfs
Evgenii Stratonikov
74121bb387
Return an interface which can be converted to `io.Reader` as well as report payload size and hash. Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
28 lines
513 B
Go
28 lines
513 B
Go
package datagen
|
|
|
|
import (
|
|
"crypto/rand"
|
|
"crypto/sha256"
|
|
"encoding/hex"
|
|
"io"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestFixedPayload(t *testing.T) {
|
|
const size = 123
|
|
data := make([]byte, size)
|
|
_, err := rand.Read(data)
|
|
require.NoError(t, err)
|
|
|
|
p := NewFixedPayload(data)
|
|
require.Equal(t, size, p.Size())
|
|
|
|
actual, err := io.ReadAll(p.Reader())
|
|
require.NoError(t, err)
|
|
require.Equal(t, data, actual)
|
|
|
|
h := sha256.Sum256(data)
|
|
require.Equal(t, hex.EncodeToString(h[:]), p.Hash())
|
|
}
|