mirror of
https://github.com/coder/coder.git
synced 2026-06-02 20:48:20 +00:00
chore: update testutil chan helpers (#17408)
This commit is contained in:
+7
-7
@@ -143,11 +143,11 @@ func TestClient_WorkspaceUpdates(t *testing.T) {
|
||||
connErrCh <- err
|
||||
connCh <- conn
|
||||
}()
|
||||
testutil.RequireRecvCtx(ctx, t, user)
|
||||
testutil.RequireRecvCtx(ctx, t, connInfo)
|
||||
err = testutil.RequireRecvCtx(ctx, t, connErrCh)
|
||||
testutil.TryReceive(ctx, t, user)
|
||||
testutil.TryReceive(ctx, t, connInfo)
|
||||
err = testutil.TryReceive(ctx, t, connErrCh)
|
||||
require.NoError(t, err)
|
||||
conn := testutil.RequireRecvCtx(ctx, t, connCh)
|
||||
conn := testutil.TryReceive(ctx, t, connCh)
|
||||
|
||||
// Send a workspace update
|
||||
update := &proto.WorkspaceUpdate{
|
||||
@@ -165,10 +165,10 @@ func TestClient_WorkspaceUpdates(t *testing.T) {
|
||||
},
|
||||
},
|
||||
}
|
||||
testutil.RequireSendCtx(ctx, t, outUpdateCh, update)
|
||||
testutil.RequireSend(ctx, t, outUpdateCh, update)
|
||||
|
||||
// It'll be received by the update handler
|
||||
recvUpdate := testutil.RequireRecvCtx(ctx, t, inUpdateCh)
|
||||
recvUpdate := testutil.TryReceive(ctx, t, inUpdateCh)
|
||||
require.Len(t, recvUpdate.UpsertedWorkspaces, 1)
|
||||
require.Equal(t, wsID, recvUpdate.UpsertedWorkspaces[0].ID)
|
||||
require.Len(t, recvUpdate.UpsertedAgents, 1)
|
||||
@@ -202,7 +202,7 @@ func TestClient_WorkspaceUpdates(t *testing.T) {
|
||||
|
||||
// Close the conn
|
||||
conn.Close()
|
||||
err = testutil.RequireRecvCtx(ctx, t, serveErrCh)
|
||||
err = testutil.TryReceive(ctx, t, serveErrCh)
|
||||
require.NoError(t, err)
|
||||
})
|
||||
}
|
||||
|
||||
@@ -58,12 +58,12 @@ func TestSpeaker_RawPeer(t *testing.T) {
|
||||
_, err = mp.Write([]byte("codervpn manager 1.3,2.1\n"))
|
||||
require.NoError(t, err)
|
||||
|
||||
err = testutil.RequireRecvCtx(ctx, t, errCh)
|
||||
err = testutil.TryReceive(ctx, t, errCh)
|
||||
require.NoError(t, err)
|
||||
tun.start()
|
||||
|
||||
// send a message and verify it follows protocol for encoding
|
||||
testutil.RequireSendCtx(ctx, t, tun.sendCh, &TunnelMessage{
|
||||
testutil.RequireSend(ctx, t, tun.sendCh, &TunnelMessage{
|
||||
Msg: &TunnelMessage_Start{
|
||||
Start: &StartResponse{},
|
||||
},
|
||||
@@ -107,7 +107,7 @@ func TestSpeaker_HandshakeRWFailure(t *testing.T) {
|
||||
tun = s
|
||||
errCh <- err
|
||||
}()
|
||||
err := testutil.RequireRecvCtx(ctx, t, errCh)
|
||||
err := testutil.TryReceive(ctx, t, errCh)
|
||||
require.ErrorContains(t, err, "handshake failed")
|
||||
require.Nil(t, tun)
|
||||
}
|
||||
@@ -131,7 +131,7 @@ func TestSpeaker_HandshakeCtxDone(t *testing.T) {
|
||||
errCh <- err
|
||||
}()
|
||||
cancel()
|
||||
err := testutil.RequireRecvCtx(testCtx, t, errCh)
|
||||
err := testutil.TryReceive(testCtx, t, errCh)
|
||||
require.ErrorContains(t, err, "handshake failed")
|
||||
require.Nil(t, tun)
|
||||
}
|
||||
@@ -168,7 +168,7 @@ func TestSpeaker_OversizeHandshake(t *testing.T) {
|
||||
_, err = mp.Write([]byte(badHandshake))
|
||||
require.Error(t, err) // other side closes when we write too much
|
||||
|
||||
err = testutil.RequireRecvCtx(ctx, t, errCh)
|
||||
err = testutil.TryReceive(ctx, t, errCh)
|
||||
require.ErrorContains(t, err, "handshake failed")
|
||||
require.Nil(t, tun)
|
||||
}
|
||||
@@ -216,7 +216,7 @@ func TestSpeaker_HandshakeInvalid(t *testing.T) {
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, expectedHandshake, string(b[:n]))
|
||||
|
||||
err = testutil.RequireRecvCtx(ctx, t, errCh)
|
||||
err = testutil.TryReceive(ctx, t, errCh)
|
||||
require.ErrorContains(t, err, "validate header")
|
||||
require.Nil(t, tun)
|
||||
})
|
||||
@@ -258,7 +258,7 @@ func TestSpeaker_CorruptMessage(t *testing.T) {
|
||||
_, err = mp.Write([]byte("codervpn manager 1.0\n"))
|
||||
require.NoError(t, err)
|
||||
|
||||
err = testutil.RequireRecvCtx(ctx, t, errCh)
|
||||
err = testutil.TryReceive(ctx, t, errCh)
|
||||
require.NoError(t, err)
|
||||
tun.start()
|
||||
|
||||
@@ -290,7 +290,7 @@ func TestSpeaker_unaryRPC_mainline(t *testing.T) {
|
||||
resp = r
|
||||
errCh <- err
|
||||
}()
|
||||
req := testutil.RequireRecvCtx(ctx, t, tun.requests)
|
||||
req := testutil.TryReceive(ctx, t, tun.requests)
|
||||
require.NotEqualValues(t, 0, req.msg.GetRpc().GetMsgId())
|
||||
require.Equal(t, "https://coder.example.com", req.msg.GetStart().GetCoderUrl())
|
||||
err := req.sendReply(&TunnelMessage{
|
||||
@@ -299,7 +299,7 @@ func TestSpeaker_unaryRPC_mainline(t *testing.T) {
|
||||
},
|
||||
})
|
||||
require.NoError(t, err)
|
||||
err = testutil.RequireRecvCtx(ctx, t, errCh)
|
||||
err = testutil.TryReceive(ctx, t, errCh)
|
||||
require.NoError(t, err)
|
||||
_, ok := resp.Msg.(*TunnelMessage_Start)
|
||||
require.True(t, ok)
|
||||
@@ -334,12 +334,12 @@ func TestSpeaker_unaryRPC_canceled(t *testing.T) {
|
||||
resp = r
|
||||
errCh <- err
|
||||
}()
|
||||
req := testutil.RequireRecvCtx(testCtx, t, tun.requests)
|
||||
req := testutil.TryReceive(testCtx, t, tun.requests)
|
||||
require.NotEqualValues(t, 0, req.msg.GetRpc().GetMsgId())
|
||||
require.Equal(t, "https://coder.example.com", req.msg.GetStart().GetCoderUrl())
|
||||
|
||||
cancel()
|
||||
err := testutil.RequireRecvCtx(testCtx, t, errCh)
|
||||
err := testutil.TryReceive(testCtx, t, errCh)
|
||||
require.ErrorIs(t, err, context.Canceled)
|
||||
require.Nil(t, resp)
|
||||
|
||||
@@ -370,7 +370,7 @@ func TestSpeaker_unaryRPC_hung_up(t *testing.T) {
|
||||
resp = r
|
||||
errCh <- err
|
||||
}()
|
||||
req := testutil.RequireRecvCtx(testCtx, t, tun.requests)
|
||||
req := testutil.TryReceive(testCtx, t, tun.requests)
|
||||
require.NotEqualValues(t, 0, req.msg.GetRpc().GetMsgId())
|
||||
require.Equal(t, "https://coder.example.com", req.msg.GetStart().GetCoderUrl())
|
||||
|
||||
@@ -378,7 +378,7 @@ func TestSpeaker_unaryRPC_hung_up(t *testing.T) {
|
||||
err := tun.Close()
|
||||
require.NoError(t, err)
|
||||
// Then: we should get an error on the RPC.
|
||||
err = testutil.RequireRecvCtx(testCtx, t, errCh)
|
||||
err = testutil.TryReceive(testCtx, t, errCh)
|
||||
require.ErrorIs(t, err, io.ErrUnexpectedEOF)
|
||||
require.Nil(t, resp)
|
||||
}
|
||||
@@ -397,7 +397,7 @@ func TestSpeaker_unaryRPC_sendLoop(t *testing.T) {
|
||||
// When: serdes sendloop is closed
|
||||
// Send a message from the manager. This closes the manager serdes sendloop, since it will error
|
||||
// when writing the message to the (closed) pipe.
|
||||
testutil.RequireSendCtx(ctx, t, mgr.sendCh, &ManagerMessage{
|
||||
testutil.RequireSend(ctx, t, mgr.sendCh, &ManagerMessage{
|
||||
Msg: &ManagerMessage_GetPeerUpdate{},
|
||||
})
|
||||
|
||||
@@ -417,7 +417,7 @@ func TestSpeaker_unaryRPC_sendLoop(t *testing.T) {
|
||||
}()
|
||||
|
||||
// Then: we should get an error on the RPC.
|
||||
err = testutil.RequireRecvCtx(testCtx, t, errCh)
|
||||
err = testutil.TryReceive(testCtx, t, errCh)
|
||||
require.ErrorIs(t, err, io.ErrUnexpectedEOF)
|
||||
require.Nil(t, resp)
|
||||
}
|
||||
@@ -448,9 +448,9 @@ func setupSpeakers(t *testing.T) (
|
||||
mgr = s
|
||||
errCh <- err
|
||||
}()
|
||||
err := testutil.RequireRecvCtx(ctx, t, errCh)
|
||||
err := testutil.TryReceive(ctx, t, errCh)
|
||||
require.NoError(t, err)
|
||||
err = testutil.RequireRecvCtx(ctx, t, errCh)
|
||||
err = testutil.TryReceive(ctx, t, errCh)
|
||||
require.NoError(t, err)
|
||||
tun.start()
|
||||
mgr.start()
|
||||
|
||||
+23
-23
@@ -114,9 +114,9 @@ func TestTunnel_StartStop(t *testing.T) {
|
||||
errCh <- err
|
||||
}()
|
||||
// Then: `NewConn` is called,
|
||||
testutil.RequireSendCtx(ctx, t, client.ch, conn)
|
||||
testutil.RequireSend(ctx, t, client.ch, conn)
|
||||
// And: a response is received
|
||||
err := testutil.RequireRecvCtx(ctx, t, errCh)
|
||||
err := testutil.TryReceive(ctx, t, errCh)
|
||||
require.NoError(t, err)
|
||||
_, ok := resp.Msg.(*TunnelMessage_Start)
|
||||
require.True(t, ok)
|
||||
@@ -130,9 +130,9 @@ func TestTunnel_StartStop(t *testing.T) {
|
||||
errCh <- err
|
||||
}()
|
||||
// Then: `Close` is called on the connection
|
||||
testutil.RequireRecvCtx(ctx, t, conn.closed)
|
||||
testutil.TryReceive(ctx, t, conn.closed)
|
||||
// And: a Stop response is received
|
||||
err = testutil.RequireRecvCtx(ctx, t, errCh)
|
||||
err = testutil.TryReceive(ctx, t, errCh)
|
||||
require.NoError(t, err)
|
||||
_, ok = resp.Msg.(*TunnelMessage_Stop)
|
||||
require.True(t, ok)
|
||||
@@ -178,8 +178,8 @@ func TestTunnel_PeerUpdate(t *testing.T) {
|
||||
resp = r
|
||||
errCh <- err
|
||||
}()
|
||||
testutil.RequireSendCtx(ctx, t, client.ch, conn)
|
||||
err := testutil.RequireRecvCtx(ctx, t, errCh)
|
||||
testutil.RequireSend(ctx, t, client.ch, conn)
|
||||
err := testutil.TryReceive(ctx, t, errCh)
|
||||
require.NoError(t, err)
|
||||
_, ok := resp.Msg.(*TunnelMessage_Start)
|
||||
require.True(t, ok)
|
||||
@@ -194,7 +194,7 @@ func TestTunnel_PeerUpdate(t *testing.T) {
|
||||
})
|
||||
require.NoError(t, err)
|
||||
// Then: the tunnel sends a PeerUpdate message
|
||||
req := testutil.RequireRecvCtx(ctx, t, mgr.requests)
|
||||
req := testutil.TryReceive(ctx, t, mgr.requests)
|
||||
require.Nil(t, req.msg.Rpc)
|
||||
require.NotNil(t, req.msg.GetPeerUpdate())
|
||||
require.Len(t, req.msg.GetPeerUpdate().UpsertedWorkspaces, 1)
|
||||
@@ -209,7 +209,7 @@ func TestTunnel_PeerUpdate(t *testing.T) {
|
||||
errCh <- err
|
||||
}()
|
||||
// Then: a PeerUpdate message is sent using the Conn's state
|
||||
err = testutil.RequireRecvCtx(ctx, t, errCh)
|
||||
err = testutil.TryReceive(ctx, t, errCh)
|
||||
require.NoError(t, err)
|
||||
_, ok = resp.Msg.(*TunnelMessage_PeerUpdate)
|
||||
require.True(t, ok)
|
||||
@@ -243,8 +243,8 @@ func TestTunnel_NetworkSettings(t *testing.T) {
|
||||
resp = r
|
||||
errCh <- err
|
||||
}()
|
||||
testutil.RequireSendCtx(ctx, t, client.ch, conn)
|
||||
err := testutil.RequireRecvCtx(ctx, t, errCh)
|
||||
testutil.RequireSend(ctx, t, client.ch, conn)
|
||||
err := testutil.TryReceive(ctx, t, errCh)
|
||||
require.NoError(t, err)
|
||||
_, ok := resp.Msg.(*TunnelMessage_Start)
|
||||
require.True(t, ok)
|
||||
@@ -257,11 +257,11 @@ func TestTunnel_NetworkSettings(t *testing.T) {
|
||||
errCh <- err
|
||||
}()
|
||||
// Then: the tunnel sends a NetworkSettings message
|
||||
req := testutil.RequireRecvCtx(ctx, t, mgr.requests)
|
||||
req := testutil.TryReceive(ctx, t, mgr.requests)
|
||||
require.NotNil(t, req.msg.Rpc)
|
||||
require.Equal(t, uint32(1200), req.msg.GetNetworkSettings().Mtu)
|
||||
go func() {
|
||||
testutil.RequireSendCtx(ctx, t, mgr.sendCh, &ManagerMessage{
|
||||
testutil.RequireSend(ctx, t, mgr.sendCh, &ManagerMessage{
|
||||
Rpc: &RPC{ResponseTo: req.msg.Rpc.MsgId},
|
||||
Msg: &ManagerMessage_NetworkSettings{
|
||||
NetworkSettings: &NetworkSettingsResponse{
|
||||
@@ -271,7 +271,7 @@ func TestTunnel_NetworkSettings(t *testing.T) {
|
||||
})
|
||||
}()
|
||||
// And: `ApplyNetworkSettings` returns without error once the manager responds
|
||||
err = testutil.RequireRecvCtx(ctx, t, errCh)
|
||||
err = testutil.TryReceive(ctx, t, errCh)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
@@ -383,8 +383,8 @@ func TestTunnel_sendAgentUpdate(t *testing.T) {
|
||||
resp = r
|
||||
errCh <- err
|
||||
}()
|
||||
testutil.RequireSendCtx(ctx, t, client.ch, conn)
|
||||
err := testutil.RequireRecvCtx(ctx, t, errCh)
|
||||
testutil.RequireSend(ctx, t, client.ch, conn)
|
||||
err := testutil.TryReceive(ctx, t, errCh)
|
||||
require.NoError(t, err)
|
||||
_, ok := resp.Msg.(*TunnelMessage_Start)
|
||||
require.True(t, ok)
|
||||
@@ -408,7 +408,7 @@ func TestTunnel_sendAgentUpdate(t *testing.T) {
|
||||
},
|
||||
})
|
||||
require.NoError(t, err)
|
||||
req := testutil.RequireRecvCtx(ctx, t, mgr.requests)
|
||||
req := testutil.TryReceive(ctx, t, mgr.requests)
|
||||
require.Nil(t, req.msg.Rpc)
|
||||
require.NotNil(t, req.msg.GetPeerUpdate())
|
||||
require.Len(t, req.msg.GetPeerUpdate().UpsertedAgents, 1)
|
||||
@@ -420,7 +420,7 @@ func TestTunnel_sendAgentUpdate(t *testing.T) {
|
||||
mClock.AdvanceNext()
|
||||
// Then: the tunnel sends a PeerUpdate message of agent upserts,
|
||||
// with the last handshake and latency set
|
||||
req = testutil.RequireRecvCtx(ctx, t, mgr.requests)
|
||||
req = testutil.TryReceive(ctx, t, mgr.requests)
|
||||
require.Nil(t, req.msg.Rpc)
|
||||
require.NotNil(t, req.msg.GetPeerUpdate())
|
||||
require.Len(t, req.msg.GetPeerUpdate().UpsertedAgents, 1)
|
||||
@@ -443,11 +443,11 @@ func TestTunnel_sendAgentUpdate(t *testing.T) {
|
||||
},
|
||||
})
|
||||
require.NoError(t, err)
|
||||
testutil.RequireRecvCtx(ctx, t, mgr.requests)
|
||||
testutil.TryReceive(ctx, t, mgr.requests)
|
||||
|
||||
// The new update includes the new agent
|
||||
mClock.AdvanceNext()
|
||||
req = testutil.RequireRecvCtx(ctx, t, mgr.requests)
|
||||
req = testutil.TryReceive(ctx, t, mgr.requests)
|
||||
require.Nil(t, req.msg.Rpc)
|
||||
require.NotNil(t, req.msg.GetPeerUpdate())
|
||||
require.Len(t, req.msg.GetPeerUpdate().UpsertedAgents, 2)
|
||||
@@ -474,11 +474,11 @@ func TestTunnel_sendAgentUpdate(t *testing.T) {
|
||||
},
|
||||
})
|
||||
require.NoError(t, err)
|
||||
testutil.RequireRecvCtx(ctx, t, mgr.requests)
|
||||
testutil.TryReceive(ctx, t, mgr.requests)
|
||||
|
||||
// The new update doesn't include the deleted agent
|
||||
mClock.AdvanceNext()
|
||||
req = testutil.RequireRecvCtx(ctx, t, mgr.requests)
|
||||
req = testutil.TryReceive(ctx, t, mgr.requests)
|
||||
require.Nil(t, req.msg.Rpc)
|
||||
require.NotNil(t, req.msg.GetPeerUpdate())
|
||||
require.Len(t, req.msg.GetPeerUpdate().UpsertedAgents, 1)
|
||||
@@ -506,9 +506,9 @@ func setupTunnel(t *testing.T, ctx context.Context, client *fakeClient, mClock q
|
||||
mgr = manager
|
||||
errCh <- err
|
||||
}()
|
||||
err := testutil.RequireRecvCtx(ctx, t, errCh)
|
||||
err := testutil.TryReceive(ctx, t, errCh)
|
||||
require.NoError(t, err)
|
||||
err = testutil.RequireRecvCtx(ctx, t, errCh)
|
||||
err = testutil.TryReceive(ctx, t, errCh)
|
||||
require.NoError(t, err)
|
||||
mgr.start()
|
||||
return tun, mgr
|
||||
|
||||
Reference in New Issue
Block a user