这是我的代码:
use std::net;
use std::thread;
extern crate argparse;
use argparse::{ArgumentParser, StoreTrue, Store};
fn scan_port(host: &str, port: u16) -> bool {
let host = host.to_string();
let port = port;
let t = thread::spawn(move || net::TcpStream::connect((host.as_str(), port)).is_ok());
t.join().unwrap()
}
Run Code Online (Sandbox Code Playgroud)
如果连接未在N秒内完成,如何创建线程将被终止或终止的情况?
所有这一切的原因是Rust无法设置套接字连接超时,因此我无法确保程序不会卡住.
我正在 Rust 中实现一个虚拟机作为练习。一些集成测试在该虚拟机上运行小程序并对最终结果做出断言。
但是,可能会发生错误导致机器陷入无限循环,这意味着cargo test永远不会完成。
有没有办法在给定的时间后使单元/集成测试失败?也许类似于#[should_panic],但相反,说,#[time_limit(500)]?