mirror of
https://github.com/freemkv/libfreemkv.git
synced 2026-10-07 18:13:10 +00:00
raw_command clamped CDBs with cdb.len().min(16) instead of routing through the shared checked_cdb_len guard, so an over-length or empty CDB became a different command rather than a rejected one; it now returns the crate Result so a rejected CDB is distinguishable from an I/O failure. The recovery/Drop fd hand-off lacked a release edge: the teardown swap was not a release op and the recovery CAS was not an acquire load, so a recovery thread publishing its fd after Drop drained the slot could miss dead==true and leak the descriptor. Both sides are now AcqRel, with the execute() drain left at Acquire (sound via the release-sequence rule). A loom model (cfg(loom) dev-dep, its own CI job) provides the regression coverage cargo test cannot. Module docs for fd_handoff and timeline now resolve in their own scope, and item docs stay within comment-guard's caps. Fixes #16.
26 lines
630 B
Makefile
26 lines
630 B
Makefile
# libfreemkv — local dev helper.
|
|
# Mirrors the workspace-wide CI checks but scoped to this single crate.
|
|
|
|
.PHONY: test build check loom ci clean
|
|
|
|
test:
|
|
cargo test --tests
|
|
|
|
build:
|
|
cargo build --release
|
|
|
|
check:
|
|
cargo fmt --check
|
|
cargo clippy --all-targets -- -D warnings
|
|
|
|
# Model-check the scsi::fd_handoff atomics. `cargo test` cannot fail on those
|
|
# orderings — they compile to the same instructions on x86_64 — so this is the
|
|
# only check on them. Mirrors the `loom` CI job.
|
|
loom:
|
|
RUSTFLAGS="--cfg loom" cargo test --lib --no-default-features --features scsi fd_handoff
|
|
|
|
ci: check build test loom
|
|
|
|
clean:
|
|
cargo clean
|