Skip to content

Mutation testing

Mutation testing #181

Triggered via schedule July 26, 2026 05:49
Status Cancelled
Total duration 6h 0m 55s
Artifacts 4

mutants.yml

on: schedule
cargo-mutants — PR diff
0s
cargo-mutants — PR diff
Matrix: full
Fit to window
Zoom out
Zoom in

Annotations

8 errors and 40 warnings
cargo-mutants — full sharded (shard 3/4)
The job has exceeded the maximum execution time of 6h0m0s
cargo-mutants — full sharded (shard 3/4)
The operation was canceled.
cargo-mutants — full sharded (shard 2/4)
The job has exceeded the maximum execution time of 6h0m0s
cargo-mutants — full sharded (shard 2/4)
The operation was canceled.
cargo-mutants — full sharded (shard 0/4)
The job has exceeded the maximum execution time of 6h0m0s
cargo-mutants — full sharded (shard 0/4)
The operation was canceled.
cargo-mutants — full sharded (shard 1/4)
The job has exceeded the maximum execution time of 6h0m0s
cargo-mutants — full sharded (shard 1/4)
The operation was canceled.
Missed mutant: src/adapters/driven/plugin/registry.rs#L232
replace > with >= in materialize_plugin_output
Missed mutant: src/adapters/driven/plugin/registry.rs#L165
replace PluginRegistry::call_plugin_bytes -> Result<String, DomainError> with Ok("xyzzy".into())
Missed mutant: src/adapters/driven/plugin/registry.rs#L165
replace PluginRegistry::call_plugin_bytes -> Result<String, DomainError> with Ok(String::new())
Missed mutant: src/adapters/driven/plugin/registry.rs#L144
replace PluginRegistry::call_plugin_capped -> Result<String, DomainError> with Ok("xyzzy".into())
Missed mutant: src/adapters/driven/plugin/registry.rs#L144
replace PluginRegistry::call_plugin_capped -> Result<String, DomainError> with Ok(String::new())
Missed mutant: src/adapters/driven/plugin/registry.rs#L93
replace PluginRegistry::manifest -> Option<PluginManifest> with None
Missed mutant: src/adapters/driven/plugin/provenance.rs#L260
replace && with || in validate_digest
Missed mutant: src/adapters/driven/plugin/provenance.rs#L260
replace validate_digest -> Result<(), DomainError> with Ok(())
Missed mutant: src/adapters/driven/plugin/provenance.rs#L247
replace sync_parent_directory -> std::io::Result<()> with Ok(())
Missed mutant: src/adapters/driven/extractor/detector.rs#L77
replace match guard e.kind() == io::ErrorKind::UnexpectedEof with true in is_tar
Missed mutant: src/adapters/driven/extractor/detector.rs#L71
replace is_tar -> Result<bool, DomainError> with Ok(false)
Missed mutant: src/adapters/driven/extractor/detector.rs#L40
replace && with || in detect_by_magic_bytes
Missed mutant: src/adapters/driven/extractor/detector.rs#L41
replace && with || in detect_by_magic_bytes
Missed mutant: src/adapters/driven/event/tauri_bridge.rs#L10
delete ! in spawn_tauri_event_bridge
Missed mutant: src/adapters/driven/event/tauri_bridge.rs#L9
replace spawn_tauri_event_bridge with ()
Missed mutant: src/adapters/driven/crypto/aes_gcm_codec.rs#L150
replace > with >= in <impl PassphraseCodec for AesGcmPbkdf2Codec>::open
Missed mutant: src/adapters/driven/crypto/aes_gcm_codec.rs#L145
replace < with <= in <impl PassphraseCodec for AesGcmPbkdf2Codec>::open
Missed mutant: src/adapters/driven/crypto/aes_gcm_codec.rs#L125
replace + with - in <impl PassphraseCodec for AesGcmPbkdf2Codec>::open
Missed mutant: src/adapters/driven/crypto/aes_gcm_codec.rs#L125
replace < with <= in <impl PassphraseCodec for AesGcmPbkdf2Codec>::open
Missed mutant: src/application/commands/mod.rs#L171
replace <impl std::fmt::Debug for SetCaptchaCredentialCommand>::fmt -> std::fmt::Result with Ok(Default::default())
Missed mutant: src/application/commands/mod.rs#L138
replace <impl std::fmt::Debug for SolveCaptchaCommand>::fmt -> std::fmt::Result with Ok(Default::default())
Missed mutant: src/application/command_bus.rs#L472
replace CommandBus::url_opener -> Option<&dyn UrlOpener> with None
Missed mutant: src/application/command_bus.rs#L456
replace CommandBus::file_opener -> Option<&dyn FileOpener> with None
Missed mutant: src/application/command_bus.rs#L432
replace CommandBus::plugin_store_client -> Option<&dyn PluginStoreClient> with None
Missed mutant: src/application/command_bus.rs#L317
replace CommandBus::account_now_ms -> Result<u64, crate::application::error::AppError> with Ok(1)
Missed mutant: src/application/command_bus.rs#L317
replace CommandBus::account_now_ms -> Result<u64, crate::application::error::AppError> with Ok(0)
Missed mutant: src/application/command_bus.rs#L57
replace < with <= in LinkCheckLimiter::resize
Missed mutant: src/application/command_bus.rs#L55
replace > with >= in LinkCheckLimiter::resize
Missed mutant: src/lib.rs#L105
replace run with ()
Missed mutant: src/application/services/split_archive_grouper.rs#L339
replace > with >= in SplitArchiveGrouper::group_all
Missed mutant: src/application/services/queue_manager.rs#L560
delete match arm DomainEvent::DownloadResumed{..} in QueueManager::start_listening
Missed mutant: src/application/services/queue_manager.rs#L555
delete match arm DomainEvent::DownloadCreated{..} | DomainEvent::DownloadQueued{..} | DomainEvent::DownloadRetrying{..} | DomainEvent::DownloadPrioritySet{..} | DomainEvent::QueueReordered{..} in QueueManager::start_listening
Missed mutant: src/application/services/queue_manager.rs#L552
delete match arm DomainEvent::DownloadFailed{id, error} in QueueManager::start_listening
Missed mutant: src/application/services/queue_manager.rs#L551
delete match arm DomainEvent::CaptchaPending{..} in QueueManager::start_listening
Missed mutant: src/application/services/queue_manager.rs#L548
delete match arm DomainEvent::DownloadPaused{..} | DomainEvent::DownloadCancelled{..} in QueueManager::start_listening
Missed mutant: src/application/services/queue_manager.rs#L545
delete match arm DomainEvent::DownloadCompleted{id} in QueueManager::start_listening
Missed mutant: src/application/services/queue_manager.rs#L537
replace && with || in QueueManager::start_listening
Missed mutant: src/application/services/queue_manager.rs#L518
replace QueueManager::start_listening with ()
Missed mutant: src/application/services/queue_manager.rs#L507
replace QueueManager::cancel_retry with ()

Artifacts

Produced during runtime
Name Size Digest
mutants-full-shard-0
13.7 MB
sha256:e04990c87616eccf2871931f8bb62b038940aea89ee146b623ba5376e3fae323
mutants-full-shard-1
12.2 MB
sha256:d8fcc2ab110c93bbd02082acafe022793019e3cd214386ab7e30f404e06e0f0f
mutants-full-shard-2
12.3 MB
sha256:9c625c8802cd29a43246e70fd4871cb695f80e3ff30c2737ab965eb7051315d7
mutants-full-shard-3
13 MB
sha256:4d771237b733e459adf1d5667deb973673d64527482485c3d3839d65833e2121