Extract the timer wheel and watch registry from the worker into a reusable std-extension crate, generalize the worker around a RuntimeExtension factory, and decompose the monolithic runtime test file into focused suites. - crates/std: extract TimerWheel (deterministic tick-counted one-shot/interval timers) and WatchRegistry (target-to-watcher death-notification index) out of src/worker.rs into reusable modules - crates/std: add Ctx extension traits (CtxMonitoring, CtxNaming, CtxWatching, CtxTimers) and Runtime extension traits (RuntimeNaming, RuntimeWatching, RuntimeGroups) wiring monitor/name/watch/timer/group support - src/worker.rs: replace the hard-coded timer/watch fields with a generic RuntimeExtension factory and add route_to_pool_or_remote for message routing (local pool, then cross-worker address map, then external inboxes) - tests: split the 4622-line tests/runtime_api.rs into focused suites (actor_lifecycle, message_delivery, runtime_stress, std_extension) plus a shared tests/common/mod.rs harness, and drop watch_api.rs - benches/fuzz: add runtime_benchmarks and adjust the runtime fuzz target - tools/docs: add fn_complexity.py and loc_analysis.py analysis scripts and refresh the runtime and worker-thread docs Signed-off-by: Zachery Aaron Shores-Chmielewski <zacheryasc@gmail.com>
28 lines
580 B
TOML
28 lines
580 B
TOML
[package]
|
|
name = "swactor-fuzz"
|
|
version = "0.0.0"
|
|
publish = false
|
|
edition = "2024"
|
|
|
|
[package.metadata]
|
|
cargo-fuzz = true
|
|
|
|
[dependencies]
|
|
libfuzzer-sys = { version = "0.4", features = ["arbitrary-derive"] }
|
|
arbitrary = { version = "1", features = ["derive"] }
|
|
swactor = { path = "..", default-features = true }
|
|
swactor-std = { path = "../crates/std" }
|
|
|
|
# Prevent this from interfering with workspaces
|
|
[workspace]
|
|
members = ["."]
|
|
|
|
[[bin]]
|
|
name = "fuzz_runtime"
|
|
path = "fuzz_targets/fuzz_runtime.rs"
|
|
doc = false
|
|
|
|
[[bin]]
|
|
name = "fuzz_mt"
|
|
path = "fuzz_targets/fuzz_mt.rs"
|
|
doc = false
|