From 5c55fe723aeaceadf87d55227b5f3ba0a46b0049 Mon Sep 17 00:00:00 2001 From: Felix Lange Date: Wed, 20 Dec 2017 14:12:18 +0100 Subject: [PATCH] p2p/enr: add BenchmarkDecode --- p2p/enr/enr_test.go | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/p2p/enr/enr_test.go b/p2p/enr/enr_test.go index 09397c4226..e0db631b3d 100644 --- a/p2p/enr/enr_test.go +++ b/p2p/enr/enr_test.go @@ -235,12 +235,13 @@ func TestNodeAddr(t *testing.T) { assert.Equal(t, expected, hex.EncodeToString(r.NodeAddr())) } +var pyRecord, _ = hex.DecodeString("f896b840954dc36583c1f4b69ab59b1375f362f06ee99f3723cd77e64b6de6d211c27d7870642a79d4516997f94091325d2a7ca6215376971455fb221d34f35b277149a1018664697363763582765f82696490736563703235366b312d6b656363616b83697034847f00000189736563703235366b31a103ca634cae0d49acb401d8a4c6b6fe8c55b70d115bf400769cc1400f3258cd3138") + // TestPythonInterop checks that we can decode and verify a record produced by the Python // implementation. func TestPythonInterop(t *testing.T) { - enc, _ := hex.DecodeString("f896b840954dc36583c1f4b69ab59b1375f362f06ee99f3723cd77e64b6de6d211c27d7870642a79d4516997f94091325d2a7ca6215376971455fb221d34f35b277149a1018664697363763582765f82696490736563703235366b312d6b656363616b83697034847f00000189736563703235366b31a103ca634cae0d49acb401d8a4c6b6fe8c55b70d115bf400769cc1400f3258cd3138") var r Record - if err := rlp.DecodeBytes(enc, &r); err != nil { + if err := rlp.DecodeBytes(pyRecord, &r); err != nil { t.Fatalf("can't decode: %v", err) } @@ -306,3 +307,12 @@ func TestSignEncodeAndDecodeRandom(t *testing.T) { require.Equal(t, v, got, desc) } } + +func BenchmarkDecode(b *testing.B) { + var r Record + for i := 0; i < b.N; i++ { + rlp.DecodeBytes(pyRecord, &r) + } + b.StopTimer() + r.NodeAddr() +}