]> Cypherpunks repositories - gostls13.git/commit
net: mptcp: add end-to-end test
authorMatthieu Baerts <matthieu.baerts@tessares.net>
Fri, 24 Feb 2023 16:52:01 +0000 (17:52 +0100)
committerGopher Robot <gobot@golang.org>
Thu, 30 Mar 2023 14:27:38 +0000 (14:27 +0000)
commit383a4e78861218bd861632d6cdcac6c8af6a5470
treef8535a176baa1c9ecbe1c6557a296bfa72c20153
parentdead7887b1a1a06aad8c80592045375401e4aeda
net: mptcp: add end-to-end test

This adds a simple test validating MPTCP Sock for Linux implementation:

- A Listener is created with MPTCP support, accepting new connections in
  a new thread.

- A Dialer with MPTCP support connects to this new Listener

- On both sides, MPTCP should be used. Note that at this point, we
  cannot check if a fallback to TCP has been done nor if the correct
  protocol is being used.

Technically, a localServer from mockserver_test.go is used, similar to
TestIPv6LinkLocalUnicastTCP from tcpsock_test.go. Here with MPTCP, the
Listen step is done manually to force using MPTCP and a post step is
done to verify extra status after the Accept. More checks are going to
be done in the future.

Please note that the test is skipped if the kernel doesn't allow the
creation of an MPTCP socket at all when starting the test.

The test can be executed with this command:

  $ ../bin/go test -v net -run "^TestMultiPathTCP$"

The "-race" option has also been checked.

This work has been co-developped by Benjamin Hesmans
<benjamin.hesmans@tessares.net> and Gregory Detal
<gregory.detal@tessares.net>.

Fixes #56539

Change-Id: I4b6b39e9175a20f98497b5ea56934e242da06194
Reviewed-on: https://go-review.googlesource.com/c/go/+/471141
Reviewed-by: Damien Neil <dneil@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Run-TryBot: Emmanuel Odeke <emmanuel@orijtech.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Emmanuel Odeke <emmanuel@orijtech.com>
Auto-Submit: Emmanuel Odeke <emmanuel@orijtech.com>
src/net/mptcpsock_linux_test.go [new file with mode: 0644]