contrib/fuzz/dirs_corpus.py
author Pierre-Yves David <pierre-yves.david@octobus.net>
Mon, 25 Mar 2024 01:50:31 +0100
branchstable
changeset 51516 e0f92bd98c24
parent 48875 6000f5b25c9b
permissions -rw-r--r--
phases: avoid a potentially costly dictionary interation in some case If we retract for the draft phase, there is not non-public item to be retracted and we can skip this part. This part is was apparently super costly thanks to Python. On mozilla-try-2019-02-18, a perf::unbundle call with a 10 000 changesets bundle gives give use the following timing. e57d4b868a3e: 4.6 seconds ac1c75188440: 102.5 seconds this-changeset: 30.0 seconds So we recovered about ⅔ of the regression, the next changeset will give us the rest back.

import argparse
import zipfile

ap = argparse.ArgumentParser()
ap.add_argument("out", metavar="some.zip", type=str, nargs=1)
args = ap.parse_args()

with zipfile.ZipFile(args.out[0], "w", zipfile.ZIP_STORED) as zf:
    zf.writestr(
        "greek-tree",
        "\n".join(
            [
                "iota",
                "A/mu",
                "A/B/lambda",
                "A/B/E/alpha",
                "A/B/E/beta",
                "A/D/gamma",
                "A/D/G/pi",
                "A/D/G/rho",
                "A/D/G/tau",
                "A/D/H/chi",
                "A/D/H/omega",
                "A/D/H/psi",
            ]
        ),
    )