Mercurial > hg
annotate contrib/fuzz/dirstate_corpus.py @ 51861:f81e0ce5103a default tip
typing: simplify archive.gz writing and drop a few pytype suppressions
I was waiting until 3.8 to use `Literal` to fix this, but there's also the ":"
and "|" characters that are passed along here, meant only for the non-gz archive
types. But manipulating what the local caller passes is silly- we know we're
writing, so just open it for writing. As an added bonus, PyCharm stops flagging
the call too (since it doesn't know about pytype suppression comments).
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Thu, 12 Sep 2024 12:53:00 -0400 |
parents | 6000f5b25c9b |
children |
rev | line source |
---|---|
41015
b444407f635b
fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
1 import argparse |
b444407f635b
fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
2 import os |
b444407f635b
fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
3 import zipfile |
b444407f635b
fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
4 |
b444407f635b
fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
5 ap = argparse.ArgumentParser() |
b444407f635b
fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
6 ap.add_argument("out", metavar="some.zip", type=str, nargs=1) |
b444407f635b
fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
7 args = ap.parse_args() |
b444407f635b
fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
8 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41015
diff
changeset
|
9 reporoot = os.path.normpath(os.path.join(os.path.dirname(__file__), '..', '..')) |
41015
b444407f635b
fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
10 dirstate = os.path.join(reporoot, '.hg', 'dirstate') |
b444407f635b
fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
11 |
b444407f635b
fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
12 with zipfile.ZipFile(args.out[0], "w", zipfile.ZIP_STORED) as zf: |
b444407f635b
fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
13 if os.path.exists(dirstate): |
43836
ba84a1ae4ae5
fuzz: fix test-fuzz-targets.t to run with python3
Kyle Lippincott <spectral@google.com>
parents:
43076
diff
changeset
|
14 with open(dirstate, 'rb') as f: |
41015
b444407f635b
fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
15 zf.writestr("dirstate", f.read()) |