Skip to content

Mutation testing

Mutation testing #179

Triggered via schedule July 24, 2026 05:39
Status Cancelled
Total duration 6h 0m 39s
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 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:8523a8896b366021e9cfea2c9286d3f22ef30a99f6de344d171c0f32d719825c
mutants-full-shard-1
13.8 MB
sha256:868d1825c3632641ca2de6d7d3952d984ecdf5457d444bcedbf7100a79b15cbf
mutants-full-shard-2
12.6 MB
sha256:35e756f72b494e4075add013daaf9d914376633f957c08d6d8d2898b6b2c3d71
mutants-full-shard-3
12.7 MB
sha256:5649ba1c2e657015b2755750574f687ef59183d5954abebff0f5d56fc7f6d960