mod common;
use std::time::Instant;
use tokio_test::assert_ok;
#[tokio::test]
async fn test_long_running_sockets() -> anyhow::Result<()> {
common::init();
let (addr, server_handle, shutdown) = assert_ok!(common::spawn_full_server().await);
let clients = common::generate_connections(1, addr, 5000).await;
let now = Instant::now();
for (i, client) in clients.into_iter().enumerate() {
let result = assert_ok!(client.await);
assert_eq!(result, i);
}
assert!(now.elapsed() <= std::time::Duration::from_secs(20));
shutdown.cancel();
let server_result = assert_ok!(server_handle.await);
assert_ok!(server_result);
Ok(())
}