|
18 | 18 | import magic
|
19 | 19 | import requests
|
20 | 20 | import tenacity
|
| 21 | +import zstandard |
21 | 22 |
|
22 | 23 | from firefox_code_coverage import taskcluster
|
23 | 24 |
|
|
26 | 27 | STATUS_VALUE = {"exception": 1, "failed": 2, "completed": 3}
|
27 | 28 |
|
28 | 29 | GRCOV_INDEX = "gecko.cache.level-3.toolchains.v3.linux64-grcov.latest"
|
29 |
| -GRCOV_ARTIFACT = "public/build/grcov.tar.xz" |
| 30 | +GRCOV_ARTIFACT = "public/build/grcov.tar.zst" |
30 | 31 |
|
31 | 32 | logger = logging.getLogger(__name__)
|
32 | 33 |
|
@@ -284,15 +285,17 @@ def download_grcov():
|
284 | 285 | local_version = os.path.join(os.getcwd(), "grcov_ver")
|
285 | 286 |
|
286 | 287 | dest = tempfile.mkdtemp(suffix="grcov")
|
287 |
| - archive = os.path.join(dest, "grcov.tar.xz") |
| 288 | + archive = os.path.join(dest, "grcov.tar.zst") |
288 | 289 | index = taskcluster.get_service("index")
|
289 | 290 | url = index.buildUrl("findArtifactFromTask", GRCOV_INDEX, GRCOV_ARTIFACT)
|
290 | 291 | download_binary(url, archive)
|
291 | 292 |
|
292 | 293 | # Extract archive in temp
|
293 |
| - tar = tarfile.open(archive, "r:xz") |
294 |
| - tar.extractall(dest) |
295 |
| - tar.close() |
| 294 | + dctx = zstandard.ZstdDecompressor() |
| 295 | + with open(archive, "rb") as f: |
| 296 | + with dctx.stream_reader(f) as reader: |
| 297 | + with tarfile.open(mode="r|", fileobj=reader) as tar: |
| 298 | + tar.extractall(dest) |
296 | 299 | os.remove(archive)
|
297 | 300 |
|
298 | 301 | # Get version from grcov binary
|
|
0 commit comments