Skip to content

Commit f8ca30f

Browse files
authored
Merge pull request #213 from ipfs/dependency-upgrades
Dependency upgrades
2 parents dc29dc9 + 356a5e6 commit f8ca30f

File tree

6 files changed

+57
-46
lines changed

6 files changed

+57
-46
lines changed

.github/workflows/go.yml

+10-2
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,22 @@ jobs:
1313
- name: Set up Go
1414
uses: actions/setup-go@v4
1515
with:
16-
go-version: 1.19
16+
go-version: "1.20"
1717

1818
- name: Install depedencies
1919
run: go install honnef.co/go/tools/cmd/staticcheck@latest
2020

2121
- name: Build
2222
run: go build -v ./...
2323

24+
25+
26+
27+
28+
29+
30+
31+
2432
- name: Test
2533
run: go test -timeout 20m -v -run "TestCRDT" -race -coverprofile=coverage.txt -covermode=atomic
2634

@@ -40,7 +48,7 @@ jobs:
4048
- name: Set up Go
4149
uses: actions/setup-go@v4
4250
with:
43-
go-version: 1.19
51+
go-version: "1.20"
4452

4553
- name: Test
4654
run: go test -timeout 30m -v -run "TestDatastoreSuite" .

crdt.go

+2-5
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,6 @@ var (
5555
ErrNoMoreBroadcast = errors.New("receiving blocks aborted since no new blocks will be broadcasted")
5656
)
5757

