Skip to content

fix: deduplicate shared downloads across test suites review - #1

Closed
rsanchez87 wants to merge 9 commits into
ylatuya:download-dedupfrom
fluendo:download-dedup-review
Closed

rsanchez87 wants to merge 9 commits into
ylatuya:download-dedupfrom
fluendo:download-dedup-review

Conversation

@rsanchez87

@rsanchez87 rsanchez87 commented Sep 29, 2026 •

Copy link
Copy Markdown

No description provided.

@rsanchez87
rsanchez87 force-pushed the download-dedup-review branch from 61254ef to a628279 Compare September 29, 2026 08:39
@rsanchez87
rsanchez87 force-pushed the download-dedup-review branch 2 times, most recently from 77f668c to 5a8368f Compare September 29, 2026 09:03
@rsanchez87
rsanchez87 marked this pull request as ready for review September 29, 2026 12:03
ylatuya and others added 6 commits September 29, 2026 14:08
Download each unique source URL once for the whole selection of test
suites and distribute it to every suite that needs it, instead of
fetching shared archives once per suite. Sources are downloaded in
parallel into resources/.cache/<md5(url)>/ and the cache is removed at
the end of the run unless --keep is used.

Download orchestration moves from TestSuite into a new
fluster/download_manager.py module. TestSuite.download() remains as a
thin wrapper for the generator scripts, and --mirror support is
preserved.
Add filename_from_url() so query strings and fragments are stripped when
naming files, and use it for the download destination and the shared
download cache. Signed URLs like GCS/S3 links end with
?X-Amz-Signature=..., which broke extension checks and left odd
filenames on disk.

Ported from #338.
DownloadManager used retries**retries, so -r 5 meant 3125 download
attempts per URL before failing. download() already retries internally
with backoff; pass the user-provided count instead.

Ported from #338.
When two selected test suites share a source URL but declare different
checksums, abort instead of silently trusting whichever checksum was
seen first. Also prefer a real checksum over __skip__ when both appear
for the same URL.

Ported from #338.
If a cached archive cannot be extracted (corrupt zip/tar or gunzip
failure), delete it from the cache and report a clear error, so the next
run re-downloads it instead of failing forever. A missing archive member
is not treated as corruption and keeps the cache.

Ported from #338.
Explain that sources shared by test suites are fetched once into
resources/.cache/, that the cache is removed at the end of the run
unless --keep is used, and that concurrent download runs against the
same resources directory are not supported.

Ported from #338.
@rsanchez87
rsanchez87 changed the base branch from download-dedup to master September 29, 2026 12:09
@rsanchez87
rsanchez87 changed the base branch from master to download-dedup September 29, 2026 12:10
- Expose DownloadManager.test_vector_source_path() and use it in
  gen_mpeg4_video.py instead of hard-coding the layout
- Use download_test_suite() in TestSuite.download() (it was unused)
- Type test suites as TestSuite instead of Any
- Report which source failed when a download errors
- Fix the file's copyright year (2026, not 2020)
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.

3 participants