Mercurial > hg
annotate contrib/fuzz/Makefile @ 45095:8e04607023e5
procutil: ensure that procutil.std{out,err}.write() writes all bytes
Python 3 offers different kind of streams and it’s not guaranteed for all of
them that calling write() writes all bytes.
When Python is started in unbuffered mode, sys.std{out,err}.buffer are
instances of io.FileIO, whose write() can write less bytes for
platform-specific reasons (e.g. Linux has a 0x7ffff000 bytes maximum and could
write less if interrupted by a signal; when writing to Windows consoles, it’s
limited to 32767 bytes to avoid the "not enough space" error). This can lead to
silent loss of data, both when using sys.std{out,err}.buffer (which may in fact
not be a buffered stream) and when using the text streams sys.std{out,err}
(I’ve created a CPython bug report for that:
https://bugs.python.org/issue41221).
Python may fix the problem at some point. For now, we implement our own wrapper
for procutil.std{out,err} that calls the raw stream’s write() method until all
bytes have been written. We don’t use sys.std{out,err} for larger writes, so I
think it’s not worth the effort to patch them.
author | Manuel Jacob <me@manueljacob.de> |
---|---|
date | Fri, 10 Jul 2020 12:27:58 +0200 |
parents | ef8dcee272ac |
children | 4e85439c1760 |
rev | line source |
---|---|
38230
bf901559e647
fuzz: expand variables by make
Yuya Nishihara <yuya@tcha.org>
parents:
38175
diff
changeset
|
1 CC = clang |
bf901559e647
fuzz: expand variables by make
Yuya Nishihara <yuya@tcha.org>
parents:
38175
diff
changeset
|
2 CXX = clang++ |
bf901559e647
fuzz: expand variables by make
Yuya Nishihara <yuya@tcha.org>
parents:
38175
diff
changeset
|
3 |
43813
5a9e2ae9899b
fuzz: use a more standard approach to allow local builds of fuzzers
Augie Fackler <augie@google.com>
parents:
43812
diff
changeset
|
4 # By default, use our own standalone_fuzz_target_runner. |
5a9e2ae9899b
fuzz: use a more standard approach to allow local builds of fuzzers
Augie Fackler <augie@google.com>
parents:
43812
diff
changeset
|
5 # This runner does no fuzzing, but simply executes the inputs |
5a9e2ae9899b
fuzz: use a more standard approach to allow local builds of fuzzers
Augie Fackler <augie@google.com>
parents:
43812
diff
changeset
|
6 # provided via parameters. |
5a9e2ae9899b
fuzz: use a more standard approach to allow local builds of fuzzers
Augie Fackler <augie@google.com>
parents:
43812
diff
changeset
|
7 # Run e.g. "make all LIB_FUZZING_ENGINE=/path/to/libFuzzer.a" |
5a9e2ae9899b
fuzz: use a more standard approach to allow local builds of fuzzers
Augie Fackler <augie@google.com>
parents:
43812
diff
changeset
|
8 # to link the fuzzer(s) against a real fuzzing engine. |
5a9e2ae9899b
fuzz: use a more standard approach to allow local builds of fuzzers
Augie Fackler <augie@google.com>
parents:
43812
diff
changeset
|
9 # |
5a9e2ae9899b
fuzz: use a more standard approach to allow local builds of fuzzers
Augie Fackler <augie@google.com>
parents:
43812
diff
changeset
|
10 # OSS-Fuzz will define its own value for LIB_FUZZING_ENGINE. |
5a9e2ae9899b
fuzz: use a more standard approach to allow local builds of fuzzers
Augie Fackler <augie@google.com>
parents:
43812
diff
changeset
|
11 LIB_FUZZING_ENGINE ?= standalone_fuzz_target_runner.o |
43810
53f582bee3d1
fuzz: follow modern guidelines and use LIB_FUZZING_ENGINE
Augie Fackler <augie@google.com>
parents:
43615
diff
changeset
|
12 |
43812
bf0453866c80
fuzz: use a variable to allow specifying python-config to use
Augie Fackler <augie@google.com>
parents:
43811
diff
changeset
|
13 PYTHON_CONFIG ?= $$OUT/sanpy/bin/python-config |
44962
ef8dcee272ac
fuzz: add config knob for PYTHON_CONFIG_FLAGS
Augie Fackler <augie@google.com>
parents:
43844
diff
changeset
|
14 PYTHON_CONFIG_FLAGS ?= --ldflags |
43812
bf0453866c80
fuzz: use a variable to allow specifying python-config to use
Augie Fackler <augie@google.com>
parents:
43811
diff
changeset
|
15 |
43811
d1587fadff06
fuzz: suppress deprecated-register warnings in our compile
Augie Fackler <augie@google.com>
parents:
43810
diff
changeset
|
16 CXXFLAGS += -Wno-deprecated-register |
d1587fadff06
fuzz: suppress deprecated-register warnings in our compile
Augie Fackler <augie@google.com>
parents:
43810
diff
changeset
|
17 |
43815
19da643dc10c
tests: finally fix up test-fuzz-targets.t
Augie Fackler <augie@google.com>
parents:
43813
diff
changeset
|
18 all: standalone_fuzz_target_runner.o oss-fuzz |
38231
4dd3b6c68f96
fuzz: fix the default make target
Yuya Nishihara <yuya@tcha.org>
parents:
38230
diff
changeset
|
19 |
43813
5a9e2ae9899b
fuzz: use a more standard approach to allow local builds of fuzzers
Augie Fackler <augie@google.com>
parents:
43812
diff
changeset
|
20 standalone_fuzz_target_runner.o: standalone_fuzz_target_runner.cc |
5a9e2ae9899b
fuzz: use a more standard approach to allow local builds of fuzzers
Augie Fackler <augie@google.com>
parents:
43812
diff
changeset
|
21 |
43843
d74d78aa74e9
fuzz: clean up production of seed corpora
Augie Fackler <augie@google.com>
parents:
43817
diff
changeset
|
22 $$OUT/%_fuzzer_seed_corpus.zip: %_corpus.py |
d74d78aa74e9
fuzz: clean up production of seed corpora
Augie Fackler <augie@google.com>
parents:
43817
diff
changeset
|
23 python $< $@ |
d74d78aa74e9
fuzz: clean up production of seed corpora
Augie Fackler <augie@google.com>
parents:
43817
diff
changeset
|
24 |
41013
ef103c96ed33
fuzz: extract Python initialization to utility package
Augie Fackler <augie@google.com>
parents:
41012
diff
changeset
|
25 pyutil.o: pyutil.cc pyutil.h |
ef103c96ed33
fuzz: extract Python initialization to utility package
Augie Fackler <augie@google.com>
parents:
41012
diff
changeset
|
26 $(CXX) $(CXXFLAGS) -g -O1 \ |
43812
bf0453866c80
fuzz: use a variable to allow specifying python-config to use
Augie Fackler <augie@google.com>
parents:
43811
diff
changeset
|
27 `$(PYTHON_CONFIG) --cflags` \ |
41013
ef103c96ed33
fuzz: extract Python initialization to utility package
Augie Fackler <augie@google.com>
parents:
41012
diff
changeset
|
28 -I../../mercurial -c -o pyutil.o pyutil.cc |
ef103c96ed33
fuzz: extract Python initialization to utility package
Augie Fackler <augie@google.com>
parents:
41012
diff
changeset
|
29 |
35670
2b9e2415f5b5
contrib: add some basic scaffolding for some fuzz test targets
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
30 bdiff-oss-fuzz.o: ../../mercurial/bdiff.c |
38230
bf901559e647
fuzz: expand variables by make
Yuya Nishihara <yuya@tcha.org>
parents:
38175
diff
changeset
|
31 $(CC) $(CFLAGS) -c -o bdiff-oss-fuzz.o ../../mercurial/bdiff.c |
35670
2b9e2415f5b5
contrib: add some basic scaffolding for some fuzz test targets
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
32 |
43615
6f5c352f41b6
fuzz: clean out most of fuzzutil
Augie Fackler <augie@google.com>
parents:
43153
diff
changeset
|
33 bdiff_fuzzer: bdiff.cc bdiff-oss-fuzz.o |
38230
bf901559e647
fuzz: expand variables by make
Yuya Nishihara <yuya@tcha.org>
parents:
38175
diff
changeset
|
34 $(CXX) $(CXXFLAGS) -std=c++17 -I../../mercurial bdiff.cc \ |
43810
53f582bee3d1
fuzz: follow modern guidelines and use LIB_FUZZING_ENGINE
Augie Fackler <augie@google.com>
parents:
43615
diff
changeset
|
35 bdiff-oss-fuzz.o $(LIB_FUZZING_ENGINE) -o \ |
38174
36d55f90e2a3
fuzzutil: make it possible to use absl when C++17 isn't supported
Augie Fackler <augie@google.com>
parents:
38173
diff
changeset
|
36 $$OUT/bdiff_fuzzer |
35670
2b9e2415f5b5
contrib: add some basic scaffolding for some fuzz test targets
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
37 |
38246
46dcb9f14900
fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents:
38234
diff
changeset
|
38 mpatch.o: ../../mercurial/mpatch.c |
46dcb9f14900
fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents:
38234
diff
changeset
|
39 $(CC) -g -O1 -fsanitize=fuzzer-no-link,address -c -o mpatch.o \ |
46dcb9f14900
fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents:
38234
diff
changeset
|
40 ../../mercurial/mpatch.c |
46dcb9f14900
fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents:
38234
diff
changeset
|
41 |
46dcb9f14900
fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents:
38234
diff
changeset
|
42 mpatch-oss-fuzz.o: ../../mercurial/mpatch.c |
46dcb9f14900
fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents:
38234
diff
changeset
|
43 $(CC) $(CFLAGS) -c -o mpatch-oss-fuzz.o ../../mercurial/mpatch.c |
46dcb9f14900
fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents:
38234
diff
changeset
|
44 |
43843
d74d78aa74e9
fuzz: clean up production of seed corpora
Augie Fackler <augie@google.com>
parents:
43817
diff
changeset
|
45 mpatch_fuzzer: mpatch.cc mpatch-oss-fuzz.o $$OUT/mpatch_fuzzer_seed_corpus.zip |
38246
46dcb9f14900
fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents:
38234
diff
changeset
|
46 $(CXX) $(CXXFLAGS) -std=c++17 -I../../mercurial mpatch.cc \ |
43810
53f582bee3d1
fuzz: follow modern guidelines and use LIB_FUZZING_ENGINE
Augie Fackler <augie@google.com>
parents:
43615
diff
changeset
|
47 mpatch-oss-fuzz.o $(LIB_FUZZING_ENGINE) -o \ |
38246
46dcb9f14900
fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents:
38234
diff
changeset
|
48 $$OUT/mpatch_fuzzer |
46dcb9f14900
fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents:
38234
diff
changeset
|
49 |
36679
624cbd1477a6
fuzz: add a fuzzer for xdiff
Augie Fackler <augie@google.com>
parents:
35670
diff
changeset
|
50 fuzz-x%.o: ../../mercurial/thirdparty/xdiff/x%.c ../../mercurial/thirdparty/xdiff/*.h |
38230
bf901559e647
fuzz: expand variables by make
Yuya Nishihara <yuya@tcha.org>
parents:
38175
diff
changeset
|
51 $(CC) $(CFLAGS) -c \ |
36679
624cbd1477a6
fuzz: add a fuzzer for xdiff
Augie Fackler <augie@google.com>
parents:
35670
diff
changeset
|
52 -o $@ \ |
624cbd1477a6
fuzz: add a fuzzer for xdiff
Augie Fackler <augie@google.com>
parents:
35670
diff
changeset
|
53 $< |
624cbd1477a6
fuzz: add a fuzzer for xdiff
Augie Fackler <augie@google.com>
parents:
35670
diff
changeset
|
54 |
43615
6f5c352f41b6
fuzz: clean out most of fuzzutil
Augie Fackler <augie@google.com>
parents:
43153
diff
changeset
|
55 xdiff_fuzzer: xdiff.cc fuzz-xdiffi.o fuzz-xprepare.o fuzz-xutils.o |
38230
bf901559e647
fuzz: expand variables by make
Yuya Nishihara <yuya@tcha.org>
parents:
38175
diff
changeset
|
56 $(CXX) $(CXXFLAGS) -std=c++17 -I../../mercurial xdiff.cc \ |
43615
6f5c352f41b6
fuzz: clean out most of fuzzutil
Augie Fackler <augie@google.com>
parents:
43153
diff
changeset
|
57 fuzz-xdiffi.o fuzz-xprepare.o fuzz-xutils.o \ |
43810
53f582bee3d1
fuzz: follow modern guidelines and use LIB_FUZZING_ENGINE
Augie Fackler <augie@google.com>
parents:
43615
diff
changeset
|
58 $(LIB_FUZZING_ENGINE) -o $$OUT/xdiff_fuzzer |
36679
624cbd1477a6
fuzz: add a fuzzer for xdiff
Augie Fackler <augie@google.com>
parents:
35670
diff
changeset
|
59 |
43817
d9f85f61f0ed
fuzz: clean up some repetition on building parsers.so fuzzers
Augie Fackler <augie@google.com>
parents:
43816
diff
changeset
|
60 parsers-%.o: ../../mercurial/cext/%.c |
d9f85f61f0ed
fuzz: clean up some repetition on building parsers.so fuzzers
Augie Fackler <augie@google.com>
parents:
43816
diff
changeset
|
61 $(CC) -I../../mercurial `$(PYTHON_CONFIG) --cflags` $(CFLAGS) -c \ |
d9f85f61f0ed
fuzz: clean up some repetition on building parsers.so fuzzers
Augie Fackler <augie@google.com>
parents:
43816
diff
changeset
|
62 -o $@ $< |
40053
8c692a6b5ad1
fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents:
38246
diff
changeset
|
63 |
43817
d9f85f61f0ed
fuzz: clean up some repetition on building parsers.so fuzzers
Augie Fackler <augie@google.com>
parents:
43816
diff
changeset
|
64 PARSERS_OBJS=parsers-manifest.o parsers-charencode.o parsers-parsers.o parsers-dirs.o parsers-pathencode.o parsers-revlog.o |
40053
8c692a6b5ad1
fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents:
38246
diff
changeset
|
65 |
43844
b7af8a02a304
fuzz: add a seed corpus for the dirs fuzzer
Augie Fackler <augie@google.com>
parents:
43843
diff
changeset
|
66 dirs_fuzzer: dirs.cc pyutil.o $(PARSERS_OBJS) $$OUT/dirs_fuzzer_seed_corpus.zip |
43812
bf0453866c80
fuzz: use a variable to allow specifying python-config to use
Augie Fackler <augie@google.com>
parents:
43811
diff
changeset
|
67 $(CXX) $(CXXFLAGS) `$(PYTHON_CONFIG) --cflags` \ |
43150
7ff40418c6bf
fuzz: new fuzzer for dirs.c
Augie Fackler <augie@google.com>
parents:
41183
diff
changeset
|
68 -Wno-register -Wno-macro-redefined \ |
7ff40418c6bf
fuzz: new fuzzer for dirs.c
Augie Fackler <augie@google.com>
parents:
41183
diff
changeset
|
69 -I../../mercurial dirs.cc \ |
43817
d9f85f61f0ed
fuzz: clean up some repetition on building parsers.so fuzzers
Augie Fackler <augie@google.com>
parents:
43816
diff
changeset
|
70 pyutil.o $(PARSERS_OBJS) \ |
44962
ef8dcee272ac
fuzz: add config knob for PYTHON_CONFIG_FLAGS
Augie Fackler <augie@google.com>
parents:
43844
diff
changeset
|
71 $(LIB_FUZZING_ENGINE) `$(PYTHON_CONFIG) $(PYTHON_CONFIG_FLAGS)` \ |
43150
7ff40418c6bf
fuzz: new fuzzer for dirs.c
Augie Fackler <augie@google.com>
parents:
41183
diff
changeset
|
72 -o $$OUT/dirs_fuzzer |
7ff40418c6bf
fuzz: new fuzzer for dirs.c
Augie Fackler <augie@google.com>
parents:
41183
diff
changeset
|
73 |
43817
d9f85f61f0ed
fuzz: clean up some repetition on building parsers.so fuzzers
Augie Fackler <augie@google.com>
parents:
43816
diff
changeset
|
74 fncache_fuzzer: fncache.cc |
43812
bf0453866c80
fuzz: use a variable to allow specifying python-config to use
Augie Fackler <augie@google.com>
parents:
43811
diff
changeset
|
75 $(CXX) $(CXXFLAGS) `$(PYTHON_CONFIG) --cflags` \ |
43152
b37dd26935ee
fuzz: new fuzzer for fncache-related functions
Augie Fackler <augie@google.com>
parents:
43150
diff
changeset
|
76 -Wno-register -Wno-macro-redefined \ |
b37dd26935ee
fuzz: new fuzzer for fncache-related functions
Augie Fackler <augie@google.com>
parents:
43150
diff
changeset
|
77 -I../../mercurial fncache.cc \ |
43817
d9f85f61f0ed
fuzz: clean up some repetition on building parsers.so fuzzers
Augie Fackler <augie@google.com>
parents:
43816
diff
changeset
|
78 pyutil.o $(PARSERS_OBJS) \ |
44962
ef8dcee272ac
fuzz: add config knob for PYTHON_CONFIG_FLAGS
Augie Fackler <augie@google.com>
parents:
43844
diff
changeset
|
79 $(LIB_FUZZING_ENGINE) `$(PYTHON_CONFIG) $(PYTHON_CONFIG_FLAGS)` \ |
43152
b37dd26935ee
fuzz: new fuzzer for fncache-related functions
Augie Fackler <augie@google.com>
parents:
43150
diff
changeset
|
80 -o $$OUT/fncache_fuzzer |
b37dd26935ee
fuzz: new fuzzer for fncache-related functions
Augie Fackler <augie@google.com>
parents:
43150
diff
changeset
|
81 |
43817
d9f85f61f0ed
fuzz: clean up some repetition on building parsers.so fuzzers
Augie Fackler <augie@google.com>
parents:
43816
diff
changeset
|
82 jsonescapeu8fast_fuzzer: jsonescapeu8fast.cc pyutil.o $(PARSERS_OBJS) |
43812
bf0453866c80
fuzz: use a variable to allow specifying python-config to use
Augie Fackler <augie@google.com>
parents:
43811
diff
changeset
|
83 $(CXX) $(CXXFLAGS) `$(PYTHON_CONFIG) --cflags` \ |
43153
741fb1a95da2
fuzz: new target to fuzz jsonescapeu8fast
Augie Fackler <augie@google.com>
parents:
43152
diff
changeset
|
84 -Wno-register -Wno-macro-redefined \ |
741fb1a95da2
fuzz: new target to fuzz jsonescapeu8fast
Augie Fackler <augie@google.com>
parents:
43152
diff
changeset
|
85 -I../../mercurial jsonescapeu8fast.cc \ |
43817
d9f85f61f0ed
fuzz: clean up some repetition on building parsers.so fuzzers
Augie Fackler <augie@google.com>
parents:
43816
diff
changeset
|
86 pyutil.o $(PARSERS_OBJS) \ |
44962
ef8dcee272ac
fuzz: add config knob for PYTHON_CONFIG_FLAGS
Augie Fackler <augie@google.com>
parents:
43844
diff
changeset
|
87 $(LIB_FUZZING_ENGINE) `$(PYTHON_CONFIG) $(PYTHON_CONFIG_FLAGS)` \ |
43153
741fb1a95da2
fuzz: new target to fuzz jsonescapeu8fast
Augie Fackler <augie@google.com>
parents:
43152
diff
changeset
|
88 -o $$OUT/jsonescapeu8fast_fuzzer |
741fb1a95da2
fuzz: new target to fuzz jsonescapeu8fast
Augie Fackler <augie@google.com>
parents:
43152
diff
changeset
|
89 |
43843
d74d78aa74e9
fuzz: clean up production of seed corpora
Augie Fackler <augie@google.com>
parents:
43817
diff
changeset
|
90 manifest_fuzzer: manifest.cc pyutil.o $(PARSERS_OBJS) $$OUT/manifest_fuzzer_seed_corpus.zip |
43812
bf0453866c80
fuzz: use a variable to allow specifying python-config to use
Augie Fackler <augie@google.com>
parents:
43811
diff
changeset
|
91 $(CXX) $(CXXFLAGS) `$(PYTHON_CONFIG) --cflags` \ |
40053
8c692a6b5ad1
fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents:
38246
diff
changeset
|
92 -Wno-register -Wno-macro-redefined \ |
8c692a6b5ad1
fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents:
38246
diff
changeset
|
93 -I../../mercurial manifest.cc \ |
43817
d9f85f61f0ed
fuzz: clean up some repetition on building parsers.so fuzzers
Augie Fackler <augie@google.com>
parents:
43816
diff
changeset
|
94 pyutil.o $(PARSERS_OBJS) \ |
44962
ef8dcee272ac
fuzz: add config knob for PYTHON_CONFIG_FLAGS
Augie Fackler <augie@google.com>
parents:
43844
diff
changeset
|
95 $(LIB_FUZZING_ENGINE) `$(PYTHON_CONFIG) $(PYTHON_CONFIG_FLAGS)` \ |
40053
8c692a6b5ad1
fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents:
38246
diff
changeset
|
96 -o $$OUT/manifest_fuzzer |
8c692a6b5ad1
fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents:
38246
diff
changeset
|
97 |
43843
d74d78aa74e9
fuzz: clean up production of seed corpora
Augie Fackler <augie@google.com>
parents:
43817
diff
changeset
|
98 revlog_fuzzer: revlog.cc pyutil.o $(PARSERS_OBJS) $$OUT/revlog_fuzzer_seed_corpus.zip |
43812
bf0453866c80
fuzz: use a variable to allow specifying python-config to use
Augie Fackler <augie@google.com>
parents:
43811
diff
changeset
|
99 $(CXX) $(CXXFLAGS) `$(PYTHON_CONFIG) --cflags` \ |
41014
c06f0ef9a5ba
fuzz: new fuzzer for revlog's parse_index2 method
Augie Fackler <augie@google.com>
parents:
41013
diff
changeset
|
100 -Wno-register -Wno-macro-redefined \ |
c06f0ef9a5ba
fuzz: new fuzzer for revlog's parse_index2 method
Augie Fackler <augie@google.com>
parents:
41013
diff
changeset
|
101 -I../../mercurial revlog.cc \ |
43817
d9f85f61f0ed
fuzz: clean up some repetition on building parsers.so fuzzers
Augie Fackler <augie@google.com>
parents:
43816
diff
changeset
|
102 pyutil.o $(PARSERS_OBJS) \ |
44962
ef8dcee272ac
fuzz: add config knob for PYTHON_CONFIG_FLAGS
Augie Fackler <augie@google.com>
parents:
43844
diff
changeset
|
103 $(LIB_FUZZING_ENGINE) `$(PYTHON_CONFIG) $(PYTHON_CONFIG_FLAGS)` \ |
41014
c06f0ef9a5ba
fuzz: new fuzzer for revlog's parse_index2 method
Augie Fackler <augie@google.com>
parents:
41013
diff
changeset
|
104 -o $$OUT/revlog_fuzzer |
c06f0ef9a5ba
fuzz: new fuzzer for revlog's parse_index2 method
Augie Fackler <augie@google.com>
parents:
41013
diff
changeset
|
105 |
43843
d74d78aa74e9
fuzz: clean up production of seed corpora
Augie Fackler <augie@google.com>
parents:
43817
diff
changeset
|
106 dirstate_fuzzer: dirstate.cc pyutil.o $(PARSERS_OBJS) $$OUT/dirstate_fuzzer_seed_corpus.zip |
43812
bf0453866c80
fuzz: use a variable to allow specifying python-config to use
Augie Fackler <augie@google.com>
parents:
43811
diff
changeset
|
107 $(CXX) $(CXXFLAGS) `$(PYTHON_CONFIG) --cflags` \ |
41015
b444407f635b
fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents:
41014
diff
changeset
|
108 -Wno-register -Wno-macro-redefined \ |
b444407f635b
fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents:
41014
diff
changeset
|
109 -I../../mercurial dirstate.cc \ |
43817
d9f85f61f0ed
fuzz: clean up some repetition on building parsers.so fuzzers
Augie Fackler <augie@google.com>
parents:
43816
diff
changeset
|
110 pyutil.o $(PARSERS_OBJS) \ |
44962
ef8dcee272ac
fuzz: add config knob for PYTHON_CONFIG_FLAGS
Augie Fackler <augie@google.com>
parents:
43844
diff
changeset
|
111 $(LIB_FUZZING_ENGINE) `$(PYTHON_CONFIG) $(PYTHON_CONFIG_FLAGS)` \ |
41015
b444407f635b
fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents:
41014
diff
changeset
|
112 -o $$OUT/dirstate_fuzzer |
b444407f635b
fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents:
41014
diff
changeset
|
113 |
43843
d74d78aa74e9
fuzz: clean up production of seed corpora
Augie Fackler <augie@google.com>
parents:
43817
diff
changeset
|
114 fm1readmarkers_fuzzer: fm1readmarkers.cc pyutil.o $(PARSERS_OBJS) $$OUT/fm1readmarkers_fuzzer_seed_corpus.zip |
43812
bf0453866c80
fuzz: use a variable to allow specifying python-config to use
Augie Fackler <augie@google.com>
parents:
43811
diff
changeset
|
115 $(CXX) $(CXXFLAGS) `$(PYTHON_CONFIG) --cflags` \ |
41024
6a951f535fee
fuzz: new fuzzer for parsers.fm1readmarkers
Augie Fackler <augie@google.com>
parents:
41015
diff
changeset
|
116 -Wno-register -Wno-macro-redefined \ |
6a951f535fee
fuzz: new fuzzer for parsers.fm1readmarkers
Augie Fackler <augie@google.com>
parents:
41015
diff
changeset
|
117 -I../../mercurial fm1readmarkers.cc \ |
43817
d9f85f61f0ed
fuzz: clean up some repetition on building parsers.so fuzzers
Augie Fackler <augie@google.com>
parents:
43816
diff
changeset
|
118 pyutil.o $(PARSERS_OBJS) \ |
44962
ef8dcee272ac
fuzz: add config knob for PYTHON_CONFIG_FLAGS
Augie Fackler <augie@google.com>
parents:
43844
diff
changeset
|
119 $(LIB_FUZZING_ENGINE) `$(PYTHON_CONFIG) $(PYTHON_CONFIG_FLAGS)` \ |
41024
6a951f535fee
fuzz: new fuzzer for parsers.fm1readmarkers
Augie Fackler <augie@google.com>
parents:
41015
diff
changeset
|
120 -o $$OUT/fm1readmarkers_fuzzer |
6a951f535fee
fuzz: new fuzzer for parsers.fm1readmarkers
Augie Fackler <augie@google.com>
parents:
41015
diff
changeset
|
121 |
38175 | 122 clean: |
38234
9db30f438ddd
fuzz: fix "make clean" to pass even if no binaries built yet
Yuya Nishihara <yuya@tcha.org>
parents:
38233
diff
changeset
|
123 $(RM) *.o *_fuzzer \ |
38175 | 124 bdiff \ |
38246
46dcb9f14900
fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents:
38234
diff
changeset
|
125 mpatch \ |
38175 | 126 xdiff |
127 | |
43843
d74d78aa74e9
fuzz: clean up production of seed corpora
Augie Fackler <augie@google.com>
parents:
43817
diff
changeset
|
128 oss-fuzz: bdiff_fuzzer mpatch_fuzzer xdiff_fuzzer dirs_fuzzer fncache_fuzzer jsonescapeu8fast_fuzzer manifest_fuzzer revlog_fuzzer dirstate_fuzzer fm1readmarkers_fuzzer |
35670
2b9e2415f5b5
contrib: add some basic scaffolding for some fuzz test targets
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
129 |
41183
c01fac6749e5
fuzz: stop building Python in the Makefile
Augie Fackler <augie@google.com>
parents:
41024
diff
changeset
|
130 .PHONY: all clean oss-fuzz |