Skip to content

Run extraction modules in parallel - #839

Open
besendorf wants to merge 6 commits into
mainfrom
feature/parallel-module-execution
Open

besendorf wants to merge 6 commits into
mainfrom
feature/parallel-module-execution

Conversation

@besendorf

Copy link
Copy Markdown
Collaborator

Summary

  • run independent iOS and Android extraction modules concurrently with four workers by default
  • preserve dependency ordering and deterministic aggregation while supporting exclusive modules and sequential profiling
  • group parallel console output, protect shared archive reads, and propagate worker settings through AndroidQF nested commands
  • document the parallel module contract and add concurrency, cancellation, logging, CLI, and propagation coverage

Testing

  • make check
  • uv run pytest (179 passed, 1 skipped)
  • compared iOS backup and AndroidQF fixture artifacts with --jobs 1 and --jobs 4

@github-actions

github-actions Bot commented Jul 15, 2026 •

Copy link
Copy Markdown
Contributor

Coverage

Coverage Report •
FileStmtsMissCoverMissing
src/mvt/android
   cli.py1741591%76–77, 285–286, 371–372, 441, 459–461, 505–506, 518–521
   cmd_check_androidqf.py2194082%85, 119–120, 136–137, 145–146, 149, 164–165, 172, 181, 184–185, 194, 206–228, 232–236, 243, 281–285, 339–343, 353, 368, 372
   cmd_check_backup.py932573%85–86, 100, 103–110, 115–122, 142–156, 160
   cmd_check_bugreport.py96892%132–133, 137–138, 171–173, 198
   cmd_check_intrusion_logs.py42588%66, 74, 98–100
src/mvt/android/modules/androidqf
   aqf_packages.py921485%49–54, 81, 88, 113, 141, 146, 152, 159–164
   base.py45296%74–75
src/mvt/android/modules/backup
   base.py39490%65–67, 71
src/mvt/android/modules/bugreport
   base.py1772288%92–97, 105, 112, 132–133, 139–141, 175, 202–205, 239, 285–287, 302
   dumpsys_accessibility.py22768%41–45, 51–60
   dumpsys_activities.py16288%43–47
   dumpsys_adb_state.py981090%43–47, 51, 67, 79–80, 82, 105, 120, 123
   dumpsys_appops.py15287%39–43
   dumpsys_battery_daily.py15287%39–43
   dumpsys_battery_history.py15287%39–43
   dumpsys_dbinfo.py16288%41–45
   dumpsys_getprop.py16288%41–45
   dumpsys_packages.py26388%40–44, 58
   dumpsys_platform_compat.py15287%39–43
   dumpsys_receivers.py16288%41–45
src/mvt/common
   command.py5034391%76, 114–118, 211, 220–221, 227–231, 445, 448, 556, 692, 755, 759–760, 777, 810, 841–842, 848–849, 860–871, 876, 886–887, 905, 921, 926, 944
   log.py72297%83–84
   module.py1541292%169–170, 229, 240, 245, 255, 274–275, 289–290, 300–301
src/mvt/ios
   cli.py1995473%88–89, 163–209, 228–253, 398–400, 470–471, 519–520, 532–535
   cmd_check_backup.py44589%70, 76–81, 95–99
   cmd_check_fs.py18289%57, 60
TOTAL10054232577% 

Tests Skipped Failures Errors Time
542 1 💤 0 ❌ 0 🔥 16.520s ⏱️

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant