contrib/fuzz/Makefile
author Georges Racinet <georges.racinet@octobus.net>
Fri, 20 Dec 2019 17:19:25 +0100
changeset 43946 ac627ed8a911
parent 43844 b7af8a02a304
child 44962 ef8dcee272ac
permissions -rw-r--r--
tests-pure: fixing test-parseindex2 This is a followup to D7603 (49fa0b31ee1d) which broke the tests for pure Python implementation. There are two divergences between pure and C implementations: - the pure implementation would accept only -1 as slice end, whereas C accepts both -1 and len(index) - in pure Python, `headrevs` is provided by revlog.py, not by the index. Differential Revision: https://phab.mercurial-scm.org/D7707
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
bf0453866c80 fuzz: use a variable to allow specifying python-config to use
Augie Fackler <augie@google.com>
parents: 43811
diff changeset
    14
43811
d1587fadff06 fuzz: suppress deprecated-register warnings in our compile
Augie Fackler <augie@google.com>
parents: 43810
diff changeset
    15
CXXFLAGS += -Wno-deprecated-register
d1587fadff06 fuzz: suppress deprecated-register warnings in our compile
Augie Fackler <augie@google.com>
parents: 43810
diff changeset
    16
43815
19da643dc10c tests: finally fix up test-fuzz-targets.t
Augie Fackler <augie@google.com>
parents: 43813
diff changeset
    17
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
    18
43813
5a9e2ae9899b fuzz: use a more standard approach to allow local builds of fuzzers
Augie Fackler <augie@google.com>
parents: 43812
diff changeset
    19
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
    20
43843
d74d78aa74e9 fuzz: clean up production of seed corpora
Augie Fackler <augie@google.com>
parents: 43817
diff changeset
    21
$$OUT/%_fuzzer_seed_corpus.zip: %_corpus.py
d74d78aa74e9 fuzz: clean up production of seed corpora
Augie Fackler <augie@google.com>
parents: 43817
diff changeset
    22
	python $< $@
d74d78aa74e9 fuzz: clean up production of seed corpora
Augie Fackler <augie@google.com>
parents: 43817
diff changeset
    23
41013
ef103c96ed33 fuzz: extract Python initialization to utility package
Augie Fackler <augie@google.com>
parents: 41012
diff changeset
    24
