contrib/fuzz/Makefile
author Augie Fackler <augie@google.com>
Thu, 06 Sep 2018 02:36:25 -0400
changeset 40053 8c692a6b5ad1
parent 38246 46dcb9f14900
child 40090 a66594c5fad4
permissions -rw-r--r--
fuzz: new fuzzer for cext/manifest.c This is a bit messy, because lazymanifest is tightly coupled to the cpython API for performance reasons. As a result, we have to build a whole Python without pymalloc (so ASAN can help us out) and link against that. Then we have to use an embedded Python interpreter. We could manually drive the lazymanifest in C from that point, but experimentally just using PyEval_EvalCode isn't really any slower so we may as well do that and write the innermost guts of the fuzzer in Python. Leak detection is currently disabled for this fuzzer because there are a few global-lifetime things in our extensions that we more or less intentionally leak and I didn't want to take the detour to work around that for now. This should not be pushed to our repo until https://github.com/google/oss-fuzz/pull/1853 is merged, as this depends on having the Python tarball around. Differential Revision: https://phab.mercurial-scm.org/D4879
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
38246
46dcb9f14900 fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents: 38234
diff changeset
     4
all: bdiff mpatch xdiff
38231
4dd3b6c68f96 fuzz: fix the default make target
Yuya Nishihara <yuya@tcha.org>
parents: 38230
diff changeset
     5
38173
fa0ddd5e8fff fuzz: extract some common utilities and use modern C++ idioms
Augie Fackler <augie@google.com>
parents: 36765
diff changeset
     6
fuzzutil.o: fuzzutil.cc fuzzutil.h
38230
bf901559e647 fuzz: expand variables by make
Yuya Nishihara <yuya@tcha.org>
parents: 38175
diff changeset
     7
	$(CXX) $(CXXFLAGS) -g -O1 -fsanitize=fuzzer-no-link,address \
38173
fa0ddd5e8fff fuzz: extract some common utilities and use modern C++ idioms
Augie Fackler <augie@google.com>
parents: 36765
diff changeset
     8
	  -std=c++17 \
fa0ddd5e8fff fuzz: extract some common utilities and use modern C++ idioms
Augie Fackler <augie@google.com>
parents: 36765
diff changeset
     9
	  -I../../mercurial -c -o fuzzutil.o fuzzutil.cc
fa0ddd5e8fff fuzz: extract some common utilities and use modern C++ idioms
Augie Fackler <augie@google.com>
parents: 36765
diff changeset
    10
38174
36d55f90e2a3 fuzzutil: make it possible to use absl when C++17 isn't supported
Augie Fackler <augie@google.com>
parents: 38173
diff changeset
    11
fuzzutil-oss-fuzz.o: fuzzutil.cc fuzzutil.h
38230
bf901559e647 fuzz: expand variables by make
Yuya Nishihara <yuya@tcha.org>
parents: 38175
diff changeset
    12
	$(CXX) $(CXXFLAGS) -std=c++17 \
38174
36d55f90e2a3 fuzzutil: make it possible to use absl when C++17 isn't supported
Augie Fackler <augie@google.com>
parents: 38173
diff changeset
    13
	  -I../../mercurial -c -o fuzzutil-oss-fuzz.o fuzzutil.cc
36d55f90e2a3 fuzzutil: make it possible to use absl when C++17 isn't supported
Augie Fackler <augie@google.com>
parents: 38173
diff changeset
    14
35670
2b9e2415f5b5 contrib: add some basic scaffolding for some fuzz test targets
Augie Fackler <augie@google.com>
parents:
diff changeset
    15
bdiff.o: ../../mercurial/bdiff.c
38230
bf901559e647 fuzz: expand variables by make
Yuya Nishihara <yuya@tcha.org>
parents: 38175
diff changeset
    16
	$(CC) $(CFLAGS) -fsanitize=fuzzer-no-link,address -c -o bdiff.o \
35670
2b9e2415f5b5 contrib: add some basic scaffolding for some fuzz test targets
Augie Fackler <augie@google.com>
parents:
diff changeset
    17
	  ../../mercurial/bdiff.c
2b9e2415f5b5 contrib: add some basic scaffolding for some fuzz test targets
Augie Fackler <augie@google.com>
parents:
diff changeset
    18
38173
fa0ddd5e8fff fuzz: extract some common utilities and use modern C++ idioms
Augie Fackler <augie@google.com>
parents: 36765
diff changeset
    19