58-
func init() {
59-
rand.Seed(time.Now().UnixNano())
60-
}
61-
6258
// A Broadcaster provides a way to send (notify) an opaque payload to
6359
// all replicas and to retrieve payloads broadcasted.
6460
type Broadcaster interface {
@@ -467,7 +463,8 @@ func randomizeInterval(d time.Duration) time.Duration {
467463
// 30% of the configured interval
468464
leeway := (d * 30 / 100)
469465
// A random number between -leeway|+leeway
470-
randomInterval := time.Duration(rand.Int63n(int64(leeway*2))) - leeway
466+
randGen := rand.New(rand.NewSource(time.Now().UnixNano()))
467+
randomInterval := time.Duration(randGen.Int63n(int64(leeway*2))) - leeway
471468
return d + randomInterval
472469
}
473470

crdt_test.go

+11-7
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ const (
3636
var store int = mapStore
3737

3838
func init() {
39-
rand.Seed(time.Now().UnixNano())
4039
dstest.ElemCount = 10
4140
}
4241

@@ -121,16 +120,20 @@ func newBroadcasters(t testing.TB, n int) ([]*mockBroadcaster, context.CancelFun
121120

122121
func (mb *mockBroadcaster) Broadcast(data []byte) error {
123122
var wg sync.WaitGroup
123+
124+
randg := rand.New(rand.NewSource(time.Now().UnixNano()))
125+
124126
for i, ch := range mb.chans {
125-
n := rand.Intn(100)
127+
n := randg.Intn(100)
126128
if n < mb.dropProb {
127129
continue
128130
}
129131
wg.Add(1)
130-
go func() {
132+
go func(i int) {
131133
defer wg.Done()
134+
randg := rand.New(rand.NewSource(int64(i)))
132135
// randomize when we send a little bit
133-
if rand.Intn(100) < 30 {
136+
if randg.Intn(100) < 30 {
134137
// Sleep for a very small time that will
135138
// effectively be pretty random
136139
time.Sleep(time.Nanosecond)
@@ -144,7 +147,7 @@ func (mb *mockBroadcaster) Broadcast(data []byte) error {
144147
case <-timer.C:
145148
mb.t.Errorf("broadcasting to %d timed out", i)
146149
}
147-
}()
150+
}(i)
148151
wg.Wait()
149152
}
150153
return nil
@@ -308,6 +311,7 @@ func TestCRDT(t *testing.T) {
308311
func TestCRDTReplication(t *testing.T) {
309312
ctx := context.Background()
310313
nItems := 50
314+
randGen := rand.New(rand.NewSource(time.Now().UnixNano()))
311315

312316
replicas, closeReplicas := makeReplicas(t, nil)
313317
defer closeReplicas()
@@ -316,7 +320,7 @@ func TestCRDTReplication(t *testing.T) {
316320
for i := 0; i < nItems; i++ {
317321
k := ds.RandomKey()
318322
v := []byte(fmt.Sprintf("%d", i))
319-
n := rand.Intn(len(replicas))
323+
n := randGen.Intn(len(replicas))
320324
err := replicas[n].Put(ctx, k, v)
321325
if err != nil {
322326
t.Fatal(err)
@@ -357,7 +361,7 @@ func TestCRDTReplication(t *testing.T) {
357361

358362
// give a new value for each item
359363
for _, r := range rest {
360-
n := rand.Intn(len(replicas))
364+
n := randGen.Intn(len(replicas))
361365
err := replicas[n].Put(ctx, ds.NewKey(r.Key), []byte("hola"))
362366
if err != nil {
363367
t.Error(err)

go.mod

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
module github.com/ipfs/go-ds-crdt
22

3-
go 1.19
3+
go 1.20
44

55
require (
66
github.com/dgraph-io/badger v1.6.2
77
github.com/golang/protobuf v1.5.3
88
github.com/ipfs/bbloom v0.0.4
9-
github.com/ipfs/boxo v0.11.0
9+
github.com/ipfs/boxo v0.13.1
1010
github.com/ipfs/go-cid v0.4.1
1111
github.com/ipfs/go-datastore v0.6.0
1212
github.com/ipfs/go-ds-badger v0.3.0
13-
github.com/ipfs/go-ipld-format v0.5.0
13+
github.com/ipfs/go-ipld-format v0.6.0
1414
github.com/ipfs/go-log/v2 v2.5.1
1515
github.com/jbenet/goprocess v0.1.4
1616
github.com/libp2p/go-libp2p-pubsub v0.9.3
@@ -40,14 +40,14 @@ require (
4040
github.com/ipld/go-ipld-prime v0.21.0 // indirect
4141
github.com/klauspost/cpuid/v2 v2.2.5 // indirect
4242
github.com/libp2p/go-buffer-pool v0.1.0 // indirect
43-
github.com/libp2p/go-libp2p v0.29.2 // indirect
43+
github.com/libp2p/go-libp2p v0.30.0 // indirect
4444
github.com/libp2p/go-msgio v0.3.0 // indirect
4545
github.com/mattn/go-isatty v0.0.19 // indirect
4646
github.com/minio/sha256-simd v1.0.1 // indirect
4747
github.com/mr-tron/base58 v1.2.0 // indirect
4848
github.com/multiformats/go-base32 v0.1.0 // indirect
4949
github.com/multiformats/go-base36 v0.2.0 // indirect
50-
github.com/multiformats/go-multiaddr v0.10.1 // indirect
50+
github.com/multiformats/go-multiaddr v0.11.0 // indirect
5151
github.com/multiformats/go-multibase v0.2.0 // indirect
5252
github.com/multiformats/go-multicodec v0.9.0 // indirect
5353
github.com/multiformats/go-multistream v0.4.1 // indirect
@@ -59,8 +59,8 @@ require (
5959
go.opentelemetry.io/otel/trace v1.16.0 // indirect
6060
go.uber.org/zap v1.25.0 // indirect
6161
golang.org/x/crypto v0.12.0 // indirect
62-
golang.org/x/exp v0.0.0-20230713183714-613f0c0eb8a1 // indirect
63-
golang.org/x/net v0.12.0 // indirect
62+
golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63 // indirect
63+
golang.org/x/net v0.14.0 // indirect
6464
golang.org/x/sys v0.11.0 // indirect
6565
lukechampine.com/blake3 v1.2.1 // indirect
6666
)

go.sum

+21-22
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiu
5757
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
5858
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
5959
github.com/google/gopacket v1.1.19 h1:ves8RnFZPGiFnTS0uPQStjwru6uO6h+nlr9j6fL7kF8=
60-
github.com/google/pprof v0.0.0-20230705174524-200ffdc848b8 h1:n6vlPhxsA+BW/XsS5+uqi7GyzaLa5MH7qlSLBZtRdiA=
60+
github.com/google/pprof v0.0.0-20230821062121-407c9e7a662f h1:pDhu5sgp8yJlEF/g6osliIIpF9K4F5jvkULXa4daRDQ=
6161
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
6262
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
6363
github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
@@ -71,8 +71,8 @@ github.com/huin/goupnp v1.2.0 h1:uOKW26NG1hsSSbXIZ1IR7XP9Gjd1U8pnLaCMgntmkmY=
7171
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
7272
github.com/ipfs/bbloom v0.0.4 h1:Gi+8EGJ2y5qiD5FbsbpX/TMNcJw8gSqr7eyjHa4Fhvs=
7373
github.com/ipfs/bbloom v0.0.4/go.mod h1:cS9YprKXpoZ9lT0n/Mw/a6/aFV6DTjTLYHeA+gyqMG0=
74-
github.com/ipfs/boxo v0.11.0 h1:urMxhZ3xoF4HssJVD3+0ssGT9pptEfHfbL8DYdoWFlg=
75-
github.com/ipfs/boxo v0.11.0/go.mod h1:8IfDmp+FzFGcF4zjAgHMVPpwYw4AjN9ePEzDfkaYJ1w=
74+
github.com/ipfs/boxo v0.13.1 h1:nQ5oQzcMZR3oL41REJDcTbrvDvuZh3J9ckc9+ILeRQI=
75+
github.com/ipfs/boxo v0.13.1/go.mod h1:btrtHy0lmO1ODMECbbEY1pxNtrLilvKSYLoGQt1yYCk=
7676
github.com/ipfs/go-block-format v0.1.2 h1:GAjkfhVx1f4YTODS6Esrj1wt2HhrtwTnhEr+DyPUaJo=
7777
github.com/ipfs/go-block-format v0.1.2/go.mod h1:mACVcrxarQKstUU3Yf/RdwbC4DzPV6++rO2a3d+a/KE=
7878
github.com/ipfs/go-cid v0.4.1 h1:A/T3qGvxi4kpKWWcPC/PgbvDA2bjVLO7n4UeVwnbs/s=
@@ -90,8 +90,8 @@ github.com/ipfs/go-ipfs-delay v0.0.1 h1:r/UXYyRcddO6thwOnhiznIAiSvxMECGgtv35Xs1I
9090
github.com/ipfs/go-ipfs-pq v0.0.3 h1:YpoHVJB+jzK15mr/xsWC574tyDLkezVrDNeaalQBsTE=
9191
github.com/ipfs/go-ipfs-util v0.0.3 h1:2RFdGez6bu2ZlZdI+rWfIdbQb1KudQp3VGwPtdNCmE0=
9292
github.com/ipfs/go-ipfs-util v0.0.3/go.mod h1:LHzG1a0Ig4G+iZ26UUOMjHd+lfM84LZCrn17xAKWBvs=
93-
github.com/ipfs/go-ipld-format v0.5.0 h1:WyEle9K96MSrvr47zZHKKcDxJ/vlpET6PSiQsAFO+Ds=
94-
github.com/ipfs/go-ipld-format v0.5.0/go.mod h1:ImdZqJQaEouMjCvqCe0ORUS+uoBmf7Hf+EO/jh+nk3M=
93+
github.com/ipfs/go-ipld-format v0.6.0 h1:VEJlA2kQ3LqFSIm5Vu6eIlSxD/Ze90xtc4Meten1F5U=
94+
github.com/ipfs/go-ipld-format v0.6.0/go.mod h1:g4QVMTn3marU3qXchwjpKPKgJv+zF+OlaKMyhJ4LHPg=
9595
github.com/ipfs/go-ipld-legacy v0.2.1 h1:mDFtrBpmU7b//LzLSypVrXsD8QxkEWxu5qVxN99/+tk=
9696
github.com/ipfs/go-ipld-legacy v0.2.1/go.mod h1:782MOUghNzMO2DER0FlBR94mllfdCJCkTtDtPM51otM=
9797
github.com/ipfs/go-log/v2 v2.0.5/go.mod h1:eZs4Xt4ZUJQFM3DlanGhy7TkwwawCZcSByscwkWG+dw=
@@ -127,8 +127,8 @@ github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6
127127
github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg=
128128
github.com/libp2p/go-cidranger v1.1.0 h1:ewPN8EZ0dd1LSnrtuwd4709PXVcITVeuwbag38yPW7c=
129129
github.com/libp2p/go-flow-metrics v0.1.0 h1:0iPhMI8PskQwzh57jB9WxIuIOQ0r+15PChFGkx3Q3WM=
130-
github.com/libp2p/go-libp2p v0.29.2 h1:uPw/c8hOxoLP/KhFnzlc5Ejqf+OmAL1dwIsqE31WBtY=
131-
github.com/libp2p/go-libp2p v0.29.2/go.mod h1:OU7nSq0aEZMsV2wY8nXn1+XNNt9q2UiR8LjW3Kmp2UE=
130+
github.com/libp2p/go-libp2p v0.30.0 h1:9EZwFtJPFBcs/yJTnP90TpN1hgrT/EsFfM+OZuwV87U=
131+
github.com/libp2p/go-libp2p v0.30.0/go.mod h1:nr2g5V7lfftwgiJ78/HrID+pwvayLyqKCEirT2Y3Byg=
132132
github.com/libp2p/go-libp2p-asn-util v0.3.0 h1:gMDcMyYiZKkocGXDQ5nsUQyquC9+H+iLEQHwOCZ7s8s=
133133
github.com/libp2p/go-libp2p-pubsub v0.9.3 h1:ihcz9oIBMaCK9kcx+yHWm3mLAFBMAUsM4ux42aikDxo=
134134
github.com/libp2p/go-libp2p-pubsub v0.9.3/go.mod h1:RYA7aM9jIic5VV47WXu4GkcRxRhrdElWf8xtyli+Dzc=
@@ -138,7 +138,7 @@ github.com/libp2p/go-msgio v0.3.0 h1:mf3Z8B1xcFN314sWX+2vOTShIE0Mmn2TXn3YCUQGNj0
138138
github.com/libp2p/go-msgio v0.3.0/go.mod h1:nyRM819GmVaF9LX3l03RMh10QdOroF++NBbxAb0mmDM=
139139
github.com/libp2p/go-nat v0.2.0 h1:Tyz+bUFAYqGyJ/ppPPymMGbIgNRH+WqC5QrT5fKrrGk=
140140
github.com/libp2p/go-netroute v0.2.1 h1:V8kVrpD8GK0Riv15/7VN6RbUQ3URNZVosw7H2v9tksU=
141-
github.com/libp2p/go-reuseport v0.3.0 h1:iiZslO5byUYZEg9iCwJGf5h+sf1Agmqx2V2FDjPyvUw=
141+
github.com/libp2p/go-reuseport v0.4.0 h1:nR5KU7hD0WxXCJbmw7r2rhRYruNRl2koHw8fQscQm2s=
142142
github.com/libp2p/go-yamux/v4 v4.0.1 h1:FfDR4S1wj6Bw2Pqbc8Uz7pCxeRBPbwsBbEdfwiCypkQ=
143143
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
144144
github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd h1:br0buuQ854V8u83wA0rVZ8ttrq5CpaPZdvrK0LP2lOk=
@@ -159,8 +159,8 @@ github.com/multiformats/go-base32 v0.1.0 h1:pVx9xoSPqEIQG8o+UbAe7DNi51oej1NtK+aG
159159
github.com/multiformats/go-base32 v0.1.0/go.mod h1:Kj3tFY6zNr+ABYMqeUNeGvkIC/UYgtWibDcT0rExnbI=
160160
github.com/multiformats/go-base36 v0.2.0 h1:lFsAbNOGeKtuKozrtBsAkSVhv1p9D0/qedU9rQyccr0=
161161
github.com/multiformats/go-base36 v0.2.0/go.mod h1:qvnKE++v+2MWCfePClUEjE78Z7P2a1UV0xHgWc0hkp4=
162-
github.com/multiformats/go-multiaddr v0.10.1 h1:HghtFrWyZEPrpTvgAMFJi6gFdgHfs2cb0pyfDsk+lqU=
163-
github.com/multiformats/go-multiaddr v0.10.1/go.mod h1:jLEZsA61rwWNZQTHHnqq2HNa+4os/Hz54eqiRnsRqYQ=
162+
github.com/multiformats/go-multiaddr v0.11.0 h1:XqGyJ8ufbCE0HmTDwx2kPdsrQ36AGPZNZX6s6xfJH10=
163+
github.com/multiformats/go-multiaddr v0.11.0/go.mod h1:gWUm0QLR4thQ6+ZF6SXUw8YjtwQSPapICM+NmCkxHSM=
164164
github.com/multiformats/go-multiaddr-dns v0.3.1 h1:QgQgR+LQVt3NPTjbrLLpsaT2ufAA2y0Mkk+QRVJbW3A=
165165
github.com/multiformats/go-multiaddr-fmt v0.1.0 h1:WLEFClPycPkp4fnIzoFoV9FVd49/eQsuaL3/CWe167E=
166166
github.com/multiformats/go-multibase v0.2.0 h1:isdYCVLvksgWlMW9OZRYJEa9pZETFivncJHmHnnd87g=
@@ -175,7 +175,7 @@ github.com/multiformats/go-varint v0.0.7 h1:sWSGR+f/eu5ABZA2ZpYKBILXTTs9JWpdEM/n
175175
github.com/multiformats/go-varint v0.0.7/go.mod h1:r8PUYw/fD/SjBCiKOoDlGF6QawOELpZAu9eioSos/OU=
176176
github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
177177
github.com/onsi/ginkgo/v2 v2.11.0 h1:WgqUCUt/lT6yXoQ8Wef0fsNn5cAuMK7+KT9UFRz2tcU=
178-
github.com/opencontainers/runtime-spec v1.0.2 h1:UfAcuLBJB9Coz72x1hgl8O5RVzTdNiaglX6v2DM6FI0=
178+
github.com/opencontainers/runtime-spec v1.1.0 h1:HHUyrt9mwHUjtasSbXSMvs4cyFxh+Bll4AjJ9odEGpg=
179179
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
180180
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
181181
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
@@ -184,14 +184,13 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb
184184
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
185185
github.com/polydawn/refmt v0.89.0 h1:ADJTApkvkeBZsN0tBTx8QjpD9JkmxbKp0cxfr9qszm4=
186186
github.com/polydawn/refmt v0.89.0/go.mod h1:/zvteZs/GwLtCgZ4BL6CBsk9IKIlexP43ObX9AxTqTw=
187-
github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw=
187+
github.com/prometheus/client_golang v1.16.0 h1:yk/hx9hDbrGHovbci4BY+pRMfSuuat626eFsHb7tmT8=
188188
github.com/prometheus/client_model v0.4.0 h1:5lQXD3cAg1OXBf4Wq03gTrXHeaV0TQvGfUooCfx1yqY=
189-
github.com/prometheus/common v0.37.0 h1:ccBbHCgIiT9uSoFY0vX8H3zsNR5eLt17/RQLUvn8pXE=
190-
github.com/prometheus/procfs v0.8.0 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5mo=
189+
github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY=
190+
github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI=
191191
github.com/quic-go/qpack v0.4.0 h1:Cr9BXA1sQS2SmDUWjSofMPNKmvF6IiIfDRmgU0w1ZCo=
192-
github.com/quic-go/qtls-go1-19 v0.3.3 h1:wznEHvJwd+2X3PqftRha0SUKmGsnb6dfArMhy9PeJVE=
193-
github.com/quic-go/qtls-go1-20 v0.2.3 h1:m575dovXn1y2ATOb1XrRFcrv0F+EQmlowTkoraNkDPI=
194-
github.com/quic-go/quic-go v0.36.4 h1:CXn/ZLN5Vntlk53fjR+kUMC8Jt7flfQe+I5Ty5A+k0o=
192+
github.com/quic-go/qtls-go1-20 v0.3.2 h1:rRgN3WfnKbyik4dBV8A6girlJVxGand/d+jVKbQq5GI=
193+
github.com/quic-go/quic-go v0.38.0 h1:T45lASr5q/TrVwt+jrVccmqHhPL2XuSyoCLVCpfOSLc=
195194
github.com/quic-go/webtransport-go v0.5.3 h1:5XMlzemqB4qmOlgIus5zB45AcZ2kCgCy2EptUrfOPWU=
196195
github.com/raulk/go-watchdog v1.3.0 h1:oUmdlHxdkXRJlwfG0O9omj8ukerm8MEQavSiDTEtBsk=
197196
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
@@ -253,8 +252,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U
253252
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
254253
golang.org/x/crypto v0.12.0 h1:tFM/ta59kqch6LlvYnPa0yx5a83cL2nHflFhYKvv9Yk=
255254
golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw=
256-
golang.org/x/exp v0.0.0-20230713183714-613f0c0eb8a1 h1:MGwJjxBy0HJshjDNfLsYO8xppfqWlA5ZT9OhtUUhTNw=
257-
golang.org/x/exp v0.0.0-20230713183714-613f0c0eb8a1/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc=
255+
golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63 h1:m64FZMko/V45gv0bNmrNYoDEq8U5YUhetc9cBWKS1TQ=
256+
golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63/go.mod h1:0v4NqG35kSWCMzLaMeX+IQrlSnVE/bqGSyC2cz/9Le8=
258257
golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
259258
golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
260259
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
@@ -267,8 +266,8 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL
267266
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
268267
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
269268
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
270-
golang.org/x/net v0.12.0 h1:cfawfvKITfUsFCeJIHJrbSxpeu/E81khclypR0GVT50=
271-
golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA=
269+
golang.org/x/net v0.14.0 h1:BONx9s002vGdD9umnlX1Po8vOZmrgH34qlHcD1MfK14=
270+
golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI=
272271
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
273272
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
274273
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -301,7 +300,7 @@ golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtn
301300
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
302301
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
303302
golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
304-
golang.org/x/tools v0.11.0 h1:EMCa6U9S2LtZXLAMoWiR/R8dAQFRqbAitmbJ2UKhoi8=
303+
golang.org/x/tools v0.12.1-0.20230815132531-74c255bcf846 h1:Vve/L0v7CXXuxUmaMGIEK/dEeq7uiqb5qBgQrZzIE7E=
305304
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
306305
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
307306
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=

heads_test.go

+6-3
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"reflect"
88
"sort"
99
"testing"
10+
"time"
1011

1112
"github.com/ipfs/go-cid"
1213
ds "github.com/ipfs/go-datastore"
@@ -16,6 +17,8 @@ import (
1617

1718
var headsTestNS = ds.NewKey("headstest")
1819

20+
var randg = rand.New(rand.NewSource(time.Now().UnixNano()))
21+
1922
// TODO we should also test with a non-batching store
2023
func newTestHeads(t *testing.T) *heads {
2124
t.Helper()
@@ -33,7 +36,7 @@ func newTestHeads(t *testing.T) *heads {
3336
func newCID(t *testing.T) cid.Cid {
3437
t.Helper()
3538
var buf [32]byte
36-
_, _ = rand.Read(buf[:])
39+
_, _ = randg.Read(buf[:])
3740

3841
mh, err := multihash.Sum(buf[:], multihash.SHA2_256, -1)
3942
if err != nil {
@@ -57,7 +60,7 @@ func TestHeadsBasic(t *testing.T) {
5760
cidHeights := make(map[cid.Cid]uint64)
5861
numHeads := 5
5962
for i := 0; i < numHeads; i++ {
60-
c, height := newCID(t), uint64(rand.Int())
63+
c, height := newCID(t), uint64(randg.Int())
6164
cidHeights[c] = height
6265
err := heads.Add(ctx, c, height)
6366
if err != nil {
@@ -68,7 +71,7 @@ func TestHeadsBasic(t *testing.T) {
6871
assertHeads(t, heads, cidHeights)
6972

7073
for c := range cidHeights {
71-
newC, newHeight := newCID(t), uint64(rand.Int())
74+
newC, newHeight := newCID(t), uint64(randg.Int())
7275
err := heads.Replace(ctx, c, newC, newHeight)
7376
if err != nil {
7477
t.Fatal(err)

0 commit comments

Comments
 (0)