MCPcopy
hub / github.com/wavetermdev/waveterm / TestBrokerCleanup

Function TestBrokerCleanup

pkg/streamclient/streambroker_test.go:260–294  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

258}
259
260func TestBrokerCleanup(t *testing.T) {
261 broker1, broker2 := setupBrokerPair()
262
263 reader, meta := broker1.CreateStreamReader("reader1", "writer1", 1024)
264 writer, err := broker2.CreateStreamWriter(meta)
265 if err != nil {
266 t.Fatalf("CreateStreamWriter failed: %v", err)
267 }
268
269 testData := []byte("cleanup test")
270 writer.Write(testData)
271
272 buf := make([]byte, 1024)
273 reader.Read(buf)
274
275 writer.Close()
276
277 time.Sleep(100 * time.Millisecond)
278
279 broker1.lock.Lock()
280 _, readerExists := broker1.readers[meta.Id]
281 broker1.lock.Unlock()
282
283 if readerExists {
284 t.Fatal("Reader should have been cleaned up")
285 }
286
287 broker2.lock.Lock()
288 _, writerExists := broker2.writers[meta.Id]
289 broker2.lock.Unlock()
290
291 if writerExists {
292 t.Fatal("Writer should have been cleaned up")
293 }
294}

Callers

nothing calls this directly

Calls 6

setupBrokerPairFunction · 0.85
CreateStreamReaderMethod · 0.80
CreateStreamWriterMethod · 0.80
WriteMethod · 0.65
CloseMethod · 0.65
ReadMethod · 0.45

Tested by

no test coverage detected