bdiff: bdiff.cc bdiff.o fuzzutil.o
38230
bf901559e647 fuzz: expand variables by make
Yuya Nishihara <yuya@tcha.org>
parents: 38175
diff changeset
    20
	$(CXX) $(CXXFLAGS) -DHG_FUZZER_INCLUDE_MAIN=1 -g -O1 -fsanitize=fuzzer-no-link,address \
38173
fa0ddd5e8fff fuzz: extract some common utilities and use modern C++ idioms
Augie Fackler <augie@google.com>
parents: 36765
diff changeset
    21
	  -std=c++17 \
fa0ddd5e8fff fuzz: extract some common utilities and use modern C++ idioms
Augie Fackler <augie@google.com>
parents: 36765
diff changeset
    22
	  -I../../mercurial bdiff.cc bdiff.o fuzzutil.o -o bdiff
35670
2b9e2415f5b5 contrib: add some basic scaffolding for some fuzz test targets
Augie Fackler <augie@google.com>
parents:
diff changeset
    23
2b9e2415f5b5 contrib: add some basic scaffolding for some fuzz test targets
Augie Fackler <augie@google.com>
parents:
diff changeset
    24
bdiff-oss-fuzz.o: ../../mercurial/bdiff.c
38230
bf901559e647 fuzz: expand variables by make
Yuya Nishihara <yuya@tcha.org>
parents: 38175
diff changeset
    25
	$(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
    26
38174
36d55f90e2a3 fuzzutil: make it possible to use absl when C++17 isn't supported
Augie Fackler <augie@google.com>
parents: 38173
diff changeset
    27
bdiff_fuzzer: bdiff.cc bdiff-oss-fuzz.o fuzzutil-oss-fuzz.o
38230
bf901559e647 fuzz: expand variables by make
Yuya Nishihara <yuya@tcha.org>
parents: 38175
diff changeset
    28
	$(CXX) $(CXXFLAGS) -std=c++17 -I../../mercurial bdiff.cc \
38174
36d55f90e2a3 fuzzutil: make it possible to use absl when C++17 isn't supported
Augie Fackler <augie@google.com>
parents: 38173
diff changeset
    29
	  bdiff-oss-fuzz.o fuzzutil-oss-fuzz.o -lFuzzingEngine -o \
36d55f90e2a3 fuzzutil: make it possible to use absl when C++17 isn't supported
Augie Fackler <augie@google.com>
parents: 38173
diff changeset
    30
	  $$OUT/bdiff_fuzzer
35670
2b9e2415f5b5 contrib: add some basic scaffolding for some fuzz test targets
Augie Fackler <augie@google.com>
parents:
diff changeset
    31
38246
46dcb9f14900 fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents: 38234
diff changeset
    32
mpatch.o: ../../mercurial/mpatch.c
46dcb9f14900 fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents: 38234
diff changeset
    33
	$(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
    34
	  ../../mercurial/mpatch.c
46dcb9f14900 fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents: 38234
diff changeset
    35
46dcb9f14900 fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents: 38234
diff changeset
    36
mpatch: CXXFLAGS += -std=c++17
46dcb9f14900 fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents: 38234
diff changeset
    37
mpatch: mpatch.cc mpatch.o fuzzutil.o
46dcb9f14900 fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents: 38234
diff changeset
    38
	$(CXX) $(CXXFLAGS) -DHG_FUZZER_INCLUDE_MAIN=1 -g -O1 -fsanitize=fuzzer-no-link,address \
46dcb9f14900 fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents: 38234
diff changeset
    39
	  -I../../mercurial mpatch.cc mpatch.o fuzzutil.o -o mpatch
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
46dcb9f14900 fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents: 38234
diff changeset
    44
mpatch_fuzzer: mpatch.cc mpatch-oss-fuzz.o fuzzutil-oss-fuzz.o
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 \
46dcb9f14900 fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents: 38234
diff changeset
    46
	  mpatch-oss-fuzz.o fuzzutil-oss-fuzz.o -lFuzzingEngine -o \
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
46dcb9f14900 fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents: 38234
diff changeset
    49
mpatch_corpus.zip:
46dcb9f14900 fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents: 38234
diff changeset
    50
	python mpatch_corpus.py $$OUT/mpatch_fuzzer_seed_corpus.zip
46dcb9f14900 fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents: 38234
diff changeset
    51
36679
624cbd1477a6 fuzz: add a fuzzer for xdiff
Augie Fackler <augie@google.com>
parents: 35670
diff changeset
    52
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
    53
	$(CC) -g -O1 -fsanitize=fuzzer-no-link,address -c \
36679
624cbd1477a6 fuzz: add a fuzzer for xdiff
Augie Fackler <augie@google.com>
parents: 35670
diff changeset
    54
	  -o $@ \
624cbd1477a6 fuzz: add a fuzzer for xdiff
Augie Fackler <augie@google.com>
parents: 35670
diff changeset
    55
	  $<
624cbd1477a6 fuzz: add a fuzzer for xdiff
Augie Fackler <augie@google.com>
parents: 35670
diff changeset
    56
38233
74f89b7a4268 fuzz: compile xdiff.cc with -std=c++17
Yuya Nishihara <yuya@tcha.org>
parents: 38231
diff changeset
    57
xdiff: CXXFLAGS += -std=c++17
38173
fa0ddd5e8fff fuzz: extract some common utilities and use modern C++ idioms
Augie Fackler <augie@google.com>
parents: 36765
diff changeset
    58
xdiff: xdiff.cc xdiffi.o xprepare.o xutils.o fuzzutil.o
38230
bf901559e647 fuzz: expand variables by make
Yuya Nishihara <yuya@tcha.org>
parents: 38175
diff changeset
    59
	$(CXX) $(CXXFLAGS) -DHG_FUZZER_INCLUDE_MAIN=1 -g -O1 -fsanitize=fuzzer-no-link,address \
36679
624cbd1477a6 fuzz: add a fuzzer for xdiff
Augie Fackler <augie@google.com>
parents: 35670
diff changeset
    60
	  -I../../mercurial xdiff.cc \
38173
fa0ddd5e8fff fuzz: extract some common utilities and use modern C++ idioms
Augie Fackler <augie@google.com>
parents: 36765
diff changeset
    61
	  xdiffi.o xprepare.o xutils.o fuzzutil.o -o xdiff
35670
2b9e2415f5b5 contrib: add some basic scaffolding for some fuzz test targets
Augie Fackler <augie@google.com>
parents:
diff changeset
    62
36679
624cbd1477a6 fuzz: add a fuzzer for xdiff
Augie Fackler <augie@google.com>
parents: 35670
diff changeset
    63
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
    64
	$(CC) $(CFLAGS) -c \
36679
624cbd1477a6 fuzz: add a fuzzer for xdiff
Augie Fackler <augie@google.com>
parents: 35670
diff changeset
    65
	  -o $@ \
624cbd1477a6 fuzz: add a fuzzer for xdiff
Augie Fackler <augie@google.com>
parents: 35670
diff changeset
    66
	  $<
624cbd1477a6 fuzz: add a fuzzer for xdiff
Augie Fackler <augie@google.com>
parents: 35670
diff changeset
    67
38174
36d55f90e2a3 fuzzutil: make it possible to use absl when C++17 isn't supported
Augie Fackler <augie@google.com>
parents: 38173
diff changeset
    68
xdiff_fuzzer: xdiff.cc fuzz-xdiffi.o fuzz-xprepare.o fuzz-xutils.o fuzzutil-oss-fuzz.o
38230
bf901559e647 fuzz: expand variables by make
Yuya Nishihara <yuya@tcha.org>
parents: 38175
diff changeset
    69
	$(CXX) $(CXXFLAGS) -std=c++17 -I../../mercurial xdiff.cc \
38174
36d55f90e2a3 fuzzutil: make it possible to use absl when C++17 isn't supported
Augie Fackler <augie@google.com>
parents: 38173
diff changeset
    70
	  fuzz-xdiffi.o fuzz-xprepare.o fuzz-xutils.o fuzzutil-oss-fuzz.o \
36679
624cbd1477a6 fuzz: add a fuzzer for xdiff
Augie Fackler <augie@google.com>
parents: 35670
diff changeset
    71
	  -lFuzzingEngine -o $$OUT/xdiff_fuzzer
624cbd1477a6 fuzz: add a fuzzer for xdiff
Augie Fackler <augie@google.com>
parents: 35670
diff changeset
    72
40053
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    73
# TODO use the $OUT env var instead of hardcoding /out
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    74
/out/sanpy/bin/python:
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    75
	cd /Python-2.7.15/ && ./configure --without-pymalloc --prefix=$$OUT/sanpy CFLAGS='-O1 -fno-omit-frame-pointer -g -fwrapv -fstack-protector-strong' LDFLAGS=-lasan  && ASAN_OPTIONS=detect_leaks=0 make && make install
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    76
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    77
sanpy: /out/sanpy/bin/python
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    78
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    79
manifest.o: sanpy ../../mercurial/cext/manifest.c
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    80
	$(CC) $(CFLAGS) `$$OUT/sanpy/bin/python-config --cflags` \
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    81
	  -I../../mercurial \
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    82
	  -c -o manifest.o ../../mercurial/cext/manifest.c
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    83
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    84
charencode.o: sanpy ../../mercurial/cext/charencode.c
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    85
	$(CC) $(CFLAGS) `$$OUT/sanpy/bin/python-config --cflags` \
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    86
	  -I../../mercurial \
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    87
	  -c -o charencode.o ../../mercurial/cext/charencode.c
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    88
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    89
parsers.o: sanpy ../../mercurial/cext/parsers.c
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    90
	$(CC) $(CFLAGS) `$$OUT/sanpy/bin/python-config --cflags` \
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    91
	  -I../../mercurial \
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    92
	  -c -o parsers.o ../../mercurial/cext/parsers.c
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    93
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    94
dirs.o: sanpy ../../mercurial/cext/dirs.c
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    95
	$(CC) $(CFLAGS) `$$OUT/sanpy/bin/python-config --cflags` \
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    96
	  -I../../mercurial \
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    97
	  -c -o dirs.o ../../mercurial/cext/dirs.c
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    98
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    99
pathencode.o: sanpy ../../mercurial/cext/pathencode.c
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
   100
	$(CC) $(CFLAGS) `$$OUT/sanpy/bin/python-config --cflags` \
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
   101
	  -I../../mercurial \
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
   102
	  -c -o pathencode.o ../../mercurial/cext/pathencode.c
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
   103
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
   104
revlog.o: sanpy ../../mercurial/cext/revlog.c
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
   105
	$(CC) $(CFLAGS) `$$OUT/sanpy/bin/python-config --cflags` \
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
   106
	  -I../../mercurial \
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
   107
	  -c -o revlog.o ../../mercurial/cext/revlog.c
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
   108
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
   109
manifest_fuzzer: sanpy manifest.cc manifest.o charencode.o parsers.o dirs.o pathencode.o revlog.o
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
   110
	$(CXX) $(CXXFLAGS) `$$OUT/sanpy/bin/python-config --cflags` \
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
   111
	  -Wno-register -Wno-macro-redefined \
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
   112
	  -I../../mercurial manifest.cc \
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
   113
	  manifest.o charencode.o parsers.o dirs.o pathencode.o revlog.o \
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
   114
	  -lFuzzingEngine `$$OUT/sanpy/bin/python-config --ldflags` \
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
   115
	  -o $$OUT/manifest_fuzzer
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
   116
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
   117
manifest_corpus.zip:
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
   118
	python manifest_corpus.py $$OUT/manifest_fuzzer_seed_corpus.zip
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
   119
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
   120
copy_options:
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
   121
	cp *.options $$OUT
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
   122
38175
fbe239064064 fuzz: add clean target
Augie Fackler <augie@google.com>
parents: 38174
diff changeset
   123
clean:
38234
9db30f438ddd fuzz: fix "make clean" to pass even if no binaries built yet
Yuya Nishihara <yuya@tcha.org>
parents: 38233
diff changeset
   124
	$(RM) *.o *_fuzzer \
38175
fbe239064064 fuzz: add clean target
Augie Fackler <augie@google.com>
parents: 38174
diff changeset
   125
	  bdiff \
38246
46dcb9f14900 fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents: 38234
diff changeset
   126
	  mpatch \
38175
fbe239064064 fuzz: add clean target
Augie Fackler <augie@google.com>
parents: 38174
diff changeset
   127
	  xdiff
fbe239064064 fuzz: add clean target
Augie Fackler <augie@google.com>
parents: 38174
diff changeset
   128
40053
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
   129
oss-fuzz: bdiff_fuzzer mpatch_fuzzer mpatch_corpus.zip xdiff_fuzzer manifest_fuzzer manifest_corpus.zip copy_options
35670
2b9e2415f5b5 contrib: add some basic scaffolding for some fuzz test targets
Augie Fackler <augie@google.com>
parents:
diff changeset
   130
40053
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
   131
.PHONY: all clean oss-fuzz sanpy copy_options