Movatterモバイル変換


[0]ホーム

URL:


integration

package
v2.24.2Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 15, 2025 License:AGPL-3.0Imports:41Imported by:0

Details

Repository

github.com/coder/coder

Links

Documentation

Index

Constants

View Source
const EchoPort = 2381

Variables

View Source
var Client1 =Client{Number:ClientNumber1,ID:uuid.MustParse("00000000-0000-0000-0000-000000000001"),ListenPort:     client1Port,ShouldRunTests:true,TunnelSrc:true,}
View Source
var Client2 =Client{Number:ClientNumber2,ID:uuid.MustParse("00000000-0000-0000-0000-000000000002"),ListenPort:     client2Port,ShouldRunTests:false,TunnelSrc:false,}

Functions

funcExecBackgroundadded inv2.12.0

func ExecBackground(t *testing.T, processNamestring, netNS *os.File, namestring, args []string) (<-chanerror, func()error)

ExecBackground starts a subprocess with the given flags and returns achannel that will receive the error when the subprocess exits. The returnedfunction can be used to close the subprocess.

processName is used to identify the subprocess in logs.

Optionally, a network namespace can be passed to run the subprocess in.

Do not call close then wait on the channel. Use the returned value from thefunction instead in this case.

Cleanup is handled automatically if you don't care about monitoring theprocess manually.

funcTestBigUDPadded inv2.24.0

func TestBigUDP(t *testing.T, loggerslog.Logger, _ *url.URL, conn *tailnet.Conn, _, peerClient)

funcTestSuiteadded inv2.12.0

func TestSuite(t *testing.T, _slog.Logger, serverURL *url.URL, conn *tailnet.Conn, _, peerClient)

TODO: instead of reusing one conn for each suite, maybe we should make a newone for each subtest?

Types

typeBasicClientStarteradded inv2.24.0

