Skip to content

Commit 6bc6fa6

Browse files
committed
test: NOOPHeaderHooks backwards compat
1 parent aee5be0 commit 6bc6fa6

File tree

1 file changed

+39
-4
lines changed

1 file changed

+39
-4
lines changed

core/types/rlp_backwards_compat.libevm_test.go

Lines changed: 39 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,33 @@ import (
2929
)
3030

3131
func TestHeaderRLPBackwardsCompatibility(t *testing.T) {
32+
tests := []struct {
33+
name string
34+
register func()
35+
}{
36+
{
37+
name: "no registered extras",
38+
register: func() {},
39+
},
40+
{
41+
name: "no-op header hooks",
42+
register: func() {
43+
RegisterExtras[NOOPHeaderHooks, *NOOPHeaderHooks, struct{}]()
44+
},
45+
},
46+
}
47+
48+
for _, tt := range tests {
49+
t.Run(tt.name, func(t *testing.T) {
50+
TestOnlyClearRegisteredExtras()
51+
defer TestOnlyClearRegisteredExtras()
52+
tt.register()
53+
testHeaderRLPBackwardsCompatibility(t)
54+
})
55+
}
56+
}
57+
58+
func testHeaderRLPBackwardsCompatibility(t *testing.T) {
3259
// This is a deliberate change-detector test that locks in backwards
3360
// compatibility of RLP encoding.
3461
rng := ethtest.NewPseudoRand(42)
@@ -62,10 +89,18 @@ func TestHeaderRLPBackwardsCompatibility(t *testing.T) {
6289
// WARNING: changing this hex might break backwards compatibility of RLP
6390
// encoding (i.e. block hashes might change)!
6491
const wantHex = `f9029aa01a571e7e4d774caf46053201cfe0001b3c355ffcc93f510e671e8809741f0eeda0756095410506ec72a2c287fe83ebf68efb0be177e61acec1c985277e90e52087941bfc3bc193012ba58912c01fb35a3454831a8971a00bc9f064144eb5965c5e5d1020f9f90392e7e06ded9225966abc7c754b410e61a0d942eab201424f4320ec1e1ffa9390baf941629b9349977b5d48e0502dbb9386a035d9d550a9c113f78689b4c161c4605609bb57b83061914c42ad244daa7fc38eb901004b31d39ae246d689f23176d679a62ff328f530407cbafd0146f45b2ed635282e2812f2705bfffe52576a6fb31df817f29efac71fa56b8e133334079f8e2a8fd2055451571021506f27190adb52a1313f6d28c77d66ae1aa3d3d6757a762476f4c8a2b7b2a37079a4b6a15d1bc44161190c82d5e1c8b55e05c7354f1e5f6512924c941fb3d93667dc3a8c304a3c164e6525dfc99b5f474110c5059485732153e20300c3482832d07b65f97958360da414cb438ce252aec6c2718d155798390a6c6782181d1bac1dd64cd956332b008412ddc735f2994e297c8a088c6bb4c637542295ba3cbc3cd399c8127076f4d834d74d5b11a36b6d02e2fe3a583216aa4ccea0f052df9a96e7a454256bebabdfc38c429079f25913e0f1d7416b2f056c4a115f88b85f0e9fd6d25717881f03d9985060087c88a2c54269dfd07ca388eb8f974b42a412da90c757012bf5479896165caf573cf82fb3a0aa10f6ebf6b62bef8ed36b8ea3d4b1ddb80c99afafa37cb8f3393eb6d802f5bc886c8cd6bcd168a7e0886d5b1345d948b818a0061a7182ff228a4e66bade4717e6f4d318ac98fca12a053af6f98805a764fb5d8890ed9cab2c5229908891c7e2f71857c77ca0523cb6f654ef3fc7294c7768cddd9ccf4bcda3066d382675f37dd1a18507b5fb`
65-
want, err := hex.DecodeString(wantHex)
92+
wantRLP, err := hex.DecodeString(wantHex)
6693
require.NoError(t, err, "hex.DecodeString()")
6794

68-
got, err := rlp.EncodeToBytes(hdr)
69-
require.NoErrorf(t, err, "rlp.EncodeToBytes(%T)", hdr)
70-
assert.Equalf(t, want, got, "rlp.EncodeToBytes(%T)", hdr)
95+
t.Run("Encode", func(t *testing.T) {
96+
got, err := rlp.EncodeToBytes(hdr)
97+
require.NoErrorf(t, err, "rlp.EncodeToBytes(%T)", hdr)
98+
assert.Equalf(t, wantRLP, got, "rlp.EncodeToBytes(%T)", hdr)
99+
})
100+
101+
t.Run("Decode", func(t *testing.T) {
102+
got := new(Header)
103+
require.NoErrorf(t, rlp.DecodeBytes(wantRLP, got), "rlp.DecodeBytes(..., %T)", hdr)
104+
assert.Equal(t, hdr, got)
105+
})
71106
}

0 commit comments

Comments
 (0)