Been looking forward to watching this talk. I think property testing is an incredibly useful tool to have in your belt, and the ability to combine it with futures execution ordering is really useful. This means you can basically get some features that you would get from formal verifications systems (promela, TLA+) for *free* in Rust! At least for promela, it works simply by trying out all possible permutations of orderings and ensuring your assertions hold. Combining property testing with execution ordering achieves the same. How awesome is that?
I didn't follow the bug at ~4:00. Wouldn't flipping the order of request handling and the connection checking have the same issue afterward (if a connection happens while deserializing the server response)?
Don't tokio's file/net handles require to be run exclusively on the tokio runtime? If you have a Tokio::net TcpStream and run it on a home brew executor, wont it not work? I think it throws an error when it can't detect the tokio runtime. Is this where the mocks come in?
Great talks! looking forward to tech talk like this especially on the chaos testing with Rust.
Been looking forward to watching this talk. I think property testing is an incredibly useful tool to have in your belt, and the ability to combine it with futures execution ordering is really useful. This means you can basically get some features that you would get from formal verifications systems (promela, TLA+) for *free* in Rust! At least for promela, it works simply by trying out all possible permutations of orderings and ensuring your assertions hold. Combining property testing with execution ordering achieves the same. How awesome is that?
I didn't follow the bug at ~4:00. Wouldn't flipping the order of request handling and the connection checking have the same issue afterward (if a connection happens while deserializing the server response)?
Don't tokio's file/net handles require to be run exclusively on the tokio runtime? If you have a Tokio::net TcpStream and run it on a home brew executor, wont it not work? I think it throws an error when it can't detect the tokio runtime. Is this where the mocks come in?