type BasicClientStarter struct {BlockEndpointsboolDERPForceWebsocketsbool// WaitForConnection means wait for (any) peer connection before returning from StartClientWaitForConnectionbool// WaitForConnection means wait for a direct peer connection before returning from StartClientWaitForDirectbool// Service is a network service (e.g. an echo server) to start on the client. If Wait* is set, the service is// started prior to waiting.ServiceNetworkServiceLogPacketsbool}

func (BasicClientStarter)StartClientadded inv2.24.0

func (bBasicClientStarter) StartClient(t *testing.T, loggerslog.Logger, serverURL *url.URL, derpMap *tailcfg.DERPMap, me, peerClient) *tailnet.Conn

typeClientadded inv2.12.0

type Client struct {NumberClientNumberIDuuid.UUIDListenPortuint16ShouldRunTestsboolTunnelSrcbool}

typeClientNumberadded inv2.12.0

type ClientNumberint
const (ClientNumber1ClientNumber = 1ClientNumber2ClientNumber = 2)

typeClientStarteradded inv2.12.0

type ClientStarter interface {StartClient(t *testing.T, loggerslog.Logger, serverURL *url.URL, derpMap *tailcfg.DERPMap, meClient, peerClient) *tailnet.Conn}

typeNGINXServerOptionsadded inv2.12.0

type NGINXServerOptions struct {SimpleServerOptions}

func (NGINXServerOptions)StartServeradded inv2.12.0

func (oNGINXServerOptions) StartServer(t *testing.T, loggerslog.Logger, listenAddrstring)

typeNetworkServiceadded inv2.24.0

type NetworkService interface {StartService(t *testing.T, loggerslog.Logger, conn *tailnet.Conn)}

typeNetworkingLoopbackadded inv2.24.0

type NetworkingLoopback struct{}

NetworkingLoopback creates a network namespace with a loopback interfacefor all tests to share. This is the simplest networking setup. The networknamespace only exists for isolation on the host and doesn't serve any routingpurpose.

func (NetworkingLoopback)SetupNetworkingadded inv2.24.0

typeNetworkingNATadded inv2.24.0

type NetworkingNAT struct {StunCountintClient1HardboolClient2Hardbool}

NetworkingNAT creates a fake internet and sets up "NAT"forwarding rules, either easy or hard.See createFakeInternet.NAT is achieved through a single iptables masquerade rule.

func (NetworkingNAT)SetupNetworkingadded inv2.24.0

func (nNetworkingNAT) SetupNetworking(t *testing.T, lslog.Logger)TestNetworking

SetupNetworking creates a fake internet with multiple STUN servers and sets upNAT forwarding rules. Client NATs are controlled by the switches ClientXHard, which if true, sets up hardnat.

typeNetworkingProvideradded inv2.24.0

type NetworkingProvider interface {// SetupNetworking creates interfaces and network namespaces for the test.// The most simple implementation is NetworkSetupDefault, which only creates// a network namespace shared for all tests.SetupNetworking(t *testing.T, loggerslog.Logger)TestNetworking}

typeServerStarteradded inv2.12.0

type ServerStarter interface {// StartServer should start the server and return once it's listening. It// should not block once it's listening. Cleanup should be handled by// t.Cleanup.StartServer(t *testing.T, loggerslog.Logger, listenAddrstring)}

typeSimpleServerOptionsadded inv2.12.0

type SimpleServerOptions struct {// FailUpgradeDERP will make the DERP server fail to handle the initial DERP// upgrade in a way that causes the client to fallback to// DERP-over-WebSocket fallback automatically.// Incompatible with DERPWebsocketOnly.FailUpgradeDERPbool// DERPWebsocketOnly will make the DERP server only accept WebSocket// connections. If a DERP request is received that is not using WebSocket// fallback, the test will fail.// Incompatible with FailUpgradeDERP.DERPWebsocketOnlybool}

func (SimpleServerOptions)Routeradded inv2.12.0

func (oSimpleServerOptions) Router(t *testing.T, loggerslog.Logger) *chi.Mux

func (SimpleServerOptions)StartServeradded inv2.12.0

func (oSimpleServerOptions) StartServer(t *testing.T, loggerslog.Logger, listenAddrstring)

typeTestNetworkingClientadded inv2.12.0

type TestNetworkingClient struct {ProcessTestNetworkingProcess// ServerAccessURL is the hostname and port that the client uses to access// the server over HTTP for coordination.ServerAccessURLstring// DERPMap is the DERP map that the client uses. If nil, a basic DERP map// containing only a single DERP with `ServerAccessURL` is used with no// STUN servers.DERPMap *tailcfg.DERPMap}

func (TestNetworkingClient)ResolveDERPMapadded inv2.12.0

func (cTestNetworkingClient) ResolveDERPMap() (*tailcfg.DERPMap,error)

typeTestNetworkingProcess

type TestNetworkingProcess struct {// NetNS to enter. If nil, the current network namespace is used.NetNS *os.File}

func (TestNetworkingProcess)CapturePacketsadded inv2.24.0

func (pTestNetworkingProcess) CapturePackets(t *testing.T, name, dirstring)

typeTestNetworkingSTUNadded inv2.12.0

type TestNetworkingSTUN struct {ProcessTestNetworkingProcessIPstringListenAddrstring}

typeTestNetworkingServeradded inv2.12.0

type TestNetworkingServer struct {ProcessTestNetworkingProcessListenAddrstring}

typeTestTopology

type TestTopology struct {NamestringNetworkingProviderNetworkingProvider// Server is the server starter for the test. It is executed in the server// subprocess.ServerServerStarter// ClientStarter.StartClient gets called in each client subprocess. It's expected to// create the tailnet.Conn and ensure connectivity to it's peer.ClientStarterClientStarter// RunTests is the main test function. It's called in each of the client// subprocesses. If tests can only run once, they should check the client ID// and return early if it's not the expected one.RunTests func(t *testing.T, loggerslog.Logger, serverURL *url.URL, conn *tailnet.Conn, meClient, peerClient)}

typeTriangleNetworkadded inv2.24.0

type TriangleNetwork struct {Client1MTUint}

func (TriangleNetwork)SetupNetworkingadded inv2.24.0

func (nTriangleNetwork) SetupNetworking(t *testing.T, lslog.Logger)TestNetworking

SetupNetworking creates multiple namespaces with a central router in the following topology.. ┌──────────────┐. │ │. │ Server ├─────────────────────────────────────┐. │ │fdac:38fa:ffff:3::2 │. └──────────────┘ │ fdac:38fa:ffff:3::1. ┌──────────────┐ ┌─────┴───────┐. │ │ fdac:38fa:ffff:1::1│ │. │ Client 1 ├───────────────────────────────┤ Router │. │ │fdac:38fa:ffff:1::2 │ │. └──────────────┘ └─────┬───────┘. ┌──────────────┐ │ fdac:38fa:ffff:2::1. │ │ │. │ Client 2 ├─────────────────────────────────────┘. │ │fdac:38fa:ffff:2::2. └──────────────┘The veth link between Client 1 and the router has a configurable MTU via Client1MTU.

typeUDPEchoServiceadded inv2.24.0

type UDPEchoService struct{}

func (UDPEchoService)StartServiceadded inv2.24.0

func (UDPEchoService) StartService(t *testing.T, loggerslog.Logger, _ *tailnet.Conn)

Source Files

View all Source files

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f orF : Jump to
y orY : Canonical URL
go.dev uses cookies from Google to deliver and enhance the quality of its services and to analyze traffic.Learn more.

[8]ページ先頭

©2009-2025 Movatter.jp