pyutil.o: pyutil.cc pyutil.h
ef103c96ed33 fuzz: extract Python initialization to utility package
Augie Fackler <augie@google.com>
parents: 41012
diff changeset
    25
	$(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
    26
	  `$(PYTHON_CONFIG) --cflags` \
41013
ef103c96ed33 fuzz: extract Python initialization to utility package
Augie Fackler <augie@google.com>
parents: 41012
diff changeset
    27
	  -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
    28
35670
2b9e2415f5b5 contrib: add some basic scaffolding for some fuzz test targets
Augie Fackler <augie@google.com>
parents:
diff changeset
    29
bdiff-oss-fuzz.o: ../../mercurial/bdiff.c
38230
bf901559e647 fuzz: expand variables by make
Yuya Nishihara <yuya@tcha.org>
parents: 38175
diff changeset
    30
	$(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
    31
43615
6f5c352f41b6 fuzz: clean out most of fuzzutil
Augie Fackler <augie@google.com>
parents: 43153
diff changeset
    32
bdiff_fuzzer: bdiff.cc bdiff-oss-fuzz.o
38230
bf901559e647 fuzz: expand variables by make
Yuya Nishihara <yuya@tcha.org>
parents: 38175
diff changeset
    33
	$(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
    34
	  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
    35
	  $$OUT/bdiff_fuzzer
35670
2b9e2415f5b5 contrib: add some basic scaffolding for some fuzz test targets
Augie Fackler <augie@google.com>
parents:
diff changeset
    36
38246
46dcb9f14900 fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents: 38234
diff changeset
    37
mpatch.o: ../../mercurial/mpatch.c
46dcb9f14900 fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents: 38234
diff changeset
    38
	$(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
    39
	  ../../mercurial/mpatch.c
46dcb9f14900 fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents: 38234
diff changeset
    40
46dcb9f14900 fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents: 38234
diff changeset
    41
mpatch-oss-fuzz.o: ../../mercurial/mpatch.c
46dcb9f14900 fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents: 38234
diff changeset
    42
	$(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
    43
43843
d74d78aa74e9 fuzz: clean up production of seed corpora
Augie Fackler <augie@google.com>
parents: 43817
diff changeset
    44
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
    45
	$(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
    46
	  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
    47
	  $$OUT/mpatch_fuzzer
46dcb9f14900 fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents: 38234
diff changeset
    48
36679
624cbd1477a6 fuzz: add a fuzzer for xdiff
Augie Fackler <augie@google.com>
parents: 35670
diff changeset
    49
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
    50
	$(CC) $(CFLAGS) -c \
36679
624cbd1477a6 fuzz: add a fuzzer for xdiff
Augie Fackler <augie@google.com>
parents: 35670
diff changeset
    51
	  -o $@ \
624cbd1477a6 fuzz: add a fuzzer for xdiff
Augie Fackler <augie@google.com>
parents: 35670
diff changeset
    52
	  $<
624cbd1477a6 fuzz: add a fuzzer for xdiff
Augie Fackler <augie@google.com>
parents: 35670
diff changeset
    53
43615
6f5c352f41b6 fuzz: clean out most of fuzzutil
Augie Fackler <augie@google.com>
parents: 43153
diff changeset
    54
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
    55
	$(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
    56
	  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
    57
	  $(LIB_FUZZING_ENGINE) -o $$OUT/xdiff_fuzzer
36679
624cbd1477a6 fuzz: add a fuzzer for xdiff
Augie Fackler <augie@google.com>
parents: 35670
diff changeset
    58
43817
d9f85f61f0ed fuzz: clean up some repetition on building parsers.so fuzzers
Augie Fackler <augie@google.com>
parents: 43816
diff changeset
    59
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
    60
	$(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
    61
	  -o $@ $<
40053
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    62
43817
d9f85f61f0ed fuzz: clean up some repetition on building parsers.so fuzzers
Augie Fackler <augie@google.com>
parents: 43816
diff changeset
    63
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
    64
43844
b7af8a02a304 fuzz: add a seed corpus for the dirs fuzzer
Augie Fackler <augie@google.com>
parents: 43843
diff changeset
    65
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
    66
	$(CXX) $(CXXFLAGS) `$(PYTHON_CONFIG) --cflags` \
43150
7ff40418c6bf fuzz: new fuzzer for dirs.c
Augie Fackler <augie@google.com>
parents: 41183
diff changeset
    67
	  -Wno-register -Wno-macro-redefined \
7ff40418c6bf fuzz: new fuzzer for dirs.c
Augie Fackler <augie@google.com>
parents: 41183
diff changeset
    68
	  -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
    69
	  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
    70
	  $(LIB_FUZZING_ENGINE) `$(PYTHON_CONFIG) --ldflags` \
43150
7ff40418c6bf fuzz: new fuzzer for dirs.c
Augie Fackler <augie@google.com>
parents: 41183
diff changeset
    71
	  -o $$OUT/dirs_fuzzer
7ff40418c6bf fuzz: new fuzzer for dirs.c
Augie Fackler <augie@google.com>
parents: 41183
diff changeset
    72
43817
d9f85f61f0ed fuzz: clean up some repetition on building parsers.so fuzzers
Augie Fackler <augie@google.com>
parents: 43816
diff changeset
    73
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
    74
	$(CXX) $(CXXFLAGS) `$(PYTHON_CONFIG) --cflags` \
43152
b37dd26935ee fuzz: new fuzzer for fncache-related functions
Augie Fackler <augie@google.com>
parents: 43150
diff changeset
    75
	  -Wno-register -Wno-macro-redefined \
b37dd26935ee fuzz: new fuzzer for fncache-related functions
Augie Fackler <augie@google.com>
parents: 43150
diff changeset
    76
	  -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
    77
	  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
    78
	  $(LIB_FUZZING_ENGINE) `$(PYTHON_CONFIG) --ldflags` \
43152
b37dd26935ee fuzz: new fuzzer for fncache-related functions
Augie Fackler <augie@google.com>
parents: 43150
diff changeset
    79
	  -o $$OUT/fncache_fuzzer
b37dd26935ee fuzz: new fuzzer for fncache-related functions
Augie Fackler <augie@google.com>
parents: 43150
diff changeset
    80
43817
d9f85f61f0ed fuzz: clean up some repetition on building parsers.so fuzzers
Augie Fackler <augie@google.com>
parents: 43816
diff changeset
    81
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
    82
	$(CXX) $(CXXFLAGS) `$(PYTHON_CONFIG) --cflags` \
43153
741fb1a95da2 fuzz: new target to fuzz jsonescapeu8fast
Augie Fackler <augie@google.com>
parents: 43152
diff changeset
    83
	  -Wno-register -Wno-macro-redefined \
741fb1a95da2 fuzz: new target to fuzz jsonescapeu8fast
Augie Fackler <augie@google.com>
parents: 43152
diff changeset
    84
	  -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
    85
	  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
    86
	  $(LIB_FUZZING_ENGINE) `$(PYTHON_CONFIG) --ldflags` \
43153
741fb1a95da2 fuzz: new target to fuzz jsonescapeu8fast
Augie Fackler <augie@google.com>
parents: 43152
diff changeset
    87
	  -o $$OUT/jsonescapeu8fast_fuzzer
741fb1a95da2 fuzz: new target to fuzz jsonescapeu8fast
Augie Fackler <augie@google.com>
parents: 43152
diff changeset
    88
43843
d74d78aa74e9 fuzz: clean up production of seed corpora
Augie Fackler <augie@google.com>
parents: 43817
diff changeset
    89
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
    90
	$(CXX) $(CXXFLAGS) `$(PYTHON_CONFIG) --cflags` \
40053
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    91
	  -Wno-register -Wno-macro-redefined \
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    92
	  -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
    93
	  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
    94
	  $(LIB_FUZZING_ENGINE) `$(PYTHON_CONFIG) --ldflags` \
40053
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    95
	  -o $$OUT/manifest_fuzzer
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    96
43843
d74d78aa74e9 fuzz: clean up production of seed corpora
Augie Fackler <augie@google.com>
parents: 43817
diff changeset
    97
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
    98
	$(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
    99
	  -Wno-register -Wno-macro-redefined \
c06f0ef9a5ba fuzz: new fuzzer for revlog's parse_index2 method
Augie Fackler <augie@google.com>
parents: 41013
diff changeset
   100
	  -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
   101
	  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
   102
	  $(LIB_FUZZING_ENGINE) `$(PYTHON_CONFIG) --ldflags` \
41014
c06f0ef9a5ba fuzz: new fuzzer for revlog's parse_index2 method
Augie Fackler <augie@google.com>
parents: 41013
diff changeset
   103
	  -o $$OUT/revlog_fuzzer
c06f0ef9a5ba fuzz: new fuzzer for revlog's parse_index2 method
Augie Fackler <augie@google.com>
parents: 41013
diff changeset
   104
43843
d74d78aa74e9 fuzz: clean up production of seed corpora
Augie Fackler <augie@google.com>
parents: 43817
diff changeset
   105
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
   106
	$(CXX) $(CXXFLAGS) `$(PYTHON_CONFIG) --cflags` \
41015
b444407f635b fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents: 41014
diff changeset
   107
	  -Wno-register -Wno-macro-redefined \
b444407f635b fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents: 41014
diff changeset
   108
	  -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
   109
	  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
   110
	  $(LIB_FUZZING_ENGINE) `$(PYTHON_CONFIG) --ldflags` \
41015
b444407f635b fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents: 41014
diff changeset
   111
	  -o $$OUT/dirstate_fuzzer
b444407f635b fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents: 41014
diff changeset
   112
43843
d74d78aa74e9 fuzz: clean up production of seed corpora
Augie Fackler <augie@google.com>
parents: 43817
diff changeset
   113
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
   114
	$(CXX) $(CXXFLAGS) `$(PYTHON_CONFIG) --cflags` \
41024
6a951f535fee fuzz: new fuzzer for parsers.fm1readmarkers
Augie Fackler <augie@google.com>
parents: 41015
diff changeset
   115
	  -Wno-register -Wno-macro-redefined \
6a951f535fee fuzz: new fuzzer for parsers.fm1readmarkers
Augie Fackler <augie@google.com>
parents: 41015
diff changeset
   116
	  -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
   117
	  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
   118
	  $(LIB_FUZZING_ENGINE) `$(PYTHON_CONFIG) --ldflags` \
41024
6a951f535fee fuzz: new fuzzer for parsers.fm1readmarkers
Augie Fackler <augie@google.com>
parents: 41015
diff changeset
   119
	  -o $$OUT/fm1readmarkers_fuzzer
6a951f535fee fuzz: new fuzzer for parsers.fm1readmarkers
Augie Fackler <augie@google.com>
parents: 41015
diff changeset
   120
38175
fbe239064064 fuzz: add clean target
Augie Fackler <augie@google.com>
parents: 38174
diff changeset
   121
clean:
38234
9db30f438ddd fuzz: fix "make clean" to pass even if no binaries built yet
Yuya Nishihara <yuya@tcha.org>
parents: 38233
diff changeset
   122
	$(RM) *.o *_fuzzer \
38175
fbe239064064 fuzz: add clean target
Augie Fackler <augie@google.com>
parents: 38174
diff changeset
   123
	  bdiff \
38246
46dcb9f14900 fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents: 38234
diff changeset
   124
	  mpatch \
38175
fbe239064064 fuzz: add clean target
Augie Fackler <augie@google.com>
parents: 38174
diff changeset
   125
	  xdiff
fbe239064064 fuzz: add clean target
Augie Fackler <augie@google.com>
parents: 38174
diff changeset
   126
43843
d74d78aa74e9 fuzz: clean up production of seed corpora
Augie Fackler <augie@google.com>
parents: 43817
diff changeset
   127
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
   128
41183
c01fac6749e5 fuzz: stop building Python in the Makefile
Augie Fackler <augie@google.com>
parents: 41024
diff changeset
   129
.PHONY: all clean oss-fuzz