Skip to content

Mutation testing

Mutation testing #182

Triggered via schedule July 27, 2026 06:16
Status Cancelled
Total duration 6h 0m 37s
Artifacts 4

mutants.yml

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

Annotations

8 errors and 40 warnings
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 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 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/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/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/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
12.3 MB
sha256:3f7537c9c4d6a4049f0138e98a4e2539864eb7d97a10ae04ebc4ed7ed65a470c
mutants-full-shard-1
12.5 MB
sha256:d382d51e24f0e927556b69fc4c3fc887bd9466e949d956f29903c6a41b790bc3
mutants-full-shard-2
12.8 MB
sha256:a669eb48fb359c33cba751a27ccec2e5ae05779afcfcccf9c3824c5e6d362b4b
mutants-full-shard-3
12.7 MB
sha256:4c39255ca2c8b3b58cd9caac8047d6869fd11f59acfba1b56feacb040a416e38