Skip to content

Commit 7abfecc

Browse files
committed
Minor cleanup
1 parent 6c85d8d commit 7abfecc

File tree

2 files changed

+81
-94
lines changed

2 files changed

+81
-94
lines changed

types/binary_compatibility_test.go

Lines changed: 0 additions & 72 deletions
This file was deleted.

types/p2p_envelope_test.go

Lines changed: 81 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package types
22

33
import (
4-
"crypto/rand"
4+
"bytes"
55
"testing"
66
"time"
77

@@ -13,11 +13,12 @@ func TestP2PEnvelope_MarshalUnmarshal(t *testing.T) {
1313
// Create a P2PData envelope
1414
data := &Data{
1515
Metadata: &Metadata{
16-
ChainID: "test-chain",
17-
Height: 10,
18-
Time: uint64(time.Now().UnixNano()),
16+
ChainID: "test-chain",
17+
Height: 10,
18+
Time: uint64(time.Now().UnixNano()),
19+
LastDataHash: bytes.Repeat([]byte{0x1}, 32),
1920
},
20-
Txs: nil,
21+
Txs: Txs{[]byte{0x1}, []byte{0x2}},
2122
}
2223
envelope := &P2PData{
2324
Message: data,
@@ -36,11 +37,11 @@ func TestP2PEnvelope_MarshalUnmarshal(t *testing.T) {
3637
assert.Equal(t, envelope.DAHeightHint, newEnvelope.DAHeightHint)
3738
assert.Equal(t, envelope.Message.Height(), newEnvelope.Message.Height())
3839
assert.Equal(t, envelope.Message.ChainID(), newEnvelope.Message.ChainID())
40+
assert.Equal(t, envelope.Message.LastDataHash, newEnvelope.Message.LastDataHash)
41+
assert.Equal(t, envelope.Message.Txs, newEnvelope.Message.Txs)
3942
}
4043

4144
func TestP2PSignedHeader_MarshalUnmarshal(t *testing.T) {
42-
// Create a SignedHeader
43-
// Minimal valid SignedHeader
4445
header := &SignedHeader{
4546
Header: Header{
4647
BaseHeader: BaseHeader{
@@ -52,34 +53,92 @@ func TestP2PSignedHeader_MarshalUnmarshal(t *testing.T) {
5253
Block: 1,
5354
App: 2,
5455
},
55-
DataHash: make([]byte, 32),
56-
},
57-
Signature: make([]byte, 64),
58-
Signer: Signer{
59-
// PubKey can be nil for basic marshal check
60-
Address: make([]byte, 20),
56+
LastHeaderHash: GetRandomBytes(32),
57+
DataHash: GetRandomBytes(32),
58+
AppHash: GetRandomBytes(32),
59+
ProposerAddress: GetRandomBytes(32),
60+
ValidatorHash: GetRandomBytes(32),
6161
},
62+
// Signature and Signer are transient
6263
}
63-
_, _ = rand.Read(header.DataHash)
64-
_, _ = rand.Read(header.Signature)
65-
_, _ = rand.Read(header.Signer.Address)
6664

6765
envelope := &P2PSignedHeader{
6866
Message: header,
6967
DAHeightHint: 200,
7068
}
7169

7270
// Marshaling
73-
bytes, err := envelope.MarshalBinary()
71+
bz, err := envelope.MarshalBinary()
7472
require.NoError(t, err)
75-
assert.NotEmpty(t, bytes)
73+
assert.NotEmpty(t, bz)
7674

7775
// Unmarshaling
7876
newEnvelope := (&P2PSignedHeader{}).New()
79-
err = newEnvelope.UnmarshalBinary(bytes)
77+
err = newEnvelope.UnmarshalBinary(bz)
8078
require.NoError(t, err)
8179
assert.Equal(t, envelope.DAHeightHint, newEnvelope.DAHeightHint)
82-
assert.Equal(t, envelope.Message.Height(), newEnvelope.Message.Height())
83-
assert.Equal(t, envelope.Message.ChainID(), newEnvelope.Message.ChainID())
84-
// Deep comparison of structs if needed
80+
assert.Equal(t, envelope, newEnvelope)
81+
}
82+
83+
func TestSignedHeaderBinaryCompatibility(t *testing.T) {
84+
signedHeader, _, err := GetRandomSignedHeader("chain-id")
85+
require.NoError(t, err)
86+
bytes, err := signedHeader.MarshalBinary()
87+
require.NoError(t, err)
88+
89+
p2pHeader := (&P2PSignedHeader{}).New()
90+
err = p2pHeader.UnmarshalBinary(bytes)
91+
require.NoError(t, err)
92+
93+
assert.Equal(t, signedHeader.Header, p2pHeader.Message.Header)
94+
assert.Equal(t, signedHeader.Signature, p2pHeader.Message.Signature)
95+
assert.Equal(t, signedHeader.Signer, p2pHeader.Message.Signer)
96+
assert.Zero(t, p2pHeader.DAHeightHint)
97+
98+
p2pHeader.DAHeightHint = 100
99+
p2pBytes, err := p2pHeader.MarshalBinary()
100+
require.NoError(t, err)
101+
102+
var decodedSignedHeader SignedHeader
103+
err = decodedSignedHeader.UnmarshalBinary(p2pBytes)
104+
require.NoError(t, err)
105+
assert.Equal(t, signedHeader.Header, decodedSignedHeader.Header)
106+
assert.Equal(t, signedHeader.Signature, decodedSignedHeader.Signature)
107+
assert.Equal(t, signedHeader.Signer, decodedSignedHeader.Signer)
108+
}
109+
110+
func TestDataBinaryCompatibility(t *testing.T) {
111+
data := &Data{
112+
Metadata: &Metadata{
113+
ChainID: "chain-id",
114+
Height: 10,
115+
Time: uint64(time.Now().UnixNano()),
116+
LastDataHash: []byte("last-hash"),
117+
},
118+
Txs: Txs{
119+
[]byte("tx1"),
120+
[]byte("tx2"),
121+
},
122+
}
123+
bytes, err := data.MarshalBinary()
124+
require.NoError(t, err)
125+
126+
p2pData := (&P2PData{}).New()
127+
err = p2pData.UnmarshalBinary(bytes)
128+
require.NoError(t, err)
129+
130+
assert.Equal(t, data.Metadata, p2pData.Message.Metadata)
131+
assert.Equal(t, data.Txs, p2pData.Message.Txs)
132+
assert.Zero(t, p2pData.DAHeightHint)
133+
134+
p2pData.DAHeightHint = 200
135+
136+
p2pBytes, err := p2pData.MarshalBinary()
137+
require.NoError(t, err)
138+
139+
var decodedData Data
140+
err = decodedData.UnmarshalBinary(p2pBytes)
141+
require.NoError(t, err)
142+
assert.Equal(t, data.Metadata, decodedData.Metadata)
143+
assert.Equal(t, data.Txs, decodedData.Txs)
85144
}

0 commit comments

Comments
 (0)