MCPcopy Create free account
hub / github.com/evilsocket/cake / test_goodbye_and_continue

Function test_goodbye_and_continue

cake-core/tests/protocol.rs:292–323  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

290
291#[tokio::test]
292async fn test_goodbye_and_continue() {
293 let mock = MockWorker::bind().await;
294 let addr = mock.addr();
295 let worker = tokio::spawn(async move { mock.handle_one(None).await });
296
297 let (mut stream, _) = connect_and_handshake(addr, None).await;
298
299 // First op
300 let tensor = make_f16_tensor(&[1, 64]);
301 Message::single_op("model.layers.0", &tensor, 0, 0)
302 .to_writer(&mut stream)
303 .await
304 .unwrap();
305 let (_, resp) = Message::from_reader(&mut stream).await.unwrap();
306 assert!(matches!(resp, Message::Tensor(_)));
307
308 // Goodbye
309 Message::Goodbye.to_writer(&mut stream).await.unwrap();
310 let (_, resp) = Message::from_reader(&mut stream).await.unwrap();
311 assert!(matches!(resp, Message::WorkerInfo(_)));
312
313 // Another op after goodbye (worker should still be alive)
314 Message::single_op("model.layers.0", &tensor, 1, 0)
315 .to_writer(&mut stream)
316 .await
317 .unwrap();
318 let (_, resp) = Message::from_reader(&mut stream).await.unwrap();
319 assert!(matches!(resp, Message::Tensor(_)));
320
321 drop(stream);
322 let _ = worker.await;
323}
324
325#[tokio::test]
326async fn test_large_tensor_transfer() {

Callers

nothing calls this directly

Calls 5

connect_and_handshakeFunction · 0.85
addrMethod · 0.80
handle_oneMethod · 0.80
to_writerMethod · 0.80
make_f16_tensorFunction · 0.70

Tested by

no test coverage detected