commit | a5aa9c730af2e917988003fbea3d8b2c73312c0a | [log] [tgz] |
---|---|---|
author | Matthias Frei <matthias.frei@inf.ethz.ch> | Wed Dec 01 13:42:31 2021 +0000 |
committer | Damien Neil <dneil@google.com> | Wed Dec 01 18:16:15 2021 +0000 |
tree | adbc4fea6d198895ad1aa4c45fd6e98d3a7a56f5 | |
parent | d83791d6bcd9ec2bdaacd08f4da4718370382c74 [diff] |
internal/socket: handle reordering in TestUDP/Messages TestUDP/Messages and TestUDP/Messages-dialed occasionally failed because the expected messages were not received in a single RecvMsgs call, or because the messages were received out of order. Assuming that both messages are returned immediately from a single RecvMsgs call was a flawed expectation. Fixed by repeatedly invoking RecvMsgs until all expected messages have been received. While it certainly seems unusual that packets are reordered on a loopback device, it does appear to happen occasionally (on linux-mips). Fixed by sizing receive buffers such that messages in any order can be received correctly, and by allowing either order for the reassembled message. Combine "Messages" and "Messages-dialed" subtests with a simple table-driven test, to avoid the repetition. The same "Message" and "Message-dialed". Finally, make the test failure messages slightly more useful. Fixes golang/go#49385 Change-Id: I04463c6ffdf4865d2ccfb8662ab4660bda3b3cbf GitHub-Last-Rev: d9df27b967ea665ce38bdd6320f67beccc6f0d66 GitHub-Pull-Request: golang/net#119 Reviewed-on: https://go-review.googlesource.com/c/net/+/368094 Reviewed-by: Bryan C. Mills <bcmills@google.com> Reviewed-by: Damien Neil <dneil@google.com> Trust: Bryan C. Mills <bcmills@google.com> Run-TryBot: Bryan C. Mills <bcmills@google.com> TryBot-Result: Go Bot <gobot@golang.org>
This repository holds supplementary Go networking libraries.
The easiest way to install is to run go get -u golang.org/x/net
. You can also manually git clone the repository to $GOPATH/src/golang.org/x/net
.
This repository uses Gerrit for code changes. To learn how to submit changes to this repository, see https://golang.org/doc/contribute.html. The main issue tracker for the net repository is located at https://github.com/golang/go/issues. Prefix your issue with “x/net:” in the subject line, so it is easy to find.