- first := newUtpSocket("localhost:0")
- defer first.Close()
- second := newUtpSocket("localhost:0")
- defer second.Close()
- writer, err := first.DialContext(ctx, network, second.Addr().String())
- c.Assert(err, qt.IsNil)
- defer writer.Close()
- reader, err := second.Accept()
- defer reader.Close()
- c.Assert(err, qt.IsNil)
- testDirectDialMsg(c, reader, writer)
+ for range iter.N(10) {
+ err := func() error {
+ first := newUtpSocket("localhost:0")
+ defer first.Close()
+ second := newUtpSocket("localhost:0")
+ defer second.Close()
+ writer, err := first.DialContext(ctx, network, second.Addr().String())
+ if err != nil {
+ return err
+ }
+ defer writer.Close()
+ reader, err := second.Accept()
+ defer reader.Close()
+ c.Assert(err, qt.IsNil)
+ return writeAndReadMsg(reader, writer)
+ }()
+ if err == nil {
+ return
+ }
+ t.Log(err)
+ time.Sleep(time.Second)
+ }
+ t.FailNow()