Compare commits
3
Commits
v0.2.1
...
871c688b17
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
871c688b17
|
||
|
|
312d958a91
|
||
|
|
2c28dd77b4
|
No files matched your search
@@ -7,6 +7,12 @@ test_tool = "nextest"
|
|||||||
# Async tests + crypto work takes longer under mutation load.
|
# Async tests + crypto work takes longer under mutation load.
|
||||||
timeout_multiplier = 3.0
|
timeout_multiplier = 3.0
|
||||||
|
|
||||||
|
# Enable `test-support` so cfg-gated setters (e.g. Builder::dht_backend) and
|
||||||
|
# the integration tests that exercise them are part of the mutation surface.
|
||||||
|
# Without this, dht_backend mutations always "survive" trivially because the
|
||||||
|
# method isn't compiled in.
|
||||||
|
additional_cargo_args = ["--features", "test-support"]
|
||||||
|
|
||||||
# Skip paths that either can't be meaningfully mutated or are covered by
|
# Skip paths that either can't be meaningfully mutated or are covered by
|
||||||
# other tools:
|
# other tools:
|
||||||
# - sim_impl.rs: simulator is exercised via the simulator example, not
|
# - sim_impl.rs: simulator is exercised via the simulator example, not
|
||||||
|
|||||||
@@ -25,9 +25,11 @@ jobs:
|
|||||||
- name: miri on keys/wire/crypto/merge
|
- name: miri on keys/wire/crypto/merge
|
||||||
env:
|
env:
|
||||||
MIRIFLAGS: -Zmiri-disable-isolation
|
MIRIFLAGS: -Zmiri-disable-isolation
|
||||||
# Quoted because YAML plain scalars can't contain `: ` sequences
|
# `cargo test` takes a single TESTNAME positional, so multi-module
|
||||||
# without being misparsed as mapping entries.
|
# filters must be passed to the test binary after `--`. Quoted because
|
||||||
run: "cargo +nightly miri test --lib keys:: wire:: crypto:: merge::"
|
# YAML plain scalars can't contain `: ` sequences without being
|
||||||
|
# misparsed as mapping entries.
|
||||||
|
run: "cargo +nightly miri test --lib -- keys:: wire:: crypto:: merge::"
|
||||||
|
|
||||||
mutants:
|
mutants:
|
||||||
name: cargo-mutants
|
name: cargo-mutants
|
||||||
@@ -43,7 +45,7 @@ jobs:
|
|||||||
- uses: taiki-e/install-action@v2
|
- uses: taiki-e/install-action@v2
|
||||||
with:
|
with:
|
||||||
tool: cargo-mutants,cargo-nextest
|
tool: cargo-mutants,cargo-nextest
|
||||||
- run: cargo mutants --shard ${{ matrix.shard }}/4 --in-diff-base ""
|
- run: cargo mutants --shard ${{ matrix.shard }}/4
|
||||||
|
|
||||||
fuzz-smoke:
|
fuzz-smoke:
|
||||||
name: fuzz smoke (60s / target)
|
name: fuzz smoke (60s / target)
|
||||||
@@ -63,7 +65,11 @@ jobs:
|
|||||||
- uses: taiki-e/install-action@v2
|
- uses: taiki-e/install-action@v2
|
||||||
with:
|
with:
|
||||||
tool: cargo-fuzz
|
tool: cargo-fuzz
|
||||||
- run: cd fuzz && cargo +nightly fuzz run ${{ matrix.target }} -- -max_total_time=60
|
# `--target` is explicit because the binstall'd `cargo-fuzz` binary is a
|
||||||
|
# statically-linked musl build, and `cargo fuzz`'s default target is the
|
||||||
|
# triple it was compiled for. The libfuzzer sanitizer is incompatible
|
||||||
|
# with the static-crt musl target, so force the glibc triple.
|
||||||
|
- run: cd fuzz && cargo +nightly fuzz run --target x86_64-unknown-linux-gnu ${{ matrix.target }} -- -max_total_time=60
|
||||||
|
|
||||||
kani:
|
kani:
|
||||||
name: kani
|
name: kani
|
||||||
|
|||||||
Generated
+604
-444
File diff suppressed because it is too large.
Load diff
@@ -470,6 +470,30 @@ mod tests {
|
|||||||
assert_eq!(Builder::default().heal_period(d).heal_period, d);
|
assert_eq!(Builder::default().heal_period(d).heal_period, d);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn failure_retry_period_setter_stores_exact_value() {
|
||||||
|
let d = Duration::from_millis(42);
|
||||||
|
assert_eq!(
|
||||||
|
Builder::default()
|
||||||
|
.failure_retry_period(d)
|
||||||
|
.failure_retry_period,
|
||||||
|
d
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
#[cfg(feature = "test-support")]
|
||||||
|
fn dht_backend_setter_stores_value() {
|
||||||
|
use std::sync::Arc;
|
||||||
|
|
||||||
|
use crate::sim::InMemoryDht;
|
||||||
|
let dht = Arc::new(InMemoryDht::new());
|
||||||
|
let before = Builder::default();
|
||||||
|
let after = Builder::default().dht_backend(dht);
|
||||||
|
assert!(before.dht_backend.is_none());
|
||||||
|
assert!(after.dht_backend.is_some());
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn jitter_setter_stores_exact_value() {
|
fn jitter_setter_stores_exact_value() {
|
||||||
let b = Builder::default().jitter(0.25);
|
let b = Builder::default().jitter(0.25);
|
||||||
|
|||||||
@@ -278,6 +278,7 @@ fn random_large() {
|
|||||||
.checker()
|
.checker()
|
||||||
.threads(num_cpus())
|
.threads(num_cpus())
|
||||||
.target_max_depth(50)
|
.target_max_depth(50)
|
||||||
|
.target_state_count(1_000_000)
|
||||||
.spawn_simulation(0, stateright::UniformChooser)
|
.spawn_simulation(0, stateright::UniformChooser)
|
||||||
.join()
|
.join()
|
||||||
.assert_properties();
|
.assert_properties();
|
||||||
|
|||||||
Reference in new issue
Block a user