文件名称:shuttle:Shuttle是用于测试并发Rust代码的库
文件大小:96KB
文件格式:ZIP
更新时间:2024-04-20 16:16:34
Rust
穿梭 Shuttle是用于测试并发Rust代码的库。 它是许多随机并发测试技术的实现,包括。 入门 考虑以下简单的并发代码: use std :: sync :: {Arc, Mutex}; use std :: thread; let lock = Arc :: new (Mutex :: new ( 0u64 )); let lock2 = lock. clone (); thread :: spawn ( move || { * lock. lock (). unwrap () = 1 ; }); assert_eq! ( 0 , * lock2. lock (). unwrap ()); 这里有一个明显的竞争条件:如果派生的线程在断言之前运行,则断言将失败。 但是编写一个可以找到执行结果的单元测试是很棘手的。 我们可以多次运行测试,并通过查找失败的执行尝试“幸运”,但
【文件预览】:
shuttle-main
----NOTICE(74B)
----THIRD-PARTY(3KB)
----rustfmt.toml(15B)
----.github()
--------pull_request_template.md(160B)
--------workflows()
----tests()
--------asynch()
--------mod.rs(5KB)
--------data()
--------basic()
--------demo()
----LICENSE(11KB)
----CONTRIBUTING.md(3KB)
----src()
--------asynch.rs(5KB)
--------scheduler()
--------rand.rs(2KB)
--------sync()
--------lib.rs(13KB)
--------thread.rs(5KB)
--------runtime()
----Cargo.toml(1KB)
----benches()
--------counter.rs(3KB)
--------lock.rs(2KB)
--------buffer.rs(4KB)
----.gitignore(26B)
----CHANGELOG.md(152B)
----CODE_OF_CONDUCT.md(309B)
----README.md(3KB)