contrib/fuzz/Makefile
author Augie Fackler <augie@google.com>
Wed, 19 Dec 2018 19:20:21 -0500
changeset 41001 c83ce53959ca
parent 40810 0fecf70fa8d4
child 41012 1e51dc85ce12
permissions -rw-r--r--
fuzz: improve makefile per feedback from some folks at work This is a *ton* better. Once this lands, I can remove a nasty kludge from the oss-fuzz build.sh. Bonus: this fixes the coverage build. Differential Revision: https://phab.mercurial-scm.org/D5458
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:
41001
c83ce53959ca fuzz: improve makefile per feedback from some folks at work
Augie Fackler <augie@google.com>
parents: 40810
diff changeset
    75
	cd /Python-2.7.15/ ; ASAN_OPTIONS=detect_leaks=0 ./configure --without-pymalloc --prefix=$$OUT/sanpy CFLAGS="$(CFLAGS)" LINKCC="$($CXX)" LDFLAGS="$(CXXFLAGS)"
40810
0fecf70fa8d4 fuzz: grep away HAVE_GETC_UNLOCKED in pyconfig.h to avoid msan badness
Augie Fackler <augie@google.com>
parents: 40809
diff changeset
    76
	cd /Python-2.7.15/ ; grep -v HAVE_GETC_UNLOCKED < pyconfig.h > tmp && mv tmp pyconfig.h
0fecf70fa8d4 fuzz: grep away HAVE_GETC_UNLOCKED in pyconfig.h to avoid msan badness
Augie Fackler <augie@google.com>
parents: 40809
diff changeset
    77
	cd /Python-2.7.15/ ; ASAN_OPTIONS=detect_leaks=0 make && make install
40053
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
sanpy: /out/sanpy/bin/python
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    80
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    81
manifest.o: sanpy ../../mercurial/cext/manifest.c
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    82
	$(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
    83
	  -I../../mercurial \
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    84
	  -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
    85
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    86
charencode.o: sanpy ../../mercurial/cext/charencode.c
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    87
	$(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
    88
	  -I../../mercurial \
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    89
	  -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
    90
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    91
parsers.o: sanpy ../../mercurial/cext/parsers.c
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    92
	$(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
    93
	  -I../../mercurial \
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    94
	  -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
    95
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    96
dirs.o: sanpy ../../mercurial/cext/dirs.c
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    97
	$(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
    98
	  -I../../mercurial \
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    99
	  -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
   100
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
   101
pathencode.o: sanpy ../../mercurial/cext/pathencode.c
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
   102
	$(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
   103
	  -I../../mercurial \
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
   104
	  -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
   105
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
   106
revlog.o: sanpy ../../mercurial/cext/revlog.c
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
   107
	$(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
   108
	  -I../../mercurial \
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
   109
	  -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
   110
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
   111
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
   112
	$(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
   113
	  -Wno-register -Wno-macro-redefined \
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
   114
	  -I../../mercurial manifest.cc \
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
   115
	  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
   116
	  -lFuzzingEngine `$$OUT/sanpy/bin/python-config --ldflags` \
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
   117
	  -o $$OUT/manifest_fuzzer
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
   118
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
   119
manifest_corpus.zip:
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
   120
	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
   121
38175
fbe239064064 fuzz: add clean target
Augie Fackler <augie@google.com>
parents: 38174
diff changeset
   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
fbe239064064 fuzz: add clean target
Augie Fackler <augie@google.com>
parents: 38174
diff changeset
   124
	  bdiff \
38246
46dcb9f14900 fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents: 38234
diff changeset
   125
	  mpatch \
38175
fbe239064064 fuzz: add clean target
Augie Fackler <augie@google.com>
parents: 38174
diff changeset
   126
	  xdiff
fbe239064064 fuzz: add clean target
Augie Fackler <augie@google.com>
parents: 38174
diff changeset
   127
40090
a66594c5fad4 fuzz: allow manifest fuzzer to detect leaks
Augie Fackler <augie@google.com>
parents: 40053
diff changeset
   128
oss-fuzz: bdiff_fuzzer mpatch_fuzzer mpatch_corpus.zip xdiff_fuzzer manifest_fuzzer manifest_corpus.zip
35670
2b9e2415f5b5 contrib: add some basic scaffolding for some fuzz test targets
Augie Fackler <augie@google.com>
parents:
diff changeset
   129
40090
a66594c5fad4 fuzz: allow manifest fuzzer to detect leaks
Augie Fackler <augie@google.com>
parents: 40053
diff changeset
   130
.PHONY: all clean oss-fuzz sanpy