mirror of
https://github.com/hanzozt/zt.git
synced 2026-11-03 05:01:58 +00:00
76 lines
1.3 KiB
Go
76 lines
1.3 KiB
Go
package loop4
|
|
|
|
import (
|
|
"bytes"
|
|
"crypto/rand"
|
|
"crypto/sha512"
|
|
"github.com/google/go-cmp/cmp"
|
|
"github.com/openziti/metrics"
|
|
loopPb "github.com/openziti/ziti/zititest/ziti-traffic-test/loop4/pb"
|
|
"github.com/stretchr/testify/require"
|
|
"reflect"
|
|
"testing"
|
|
)
|
|
|
|
type testPeer struct {
|
|
bytes.Buffer
|
|
}
|
|
|
|
func (t *testPeer) Close() error {
|
|
return nil
|
|
}
|
|
|
|
func Test_MessageSerDeser(t *testing.T) {
|
|
req := require.New(t)
|
|
data := make([]byte, 4192)
|
|
_, err := rand.Read(data)
|
|
req.NoError(err)
|
|
|
|
hash := sha512.Sum512(data)
|
|
|
|
block := &RandHashedBlock{
|
|
Type: BlockTypePlain,
|
|
Sequence: 10,
|
|
Hash: hash[:],
|
|
Data: data,
|
|
}
|
|
|
|
testBuf := &testPeer{}
|
|
|
|
metricsRegistry := metrics.NewRegistry("test", nil)
|
|
|
|
p, err := newProtocol(testBuf, "test", metricsRegistry)
|
|
req.NoError(err)
|
|
|
|
p.test = &loopPb.Test{
|
|
Name: "test",
|
|
}
|
|
|
|
req.NoError(block.Tx(p))
|
|
|
|
readBlock := &RandHashedBlock{}
|
|
req.NoError(readBlock.Rx(p))
|
|
|
|
req.True(reflect.DeepEqual(block, readBlock), cmp.Diff(block, readBlock))
|
|
|
|
data = make([]byte, 4192)
|
|
_, err = rand.Read(data)
|
|
req.NoError(err)
|
|
|
|
hash = sha512.Sum512(data)
|
|
|
|
block = &RandHashedBlock{
|
|
Type: BlockTypeLatencyRequest,
|
|
Sequence: 10,
|
|
Hash: hash[:],
|
|
Data: data,
|
|
}
|
|
|
|
req.NoError(block.Tx(p))
|
|
|
|
readBlock = &RandHashedBlock{}
|
|
req.NoError(readBlock.Rx(p))
|
|
|
|
req.Equal("", cmp.Diff(block, readBlock))
|
|
}
|