Skip to content
This repository was archived by the owner on May 11, 2022. It is now read-only.

Commit 1dc85c6

Browse files
fix flaky tests
1 parent 0b6cfe0 commit 1dc85c6

File tree

1 file changed

+33
-23
lines changed

1 file changed

+33
-23
lines changed

autonat_test.go

+33-23
Original file line numberDiff line numberDiff line change
@@ -22,34 +22,44 @@ import (
2222
// these are mock service implementations for testing
2323
func makeAutoNATServicePrivate(t *testing.T) host.Host {
2424
h := bhost.NewBlankHost(swarmt.GenSwarm(t))
25-
h.SetStreamHandler(AutoNATProto, sayAutoNATPrivate)
25+
h.SetStreamHandler(AutoNATProto, sayPrivateStreamHandler(t))
2626
return h
2727
}
2828

29-
func makeAutoNATServicePublic(t *testing.T) host.Host {
30-
h := bhost.NewBlankHost(swarmt.GenSwarm(t))
31-
h.SetStreamHandler(AutoNATProto, sayAutoNATPublic)
32-
return h
33-
}
34-
35-
func sayAutoNATPrivate(s network.Stream) {
36-
defer s.Close()
37-
w := protoio.NewDelimitedWriter(s)
38-
res := pb.Message{
39-
Type: pb.Message_DIAL_RESPONSE.Enum(),
40-
DialResponse: newDialResponseError(pb.Message_E_DIAL_ERROR, "no dialable addresses"),
29+
func sayPrivateStreamHandler(t *testing.T) network.StreamHandler {
30+
return func(s network.Stream) {
31+
defer s.Close()
32+
r := protoio.NewDelimitedReader(s, network.MessageSizeMax)
33+
if err := r.ReadMsg(&pb.Message{}); err != nil {
34+
t.Error(err)
35+
return
36+
}
37+
w := protoio.NewDelimitedWriter(s)
38+
res := pb.Message{
39+
Type: pb.Message_DIAL_RESPONSE.Enum(),
40+
DialResponse: newDialResponseError(pb.Message_E_DIAL_ERROR, "no dialable addresses"),
41+
}
42+
w.WriteMsg(&res)
4143
}
42-
w.WriteMsg(&res)
4344
}
4445

45-
func sayAutoNATPublic(s network.Stream) {
46-
defer s.Close()
47-
w := protoio.NewDelimitedWriter(s)
48-
res := pb.Message{
49-
Type: pb.Message_DIAL_RESPONSE.Enum(),
50-
DialResponse: newDialResponseOK(s.Conn().RemoteMultiaddr()),
51-
}
52-
w.WriteMsg(&res)
46+
func makeAutoNATServicePublic(t *testing.T) host.Host {
47+
h := bhost.NewBlankHost(swarmt.GenSwarm(t))
48+
h.SetStreamHandler(AutoNATProto, func(s network.Stream) {
49+
defer s.Close()
50+
r := protoio.NewDelimitedReader(s, network.MessageSizeMax)
51+
if err := r.ReadMsg(&pb.Message{}); err != nil {
52+
t.Error(err)
53+
return
54+
}
55+
w := protoio.NewDelimitedWriter(s)
56+
res := pb.Message{
57+
Type: pb.Message_DIAL_RESPONSE.Enum(),
58+
DialResponse: newDialResponseOK(s.Conn().RemoteMultiaddr()),
59+
}
60+
w.WriteMsg(&res)
61+
})
62+
return h
5363
}
5464

5565
func makeAutoNAT(t *testing.T, ash host.Host) (host.Host, AutoNAT) {
@@ -173,7 +183,7 @@ func TestAutoNATPublictoPrivate(t *testing.T) {
173183
)
174184
expectEvent(t, s, network.ReachabilityPublic)
175185

176-
hs.SetStreamHandler(AutoNATProto, sayAutoNATPrivate)
186+
hs.SetStreamHandler(AutoNATProto, sayPrivateStreamHandler(t))
177187
hps := makeAutoNATServicePrivate(t)
178188
connect(t, hps, hc)
179189
identifyAsServer(hps, hc)

0 commit comments

Comments
 (0)