Skip to content

Commit e22c2f6

Browse files
committed
test(p2p/dnsdisc): fix test
REF: ethereum#26690
1 parent aa42e31 commit e22c2f6

File tree

4 files changed

+76
-62
lines changed

4 files changed

+76
-62
lines changed

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module github.com/ethereum/go-ethereum
22

3-
go 1.17
3+
go 1.20
44

55
require (
66
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.3.0

go.sum

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ github.com/Azure/azure-sdk-for-go/sdk/internal v0.8.3/go.mod h1:KLF4gFr6DcKFZwSu
2525
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.3.0 h1:Px2UA+2RvSSvv+RvJNuUB6n7rs5Wsel4dXLe90Um2n4=
2626
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.3.0/go.mod h1:tPaiy8S5bQ+S5sOiDlINkp7+Ef339+Nz5L5XO+cnOHo=
2727
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
28-
github.com/BurntSushi/toml v1.1.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
2928
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
3029
github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM=
3130
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
@@ -65,12 +64,10 @@ github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx2
6564
github.com/btcsuite/btcd/btcec/v2 v2.2.0 h1:fzn1qaOt32TuLjFlkzYSsBC35Q3KUjT1SwPxiMSCF5k=
6665
github.com/btcsuite/btcd/btcec/v2 v2.2.0/go.mod h1:U7MHm051Al6XmscBQ0BoNydpOTsFAn707034b5nY8zU=
6766
github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 h1:q0rUy8C/TYNBQS1+CGKw68tLOFYSNEs0TFnxxnS9+4U=
68-
github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc=
6967
github.com/c-bata/go-prompt v0.2.2/go.mod h1:VzqtzE2ksDBcdln8G7mk2RX9QyGjH+OVqOCSiVIqS34=
7068
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
7169
github.com/cespare/cp v0.1.0 h1:SE+dxFebS7Iik5LK0tsi1k9ZCxEaFX4AjQmoyA+1dJk=
7270
github.com/cespare/cp v0.1.0/go.mod h1:SOGHArjBr4JWaSDEVpWpo/hNg6RoKrls6Oh40hiwW+s=
73-
github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=
7471
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
7572
github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY=
7673
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
@@ -274,7 +271,6 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
274271
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
275272
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
276273
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
277-
github.com/kylelemons/godebug v0.0.0-20170224010052-a616ab194758/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k=
278274
github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
279275
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
280276
github.com/labstack/echo/v4 v4.2.1/go.mod h1:AA49e0DZ8kk5jTOOCKNuPR6oTnBS0dYiM4FW1e6jwpg=
@@ -320,7 +316,6 @@ github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn
320316
github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec=
321317
github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=
322318
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
323-
github.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
324319
github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
325320
github.com/onsi/ginkgo v1.14.0 h1:2mOpI4JVVPBN+WQRa0WKH2eXR+Ey+uK4n7Zj0aYpIQA=
326321
github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY=
@@ -412,7 +407,6 @@ github.com/xlab/treeprint v0.0.0-20180616005107-d6fb6747feb6/go.mod h1:ce1O1j6Ut
412407
github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU=
413408
github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8=
414409
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
415-
github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
416410
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
417411
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
418412
go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
@@ -441,7 +435,6 @@ golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm0
441435
golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY=
442436
golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
443437
golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
444-
golang.org/x/exp v0.0.0-20220426173459-3bcf042a4bf5/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE=
445438
golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs=
446439
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
447440
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
@@ -461,7 +454,6 @@ golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY=
461454
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
462455
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
463456
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
464-
golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro=
465457
golang.org/x/mod v0.6.0-dev.0.20211013180041-c96bc1413d57 h1:LQmS1nU0twXLA96Kt7U9qtHJEbBk3z6Q0V4UXjZkpr4=
466458
golang.org/x/mod v0.6.0-dev.0.20211013180041-c96bc1413d57/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY=
467459
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -489,7 +481,6 @@ golang.org/x/net v0.0.0-20210220033124-5f55cee0dc0d/go.mod h1:m0MpNAwzfU5UDzcl9v
489481
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
490482
golang.org/x/net v0.0.0-20210610132358-84b48f89b13b/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
491483
golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
492-
golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
493484
golang.org/x/net v0.0.0-20220607020251-c690dde0001d h1:4SFsTMi4UahlKoloni7L4eYzhFRifURQLw+yv0QDCx8=
494485
golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
495486
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
@@ -542,8 +533,6 @@ golang.org/x/sys v0.0.0-20210316164454-77fc1eacc6aa/go.mod h1:h1NjWce9XRLGQEsW7w
542533
golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
543534
golang.org/x/sys v0.0.0-20210420205809-ac73e9fd8988/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
544535
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
545-
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
546-
golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
547536
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a h1:dGzPydgVsqGcTRVwiLJ1jVbufYwmzD3LfVPLKsKg+0k=
548537
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
549538
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
@@ -587,7 +576,6 @@ golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtn
587576
golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
588577
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
589578
golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
590-
golang.org/x/tools v0.0.0-20191126055441-b0650ceb63d9/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
591579
golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
592580
golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
593581
golang.org/x/tools v0.0.0-20200108203644-89082a384178/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=

p2p/dnsdisc/client_test.go

Lines changed: 63 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,12 @@ import (
2020
"context"
2121
"crypto/ecdsa"
2222
"errors"
23-
"math/rand"
2423
"reflect"
2524
"testing"
2625
"time"
2726

2827
"github.com/davecgh/go-spew/spew"
28+
"github.com/ethereum/go-ethereum/common/hexutil"
2929
"github.com/ethereum/go-ethereum/common/mclock"
3030
"github.com/ethereum/go-ethereum/crypto"
3131
"github.com/ethereum/go-ethereum/internal/testlog"
@@ -34,23 +34,25 @@ import (
3434
"github.com/ethereum/go-ethereum/p2p/enr"
3535
)
3636

37-
const (
38-
signingKeySeed = 0x111111
39-
nodesSeed1 = 0x2945237
40-
nodesSeed2 = 0x4567299
41-
)
37+
var signingKeyForTesting, _ = crypto.ToECDSA(hexutil.MustDecode("0xdc599867fc513f8f5e2c2c9c489cde5e71362d1d9ec6e693e0de063236ed1240"))
4238

4339
func TestClientSyncTree(t *testing.T) {
40+
nodes := []string{
41+
"enr:-HW4QOFzoVLaFJnNhbgMoDXPnOvcdVuj7pDpqRvh6BRDO68aVi5ZcjB3vzQRZH2IcLBGHzo8uUN3snqmgTiE56CH3AMBgmlkgnY0iXNlY3AyNTZrMaECC2_24YYkYHEgdzxlSNKQEnHhuNAbNlMlWJxrJxbAFvA",
42+
"enr:-HW4QAggRauloj2SDLtIHN1XBkvhFZ1vtf1raYQp9TBW2RD5EEawDzbtSmlXUfnaHcvwOizhVYLtr7e6vw7NAf6mTuoCgmlkgnY0iXNlY3AyNTZrMaECjrXI8TLNXU0f8cthpAMxEshUyQlK-AM0PW2wfrnacNI",
43+
"enr:-HW4QLAYqmrwllBEnzWWs7I5Ev2IAs7x_dZlbYdRdMUx5EyKHDXp7AV5CkuPGUPdvbv1_Ms1CPfhcGCvSElSosZmyoqAgmlkgnY0iXNlY3AyNTZrMaECriawHKWdDRk2xeZkrOXBQ0dfMFLHY4eENZwdufn1S1o",
44+
}
45+
4446
r := mapResolver{
4547
"n": "enrtree-root:v1 e=JWXYDBPXYWG6FX3GMDIBFA6CJ4 l=C7HRFPF3BLGF3YR4DY5KX3SMBE seq=1 sig=o908WmNp7LibOfPsr4btQwatZJ5URBr2ZAuxvK4UWHlsB9sUOTJQaGAlLPVAhM__XJesCHxLISo94z5Z2a463gA",
4648
"C7HRFPF3BLGF3YR4DY5KX3SMBE.n": "enrtree://AM5FCQLWIZX2QFPNJAP7VUERCCRNGRHWZG3YYHIUV7BVDQ5FDPRT2@morenodes.example.org",
4749
"JWXYDBPXYWG6FX3GMDIBFA6CJ4.n": "enrtree-branch:2XS2367YHAXJFGLZHVAWLQD4ZY,H4FHT4B454P6UXFD7JCYQ5PWDY,MHTDO6TMUBRIA2XWG5LUDACK24",
48-
"2XS2367YHAXJFGLZHVAWLQD4ZY.n": "enr:-HW4QOFzoVLaFJnNhbgMoDXPnOvcdVuj7pDpqRvh6BRDO68aVi5ZcjB3vzQRZH2IcLBGHzo8uUN3snqmgTiE56CH3AMBgmlkgnY0iXNlY3AyNTZrMaECC2_24YYkYHEgdzxlSNKQEnHhuNAbNlMlWJxrJxbAFvA",
49-
"H4FHT4B454P6UXFD7JCYQ5PWDY.n": "enr:-HW4QAggRauloj2SDLtIHN1XBkvhFZ1vtf1raYQp9TBW2RD5EEawDzbtSmlXUfnaHcvwOizhVYLtr7e6vw7NAf6mTuoCgmlkgnY0iXNlY3AyNTZrMaECjrXI8TLNXU0f8cthpAMxEshUyQlK-AM0PW2wfrnacNI",
50-
"MHTDO6TMUBRIA2XWG5LUDACK24.n": "enr:-HW4QLAYqmrwllBEnzWWs7I5Ev2IAs7x_dZlbYdRdMUx5EyKHDXp7AV5CkuPGUPdvbv1_Ms1CPfhcGCvSElSosZmyoqAgmlkgnY0iXNlY3AyNTZrMaECriawHKWdDRk2xeZkrOXBQ0dfMFLHY4eENZwdufn1S1o",
50+
"2XS2367YHAXJFGLZHVAWLQD4ZY.n": nodes[0],
51+
"H4FHT4B454P6UXFD7JCYQ5PWDY.n": nodes[1],
52+
"MHTDO6TMUBRIA2XWG5LUDACK24.n": nodes[2],
5153
}
5254
var (
53-
wantNodes = testNodes(0x29452, 3)
55+
wantNodes = sortByID(parseNodes(nodes))
5456
wantLinks = []string{"enrtree://AM5FCQLWIZX2QFPNJAP7VUERCCRNGRHWZG3YYHIUV7BVDQ5FDPRT2@morenodes.example.org"}
5557
wantSeq = uint(1)
5658
)
@@ -60,7 +62,7 @@ func TestClientSyncTree(t *testing.T) {
6062
if err != nil {
6163
t.Fatal("sync error:", err)
6264
}
63-
if !reflect.DeepEqual(sortByID(stree.Nodes()), sortByID(wantNodes)) {
65+
if !reflect.DeepEqual(sortByID(stree.Nodes()), wantNodes) {
6466
t.Errorf("wrong nodes in synced tree:\nhave %v\nwant %v", spew.Sdump(stree.Nodes()), spew.Sdump(wantNodes))
6567
}
6668
if !reflect.DeepEqual(stree.Links(), wantLinks) {
@@ -80,7 +82,7 @@ func TestClientSyncTreeBadNode(t *testing.T) {
8082
// tree, _ := MakeTree(3, nil, []string{"enrtree://AM5FCQLWIZX2QFPNJAP7VUERCCRNGRHWZG3YYHIUV7BVDQ5FDPRT2@morenodes.example.org"})
8183
// tree.entries[badHash] = &b
8284
// tree.root.eroot = badHash
83-
// url, _ := tree.Sign(testKey(signingKeySeed), "n")
85+
// url, _ := tree.Sign(signingKeyForTesting, "n")
8486
// fmt.Println(url)
8587
// fmt.Printf("%#v\n", tree.ToTXT("n"))
8688

@@ -99,9 +101,13 @@ func TestClientSyncTreeBadNode(t *testing.T) {
99101

100102
// This test checks that randomIterator finds all entries.
101103
func TestIterator(t *testing.T) {
102-
nodes := testNodes(nodesSeed1, 30)
103-
tree, url := makeTestTree("n", nodes, nil)
104-
r := mapResolver(tree.ToTXT("n"))
104+
var (
105+
keys = testKeys(30)
106+
nodes = testNodes(keys)
107+
tree, url = makeTestTree("n", nodes, nil)
108+
r = mapResolver(tree.ToTXT("n"))
109+
)
110+
105111
c := NewClient(Config{
106112
Resolver: r,
107113
Logger: testlog.Logger(t, log.LvlTrace),
@@ -132,8 +138,12 @@ func TestIteratorCloseWithoutNext(t *testing.T) {
132138

133139
// This test checks if closing randomIterator races.
134140
func TestIteratorClose(t *testing.T) {
135-
nodes := testNodes(nodesSeed1, 500)
136-
tree1, url1 := makeTestTree("t1", nodes, nil)
141+
var (
142+
keys = testKeys(500)
143+
nodes = testNodes(keys)
144+
tree1, url1 = makeTestTree("t1", nodes, nil)
145+
)
146+
137147
c := NewClient(Config{Resolver: newMapResolver(tree1.ToTXT("t1"))})
138148
it, err := c.NewIterator(url1)
139149
if err != nil {
@@ -155,9 +165,13 @@ func TestIteratorClose(t *testing.T) {
155165

156166
// This test checks that randomIterator traverses linked trees as well as explicitly added trees.
157167
func TestIteratorLinks(t *testing.T) {
158-
nodes := testNodes(nodesSeed1, 40)
159-
tree1, url1 := makeTestTree("t1", nodes[:10], nil)
160-
tree2, url2 := makeTestTree("t2", nodes[10:], []string{url1})
168+
var (
169+
keys = testKeys(40)
170+
nodes = testNodes(keys)
171+
tree1, url1 = makeTestTree("t1", nodes[:10], nil)
172+
tree2, url2 = makeTestTree("t2", nodes[10:], []string{url1})
173+
)
174+
161175
c := NewClient(Config{
162176
Resolver: newMapResolver(tree1.ToTXT("t1"), tree2.ToTXT("t2")),
163177
Logger: testlog.Logger(t, log.LvlTrace),
@@ -176,7 +190,8 @@ func TestIteratorLinks(t *testing.T) {
176190
func TestIteratorNodeUpdates(t *testing.T) {
177191
var (
178192
clock = new(mclock.Simulated)
179-
nodes = testNodes(nodesSeed1, 30)
193+
keys = testKeys(30)
194+
nodes = testNodes(keys)
180195
resolver = newMapResolver()
181196
c = NewClient(Config{
182197
Resolver: resolver,
@@ -197,7 +212,7 @@ func TestIteratorNodeUpdates(t *testing.T) {
197212
checkIterator(t, it, nodes[:25])
198213

199214
// Ensure RandomNode returns the new nodes after the tree is updated.
200-
updateSomeNodes(nodesSeed1, nodes)
215+
updateSomeNodes(keys, nodes)
201216
tree2, _ := makeTestTree("n", nodes, nil)
202217
resolver.clear()
203218
resolver.add(tree2.ToTXT("n"))
@@ -213,7 +228,8 @@ func TestIteratorNodeUpdates(t *testing.T) {
213228
func TestIteratorRootRecheckOnFail(t *testing.T) {
214229
var (
215230
clock = new(mclock.Simulated)
216-
nodes = testNodes(nodesSeed1, 30)
231+
keys = testKeys(30)
232+
nodes = testNodes(keys)
217233
resolver = newMapResolver()
218234
c = NewClient(Config{
219235
Resolver: resolver,
@@ -237,7 +253,7 @@ func TestIteratorRootRecheckOnFail(t *testing.T) {
237253
checkIterator(t, it, nodes[:25])
238254

239255
// Ensure RandomNode returns the new nodes after the tree is updated.
240-
updateSomeNodes(nodesSeed1, nodes)
256+
updateSomeNodes(keys, nodes)
241257
tree2, _ := makeTestTree("n", nodes, nil)
242258
resolver.clear()
243259
resolver.add(tree2.ToTXT("n"))
@@ -250,7 +266,8 @@ func TestIteratorRootRecheckOnFail(t *testing.T) {
250266
func TestIteratorEmptyTree(t *testing.T) {
251267
var (
252268
clock = new(mclock.Simulated)
253-
nodes = testNodes(nodesSeed1, 1)
269+
keys = testKeys(1)
270+
nodes = testNodes(keys)
254271
resolver = newMapResolver()
255272
c = NewClient(Config{
256273
Resolver: resolver,
@@ -265,7 +282,7 @@ func TestIteratorEmptyTree(t *testing.T) {
265282
resolver.add(tree1.ToTXT("n"))
266283

267284
// Start the iterator.
268-
node := make(chan *enode.Node)
285+
node := make(chan *enode.Node, 1)
269286
it, err := c.NewIterator(url)
270287
if err != nil {
271288
t.Fatal(err)
@@ -294,8 +311,7 @@ func TestIteratorEmptyTree(t *testing.T) {
294311
}
295312

296313
// updateSomeNodes applies ENR updates to some of the given nodes.
297-
func updateSomeNodes(keySeed int64, nodes []*enode.Node) {
298-
keys := testKeys(nodesSeed1, len(nodes))
314+
func updateSomeNodes(keys []*ecdsa.PrivateKey, nodes []*enode.Node) {
299315
for i, n := range nodes[:len(nodes)/2] {
300316
r := n.Record()
301317
r.Set(enr.IP{127, 0, 0, 1})
@@ -311,7 +327,8 @@ func updateSomeNodes(keySeed int64, nodes []*enode.Node) {
311327
func TestIteratorLinkUpdates(t *testing.T) {
312328
var (
313329
clock = new(mclock.Simulated)
314-
nodes = testNodes(nodesSeed1, 30)
330+
keys = testKeys(30)
331+
nodes = testNodes(keys)
315332
resolver = newMapResolver()
316333
c = NewClient(Config{
317334
Resolver: resolver,
@@ -384,19 +401,18 @@ func makeTestTree(domain string, nodes []*enode.Node, links []string) (*Tree, st
384401
if err != nil {
385402
panic(err)
386403
}
387-
url, err := tree.Sign(testKey(signingKeySeed), domain)
404+
url, err := tree.Sign(signingKeyForTesting, domain)
388405
if err != nil {
389406
panic(err)
390407
}
391408
return tree, url
392409
}
393410

394411
// testKeys creates deterministic private keys for testing.
395-
func testKeys(seed int64, n int) []*ecdsa.PrivateKey {
396-
rand := rand.New(rand.NewSource(seed))
412+
func testKeys(n int) []*ecdsa.PrivateKey {
397413
keys := make([]*ecdsa.PrivateKey, n)
398414
for i := 0; i < n; i++ {
399-
key, err := ecdsa.GenerateKey(crypto.S256(), rand)
415+
key, err := crypto.GenerateKey()
400416
if err != nil {
401417
panic("can't generate key: " + err.Error())
402418
}
@@ -405,13 +421,8 @@ func testKeys(seed int64, n int) []*ecdsa.PrivateKey {
405421
return keys
406422
}
407423

408-
func testKey(seed int64) *ecdsa.PrivateKey {
409-
return testKeys(seed, 1)[0]
410-
}
411-
412-
func testNodes(seed int64, n int) []*enode.Node {
413-
keys := testKeys(seed, n)
414-
nodes := make([]*enode.Node, n)
424+
func testNodes(keys []*ecdsa.PrivateKey) []*enode.Node {
425+
nodes := make([]*enode.Node, len(keys))
415426
for i, key := range keys {
416427
record := new(enr.Record)
417428
record.SetSeq(uint64(i))
@@ -425,10 +436,6 @@ func testNodes(seed int64, n int) []*enode.Node {
425436
return nodes
426437
}
427438

428-
func testNode(seed int64) *enode.Node {
429-
return testNodes(seed, 1)[0]
430-
}
431-
432439
type mapResolver map[string]string
433440

434441
func newMapResolver(maps ...map[string]string) mapResolver {
@@ -457,3 +464,15 @@ func (mr mapResolver) LookupTXT(ctx context.Context, name string) ([]string, err
457464
}
458465
return nil, errors.New("not found")
459466
}
467+
468+
func parseNodes(rec []string) []*enode.Node {
469+
var ns []*enode.Node
470+
for _, r := range rec {
471+
var n enode.Node
472+
if err := n.UnmarshalText([]byte(r)); err != nil {
473+
panic(err)
474+
}
475+
ns = append(ns, &n)
476+
}
477+
return ns
478+
}

p2p/dnsdisc/tree_test.go

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,9 @@ func TestParseRoot(t *testing.T) {
6161
}
6262

6363
func TestParseEntry(t *testing.T) {
64-
testkey := testKey(signingKeySeed)
64+
testENRs := []string{"enr:-HW4QES8QIeXTYlDzbfr1WEzE-XKY4f8gJFJzjJL-9D7TC9lJb4Z3JPRRz1lP4pL_N_QpT6rGQjAU9Apnc-C1iMP36OAgmlkgnY0iXNlY3AyNTZrMaED5IdwfMxdmR8W37HqSFdQLjDkIwBd4Q_MjxgZifgKSdM"}
65+
testNodes := parseNodes(testENRs)
66+
6567
tests := []struct {
6668
input string
6769
e entry
@@ -91,7 +93,11 @@ func TestParseEntry(t *testing.T) {
9193
// Links
9294
{
9395
input: "enrtree://AKPYQIUQIL7PSIACI32J7FGZW56E5FKHEFCCOFHILBIMW3M6LWXS2@nodes.example.org",
94-
e: &linkEntry{"AKPYQIUQIL7PSIACI32J7FGZW56E5FKHEFCCOFHILBIMW3M6LWXS2@nodes.example.org", "nodes.example.org", &testkey.PublicKey},
96+
e: &linkEntry{
97+
str: "AKPYQIUQIL7PSIACI32J7FGZW56E5FKHEFCCOFHILBIMW3M6LWXS2@nodes.example.org",
98+
domain: "nodes.example.org",
99+
pubkey: &signingKeyForTesting.PublicKey,
100+
},
95101
},
96102
{
97103
input: "enrtree://nodes.example.org",
@@ -107,8 +113,8 @@ func TestParseEntry(t *testing.T) {
107113
},
108114
// ENRs
109115
{
110-
input: "enr:-HW4QES8QIeXTYlDzbfr1WEzE-XKY4f8gJFJzjJL-9D7TC9lJb4Z3JPRRz1lP4pL_N_QpT6rGQjAU9Apnc-C1iMP36OAgmlkgnY0iXNlY3AyNTZrMaED5IdwfMxdmR8W37HqSFdQLjDkIwBd4Q_MjxgZifgKSdM",
111-
e: &enrEntry{node: testNode(nodesSeed1)},
116+
input: testENRs[0],
117+
e: &enrEntry{node: testNodes[0]},
112118
},
113119
{
114120
input: "enr:-HW4QLZHjM4vZXkbp-5xJoHsKSbE7W39FPC8283X-y8oHcHPTnDDlIlzL5ArvDUlHZVDPgmFASrh7cWgLOLxj4wprRkHgmlkgnY0iXNlY3AyNTZrMaEC3t2jLMhDpCDX5mbSEwDn4L3iUfyXzoO8G28XvjGRkrAg=",
@@ -132,7 +138,8 @@ func TestParseEntry(t *testing.T) {
132138
}
133139

134140
func TestMakeTree(t *testing.T) {
135-
nodes := testNodes(nodesSeed2, 50)
141+
keys := testKeys(50)
142+
nodes := testNodes(keys)
136143
tree, err := MakeTree(2, nodes, nil)
137144
if err != nil {
138145
t.Fatal(err)

0 commit comments

Comments
 (0)