MCPcopy Index your code
hub / github.com/cloudflare/cloudflared / TestUnregisterSessionCloseSession

Function TestUnregisterSessionCloseSession

datagramsession/manager_test.go:129–166  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

127}
128
129func TestUnregisterSessionCloseSession(t *testing.T) {
130 sessionID := uuid.New()
131 payload := []byte(t.Name())
132 sender := newMockTransportSender(sessionID, payload)
133 mg := NewManager(&nopLogger, sender.muxSession, nil)
134 ctx, cancel := context.WithCancel(context.Background())
135
136 managerDone := make(chan struct{})
137 go func() {
138 err := mg.Serve(ctx)
139 require.Error(t, err)
140 close(managerDone)
141 }()
142
143 cfdConn, originConn := net.Pipe()
144 session, err := mg.RegisterSession(ctx, sessionID, cfdConn)
145 require.NoError(t, err)
146 require.NotNil(t, session)
147
148 unregisteredChan := make(chan struct{})
149 go func() {
150 _, err := originConn.Write(payload)
151 require.NoError(t, err)
152
153 err = mg.UnregisterSession(ctx, sessionID, "eyeball closed session", true)
154 require.NoError(t, err)
155
156 close(unregisteredChan)
157 }()
158
159 closedByRemote, err := session.Serve(ctx, time.Minute)
160 require.True(t, closedByRemote)
161 require.Error(t, err)
162
163 <-unregisteredChan
164 cancel()
165 <-managerDone
166}
167
168func TestManagerCtxDoneCloseSessions(t *testing.T) {
169 sessionID := uuid.New()

Callers

nothing calls this directly

Calls 8

ServeMethod · 0.95
RegisterSessionMethod · 0.95
UnregisterSessionMethod · 0.95
newMockTransportSenderFunction · 0.85
NewManagerFunction · 0.85
NameMethod · 0.65
WriteMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected