contrib/fuzz/Makefile
author Ian Moody <moz-ian@perix.co.uk>
Fri, 11 Oct 2019 18:08:50 +0100
changeset 43275 8c0fe77f47c5
parent 43153 741fb1a95da2
child 43659 6f5c352f41b6
permissions -rw-r--r--
convert: convert os.devnull to bytes before trying to join it with other bytes Together with the previous commit relating to emailparser this gets test-convert-tla.t passing under py3. Differential Revision: https://phab.mercurial-scm.org/D7062
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
38242
bf901559e647 fuzz: expand variables by make
Yuya Nishihara <yuya@tcha.org>
parents: 38208
diff changeset
     1
CC = clang
bf901559e647 fuzz: expand variables by make
Yuya Nishihara <yuya@tcha.org>
parents: 38208
diff changeset
     2
CXX = clang++
bf901559e647 fuzz: expand variables by make
Yuya Nishihara <yuya@tcha.org>
parents: 38208
diff changeset
     3
38258
46dcb9f14900 fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
     4
all: bdiff mpatch xdiff
38243
4dd3b6c68f96 fuzz: fix the default make target
Yuya Nishihara <yuya@tcha.org>
parents: 38242
diff changeset
     5
38206
fa0ddd5e8fff fuzz: extract some common utilities and use modern C++ idioms
Augie Fackler <augie@google.com>
parents: 36773
diff changeset
     6
fuzzutil.o: fuzzutil.cc fuzzutil.h
41022
1e51dc85ce12 fuzz: remove probably-wrong -fsanitize from fuzzutil.o rule
Augie Fackler <augie@google.com>
parents: 41011
diff changeset
     7
	$(CXX) $(CXXFLAGS) -g -O1 \
38206
fa0ddd5e8fff fuzz: extract some common utilities and use modern C++ idioms
Augie Fackler <augie@google.com>
parents: 36773
diff changeset
     8
	  -std=c++17 \
fa0ddd5e8fff fuzz: extract some common utilities and use modern C++ idioms
Augie Fackler <augie@google.com>
parents: 36773
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: 36773
diff changeset
    10
38207
36d55f90e2a3 fuzzutil: make it possible to use absl when C++17 isn't supported
Augie Fackler <augie@google.com>
parents: 38206
diff changeset
    11
fuzzutil-oss-fuzz.o: fuzzutil.cc fuzzutil.h
38242
bf901559e647 fuzz: expand variables by make
Yuya Nishihara <yuya@tcha.org>
parents: 38208
diff changeset
    12
	$(CXX) $(CXXFLAGS) -std=c++17 \
38207
36d55f90e2a3 fuzzutil: make it possible to use absl when C++17 isn't supported
Augie Fackler <augie@google.com>
parents: 38206
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: 38206
diff changeset
    14
41023
ef103c96ed33 fuzz: extract Python initialization to utility package
Augie Fackler <augie@google.com>
parents: 41022
diff changeset
    15
pyutil.o: pyutil.cc pyutil.h
ef103c96ed33 fuzz: extract Python initialization to utility package
Augie Fackler <augie@google.com>
parents: 41022
diff changeset
    16
	$(CXX) $(CXXFLAGS) -g -O1 \
ef103c96ed33 fuzz: extract Python initialization to utility package
Augie Fackler <augie@google.com>
parents: 41022
diff changeset
    17
	  `$$OUT/sanpy/bin/python-config --cflags` \
ef103c96ed33 fuzz: extract Python initialization to utility package
Augie Fackler <augie@google.com>
parents: 41022
diff changeset
    18
	  -I../../mercurial -c -o pyutil.o pyutil.cc
ef103c96ed33 fuzz: extract Python initialization to utility package
Augie Fackler <augie@google.com>
parents: 41022
diff changeset
    19
35670
2b9e2415f5b5 contrib: add some basic scaffolding for some fuzz test targets
Augie Fackler <augie@google.com>
parents:
diff changeset
    20
bdiff.o: ../../mercurial/bdiff.c
38242
bf901559e647 fuzz: expand variables by make
Yuya Nishihara <yuya@tcha.org>
parents: 38208
diff changeset
    21
	$(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
    22
	  ../../mercurial/bdiff.c
2b9e2415f5b5 contrib: add some basic scaffolding for some fuzz test targets
Augie Fackler <augie@google.com>
parents:
diff changeset
    23
38206
fa0ddd5e8fff fuzz: extract some common utilities and use modern C++ idioms
Augie Fackler <augie@google.com>
parents: 36773
diff changeset
    24
bdiff: bdiff.cc bdiff.o fuzzutil.o
38242
bf901559e647 fuzz: expand variables by make
Yuya Nishihara <yuya@tcha.org>
parents: 38208
diff changeset
    25
	$(CXX) $(CXXFLAGS) -DHG_FUZZER_INCLUDE_MAIN=1 -g -O1 -fsanitize=fuzzer-no-link,address \
38206
fa0ddd5e8fff fuzz: extract some common utilities and use modern C++ idioms
Augie Fackler <augie@google.com>
parents: 36773
diff changeset
    26
	  -std=c++17 \
fa0ddd5e8fff fuzz: extract some common utilities and use modern C++ idioms
Augie Fackler <augie@google.com>
parents: 36773
diff changeset
    27
	  -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
    28
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
38242
bf901559e647 fuzz: expand variables by make
Yuya Nishihara <yuya@tcha.org>
parents: 38208
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
38207
36d55f90e2a3 fuzzutil: make it possible to use absl when C++17 isn't supported
Augie Fackler <augie@google.com>
parents: 38206
diff changeset
    32
bdiff_fuzzer: bdiff.cc bdiff-oss-fuzz.o fuzzutil-oss-fuzz.o
38242
bf901559e647 fuzz: expand variables by make
Yuya Nishihara <yuya@tcha.org>
parents: 38208
diff changeset
    33
	$(CXX) $(CXXFLAGS) -std=c++17 -I../../mercurial bdiff.cc \
38207
36d55f90e2a3 fuzzutil: make it possible to use absl when C++17 isn't supported
Augie Fackler <augie@google.com>
parents: 38206
diff changeset
    34
	  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: 38206
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
38258
46dcb9f14900 fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    37
mpatch.o: ../../mercurial/mpatch.c
46dcb9f14900 fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents: 38246
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: 38246
diff changeset
    39
	  ../../mercurial/mpatch.c
46dcb9f14900 fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    40
46dcb9f14900 fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    41
mpatch: CXXFLAGS += -std=c++17
46dcb9f14900 fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    42
mpatch: mpatch.cc mpatch.o fuzzutil.o
46dcb9f14900 fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    43
	$(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: 38246
diff changeset
    44
	  -I../../mercurial mpatch.cc mpatch.o fuzzutil.o -o mpatch
46dcb9f14900 fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    45
46dcb9f14900 fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    46
mpatch-oss-fuzz.o: ../../mercurial/mpatch.c
46dcb9f14900 fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    47
	$(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: 38246
diff changeset
    48
46dcb9f14900 fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    49
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: 38246
diff changeset
    50
	$(CXX) $(CXXFLAGS) -std=c++17 -I../../mercurial mpatch.cc \
46dcb9f14900 fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    51
	  mpatch-oss-fuzz.o fuzzutil-oss-fuzz.o -lFuzzingEngine -o \
46dcb9f14900 fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    52
	  $$OUT/mpatch_fuzzer
46dcb9f14900 fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    53
46dcb9f14900 fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    54
mpatch_corpus.zip:
46dcb9f14900 fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    55
	python mpatch_corpus.py $$OUT/mpatch_fuzzer_seed_corpus.zip
46dcb9f14900 fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
    56
36708
624cbd1477a6 fuzz: add a fuzzer for xdiff
Augie Fackler <augie@google.com>
parents: 35670
diff changeset
    57
x%.o: ../../mercurial/thirdparty/xdiff/x%.c ../../mercurial/thirdparty/xdiff/*.h
38242
bf901559e647 fuzz: expand variables by make
Yuya Nishihara <yuya@tcha.org>
parents: 38208
diff changeset
    58
	$(CC) -g -O1 -fsanitize=fuzzer-no-link,address -c \
36708
624cbd1477a6 fuzz: add a fuzzer for xdiff
Augie Fackler <augie@google.com>
parents: 35670
diff changeset
    59
	  -o $@ \
624cbd1477a6 fuzz: add a fuzzer for xdiff
Augie Fackler <augie@google.com>
parents: 35670
diff changeset
    60
	  $<
624cbd1477a6 fuzz: add a fuzzer for xdiff
Augie Fackler <augie@google.com>
parents: 35670
diff changeset
    61
38245
74f89b7a4268 fuzz: compile xdiff.cc with -std=c++17
Yuya Nishihara <yuya@tcha.org>
parents: 38243
diff changeset
    62
xdiff: CXXFLAGS += -std=c++17
38206
fa0ddd5e8fff fuzz: extract some common utilities and use modern C++ idioms
Augie Fackler <augie@google.com>
parents: 36773
diff changeset
    63
xdiff: xdiff.cc xdiffi.o xprepare.o xutils.o fuzzutil.o
38242
bf901559e647 fuzz: expand variables by make
Yuya Nishihara <yuya@tcha.org>
parents: 38208
diff changeset
    64
	$(CXX) $(CXXFLAGS) -DHG_FUZZER_INCLUDE_MAIN=1 -g -O1 -fsanitize=fuzzer-no-link,address \
36708
624cbd1477a6 fuzz: add a fuzzer for xdiff
Augie Fackler <augie@google.com>
parents: 35670
diff changeset
    65
	  -I../../mercurial xdiff.cc \
38206
fa0ddd5e8fff fuzz: extract some common utilities and use modern C++ idioms
Augie Fackler <augie@google.com>
parents: 36773
diff changeset
    66
	  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
    67
36708
624cbd1477a6 fuzz: add a fuzzer for xdiff
Augie Fackler <augie@google.com>
parents: 35670
diff changeset
    68
fuzz-x%.o: ../../mercurial/thirdparty/xdiff/x%.c ../../mercurial/thirdparty/xdiff/*.h
38242
bf901559e647 fuzz: expand variables by make
Yuya Nishihara <yuya@tcha.org>
parents: 38208
diff changeset
    69
	$(CC) $(CFLAGS) -c \
36708
624cbd1477a6 fuzz: add a fuzzer for xdiff
Augie Fackler <augie@google.com>
parents: 35670
diff changeset
    70
	  -o $@ \
624cbd1477a6 fuzz: add a fuzzer for xdiff
Augie Fackler <augie@google.com>
parents: 35670
diff changeset
    71
	  $<
624cbd1477a6 fuzz: add a fuzzer for xdiff
Augie Fackler <augie@google.com>
parents: 35670
diff changeset
    72
38207
36d55f90e2a3 fuzzutil: make it possible to use absl when C++17 isn't supported
Augie Fackler <augie@google.com>
parents: 38206
diff changeset
    73
xdiff_fuzzer: xdiff.cc fuzz-xdiffi.o fuzz-xprepare.o fuzz-xutils.o fuzzutil-oss-fuzz.o
38242
bf901559e647 fuzz: expand variables by make
Yuya Nishihara <yuya@tcha.org>
parents: 38208
diff changeset
    74
	$(CXX) $(CXXFLAGS) -std=c++17 -I../../mercurial xdiff.cc \
38207
36d55f90e2a3 fuzzutil: make it possible to use absl when C++17 isn't supported
Augie Fackler <augie@google.com>
parents: 38206
diff changeset
    75
	  fuzz-xdiffi.o fuzz-xprepare.o fuzz-xutils.o fuzzutil-oss-fuzz.o \
36708
624cbd1477a6 fuzz: add a fuzzer for xdiff
Augie Fackler <augie@google.com>
parents: 35670
diff changeset
    76
	  -lFuzzingEngine -o $$OUT/xdiff_fuzzer
624cbd1477a6 fuzz: add a fuzzer for xdiff
Augie Fackler <augie@google.com>
parents: 35670
diff changeset
    77
41183
c01fac6749e5 fuzz: stop building Python in the Makefile
Augie Fackler <augie@google.com>
parents: 41027
diff changeset
    78
manifest.o: ../../mercurial/cext/manifest.c
40054
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38258
diff changeset
    79
	$(CC) $(CFLAGS) `$$OUT/sanpy/bin/python-config --cflags` \
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38258
diff changeset
    80
	  -I../../mercurial \
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38258
diff changeset
    81
	  -c -o manifest.o ../../mercurial/cext/manifest.c
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38258
diff changeset
    82
41183
c01fac6749e5 fuzz: stop building Python in the Makefile
Augie Fackler <augie@google.com>
parents: 41027
diff changeset
    83
charencode.o: ../../mercurial/cext/charencode.c
40054
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38258
diff changeset
    84
	$(CC) $(CFLAGS) `$$OUT/sanpy/bin/python-config --cflags` \
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38258
diff changeset
    85
	  -I../../mercurial \
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38258
diff changeset
    86
	  -c -o charencode.o ../../mercurial/cext/charencode.c
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38258
diff changeset
    87
41183
c01fac6749e5 fuzz: stop building Python in the Makefile
Augie Fackler <augie@google.com>
parents: 41027
diff changeset
    88
parsers.o: ../../mercurial/cext/parsers.c
40054
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38258
diff changeset
    89
	$(CC) $(CFLAGS) `$$OUT/sanpy/bin/python-config --cflags` \
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38258
diff changeset
    90
	  -I../../mercurial \
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38258
diff changeset
    91
	  -c -o parsers.o ../../mercurial/cext/parsers.c
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38258
diff changeset
    92
41183
c01fac6749e5 fuzz: stop building Python in the Makefile
Augie Fackler <augie@google.com>
parents: 41027
diff changeset
    93
dirs.o: ../../mercurial/cext/dirs.c
40054
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38258
diff changeset
    94
	$(CC) $(CFLAGS) `$$OUT/sanpy/bin/python-config --cflags` \
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38258
diff changeset
    95
	  -I../../mercurial \
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38258
diff changeset
    96
	  -c -o dirs.o ../../mercurial/cext/dirs.c
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38258
diff changeset
    97
41183
c01fac6749e5 fuzz: stop building Python in the Makefile
Augie Fackler <augie@google.com>
parents: 41027
diff changeset
    98
pathencode.o: ../../mercurial/cext/pathencode.c
40054
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38258
diff changeset
    99
	$(CC) $(CFLAGS) `$$OUT/sanpy/bin/python-config --cflags` \
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38258
diff changeset
   100
	  -I../../mercurial \
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38258
diff changeset
   101
	  -c -o pathencode.o ../../mercurial/cext/pathencode.c
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38258
diff changeset
   102
41183
c01fac6749e5 fuzz: stop building Python in the Makefile
Augie Fackler <augie@google.com>
parents: 41027
diff changeset
   103
revlog.o: ../../mercurial/cext/revlog.c
40054
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38258
diff changeset
   104
	$(CC) $(CFLAGS) `$$OUT/sanpy/bin/python-config --cflags` \
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38258
diff changeset
   105
	  -I../../mercurial \
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38258
diff changeset
   106
	  -c -o revlog.o ../../mercurial/cext/revlog.c
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38258
diff changeset
   107
43150
7ff40418c6bf fuzz: new fuzzer for dirs.c
Augie Fackler <augie@google.com>
parents: 41183
diff changeset
   108
dirs_fuzzer: dirs.cc manifest.o charencode.o parsers.o dirs.o pathencode.o revlog.o pyutil.o
7ff40418c6bf fuzz: new fuzzer for dirs.c
Augie Fackler <augie@google.com>
parents: 41183
diff changeset
   109
	$(CXX) $(CXXFLAGS) `$$OUT/sanpy/bin/python-config --cflags` \
7ff40418c6bf fuzz: new fuzzer for dirs.c
Augie Fackler <augie@google.com>
parents: 41183
diff changeset
   110
	  -Wno-register -Wno-macro-redefined \
7ff40418c6bf fuzz: new fuzzer for dirs.c
Augie Fackler <augie@google.com>
parents: 41183
diff changeset
   111
	  -I../../mercurial dirs.cc \
7ff40418c6bf fuzz: new fuzzer for dirs.c
Augie Fackler <augie@google.com>
parents: 41183
diff changeset
   112
	  manifest.o charencode.o parsers.o dirs.o pathencode.o revlog.o pyutil.o \
7ff40418c6bf fuzz: new fuzzer for dirs.c
Augie Fackler <augie@google.com>
parents: 41183
diff changeset
   113
	  -lFuzzingEngine `$$OUT/sanpy/bin/python-config --ldflags` \
7ff40418c6bf fuzz: new fuzzer for dirs.c
Augie Fackler <augie@google.com>
parents: 41183
diff changeset
   114
	  -o $$OUT/dirs_fuzzer
7ff40418c6bf fuzz: new fuzzer for dirs.c
Augie Fackler <augie@google.com>
parents: 41183
diff changeset
   115
43152
b37dd26935ee fuzz: new fuzzer for fncache-related functions
Augie Fackler <augie@google.com>
parents: 43150
diff changeset
   116
fncache_fuzzer: fncache.cc manifest.o charencode.o parsers.o dirs.o pathencode.o revlog.o pyutil.o
b37dd26935ee fuzz: new fuzzer for fncache-related functions
Augie Fackler <augie@google.com>
parents: 43150
diff changeset
   117
	$(CXX) $(CXXFLAGS) `$$OUT/sanpy/bin/python-config --cflags` \
b37dd26935ee fuzz: new fuzzer for fncache-related functions
Augie Fackler <augie@google.com>
parents: 43150
diff changeset
   118
	  -Wno-register -Wno-macro-redefined \
b37dd26935ee fuzz: new fuzzer for fncache-related functions
Augie Fackler <augie@google.com>
parents: 43150
diff changeset
   119
	  -I../../mercurial fncache.cc \
b37dd26935ee fuzz: new fuzzer for fncache-related functions
Augie Fackler <augie@google.com>
parents: 43150
diff changeset
   120
	  manifest.o charencode.o parsers.o dirs.o pathencode.o revlog.o pyutil.o \
b37dd26935ee fuzz: new fuzzer for fncache-related functions
Augie Fackler <augie@google.com>
parents: 43150
diff changeset
   121
	  -lFuzzingEngine `$$OUT/sanpy/bin/python-config --ldflags` \
b37dd26935ee fuzz: new fuzzer for fncache-related functions
Augie Fackler <augie@google.com>
parents: 43150
diff changeset
   122
	  -o $$OUT/fncache_fuzzer
b37dd26935ee fuzz: new fuzzer for fncache-related functions
Augie Fackler <augie@google.com>
parents: 43150
diff changeset
   123
43153
741fb1a95da2 fuzz: new target to fuzz jsonescapeu8fast
Augie Fackler <augie@google.com>
parents: 43152
diff changeset
   124
jsonescapeu8fast_fuzzer: jsonescapeu8fast.cc manifest.o charencode.o parsers.o dirs.o pathencode.o revlog.o pyutil.o
741fb1a95da2 fuzz: new target to fuzz jsonescapeu8fast
Augie Fackler <augie@google.com>
parents: 43152
diff changeset
   125
	$(CXX) $(CXXFLAGS) `$$OUT/sanpy/bin/python-config --cflags` \
741fb1a95da2 fuzz: new target to fuzz jsonescapeu8fast
Augie Fackler <augie@google.com>
parents: 43152
diff changeset
   126
	  -Wno-register -Wno-macro-redefined \
741fb1a95da2 fuzz: new target to fuzz jsonescapeu8fast
Augie Fackler <augie@google.com>
parents: 43152
diff changeset
   127
	  -I../../mercurial jsonescapeu8fast.cc \
741fb1a95da2 fuzz: new target to fuzz jsonescapeu8fast
Augie Fackler <augie@google.com>
parents: 43152
diff changeset
   128
	  manifest.o charencode.o parsers.o dirs.o pathencode.o revlog.o pyutil.o \
741fb1a95da2 fuzz: new target to fuzz jsonescapeu8fast
Augie Fackler <augie@google.com>
parents: 43152
diff changeset
   129
	  -lFuzzingEngine `$$OUT/sanpy/bin/python-config --ldflags` \
741fb1a95da2 fuzz: new target to fuzz jsonescapeu8fast
Augie Fackler <augie@google.com>
parents: 43152
diff changeset
   130
	  -o $$OUT/jsonescapeu8fast_fuzzer
741fb1a95da2 fuzz: new target to fuzz jsonescapeu8fast
Augie Fackler <augie@google.com>
parents: 43152
diff changeset
   131
43150
7ff40418c6bf fuzz: new fuzzer for dirs.c
Augie Fackler <augie@google.com>
parents: 41183
diff changeset
   132
manifest_corpus.zip:
7ff40418c6bf fuzz: new fuzzer for dirs.c
Augie Fackler <augie@google.com>
parents: 41183
diff changeset
   133
	python manifest_corpus.py $$OUT/manifest_fuzzer_seed_corpus.zip
7ff40418c6bf fuzz: new fuzzer for dirs.c
Augie Fackler <augie@google.com>
parents: 41183
diff changeset
   134
41183
c01fac6749e5 fuzz: stop building Python in the Makefile
Augie Fackler <augie@google.com>
parents: 41027
diff changeset
   135
manifest_fuzzer: manifest.cc manifest.o charencode.o parsers.o dirs.o pathencode.o revlog.o pyutil.o
40054
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38258
diff changeset
   136
	$(CXX) $(CXXFLAGS) `$$OUT/sanpy/bin/python-config --cflags` \
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38258
diff changeset
   137
	  -Wno-register -Wno-macro-redefined \
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38258
diff changeset
   138
	  -I../../mercurial manifest.cc \
41023
ef103c96ed33 fuzz: extract Python initialization to utility package
Augie Fackler <augie@google.com>
parents: 41022
diff changeset
   139
	  manifest.o charencode.o parsers.o dirs.o pathencode.o revlog.o pyutil.o \
40054
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38258
diff changeset
   140
	  -lFuzzingEngine `$$OUT/sanpy/bin/python-config --ldflags` \
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38258
diff changeset
   141
	  -o $$OUT/manifest_fuzzer
8c692a6b5ad1 fuzz: new fuzzer for cext/manifest.c
Augie Fackler <augie@google.com>
parents: 38258
diff changeset
   142
41183
c01fac6749e5 fuzz: stop building Python in the Makefile
Augie Fackler <augie@google.com>
parents: 41027
diff changeset
   143
revlog_fuzzer: revlog.cc manifest.o charencode.o parsers.o dirs.o pathencode.o revlog.o pyutil.o
41024
c06f0ef9a5ba fuzz: new fuzzer for revlog's parse_index2 method
Augie Fackler <augie@google.com>
parents: 41023
diff changeset
   144
	$(CXX) $(CXXFLAGS) `$$OUT/sanpy/bin/python-config --cflags` \
c06f0ef9a5ba fuzz: new fuzzer for revlog's parse_index2 method
Augie Fackler <augie@google.com>
parents: 41023
diff changeset
   145
	  -Wno-register -Wno-macro-redefined \
c06f0ef9a5ba fuzz: new fuzzer for revlog's parse_index2 method
Augie Fackler <augie@google.com>
parents: 41023
diff changeset
   146
	  -I../../mercurial revlog.cc \
c06f0ef9a5ba fuzz: new fuzzer for revlog's parse_index2 method
Augie Fackler <augie@google.com>
parents: 41023
diff changeset
   147
	  manifest.o charencode.o parsers.o dirs.o pathencode.o revlog.o pyutil.o \
c06f0ef9a5ba fuzz: new fuzzer for revlog's parse_index2 method
Augie Fackler <augie@google.com>
parents: 41023
diff changeset
   148
	  -lFuzzingEngine `$$OUT/sanpy/bin/python-config --ldflags` \
c06f0ef9a5ba fuzz: new fuzzer for revlog's parse_index2 method
Augie Fackler <augie@google.com>
parents: 41023
diff changeset
   149
	  -o $$OUT/revlog_fuzzer
c06f0ef9a5ba fuzz: new fuzzer for revlog's parse_index2 method
Augie Fackler <augie@google.com>
parents: 41023
diff changeset
   150
c06f0ef9a5ba fuzz: new fuzzer for revlog's parse_index2 method
Augie Fackler <augie@google.com>
parents: 41023
diff changeset
   151
revlog_corpus.zip:
c06f0ef9a5ba fuzz: new fuzzer for revlog's parse_index2 method
Augie Fackler <augie@google.com>
parents: 41023
diff changeset
   152
	python revlog_corpus.py $$OUT/revlog_fuzzer_seed_corpus.zip
c06f0ef9a5ba fuzz: new fuzzer for revlog's parse_index2 method
Augie Fackler <augie@google.com>
parents: 41023
diff changeset
   153
41183
c01fac6749e5 fuzz: stop building Python in the Makefile
Augie Fackler <augie@google.com>
parents: 41027
diff changeset
   154
dirstate_fuzzer: dirstate.cc manifest.o charencode.o parsers.o dirs.o pathencode.o revlog.o pyutil.o
41025
b444407f635b fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents: 41024
diff changeset
   155
	$(CXX) $(CXXFLAGS) `$$OUT/sanpy/bin/python-config --cflags` \
b444407f635b fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents: 41024
diff changeset
   156
	  -Wno-register -Wno-macro-redefined \
b444407f635b fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents: 41024
diff changeset
   157
	  -I../../mercurial dirstate.cc \
b444407f635b fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents: 41024
diff changeset
   158
	  manifest.o charencode.o parsers.o dirs.o pathencode.o revlog.o pyutil.o \
b444407f635b fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents: 41024
diff changeset
   159
	  -lFuzzingEngine `$$OUT/sanpy/bin/python-config --ldflags` \
b444407f635b fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents: 41024
diff changeset
   160
	  -o $$OUT/dirstate_fuzzer
b444407f635b fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents: 41024
diff changeset
   161
b444407f635b fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents: 41024
diff changeset
   162
dirstate_corpus.zip:
b444407f635b fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents: 41024
diff changeset
   163
	python dirstate_corpus.py $$OUT/dirstate_fuzzer_seed_corpus.zip
b444407f635b fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents: 41024
diff changeset
   164
41183
c01fac6749e5 fuzz: stop building Python in the Makefile
Augie Fackler <augie@google.com>
parents: 41027
diff changeset
   165
fm1readmarkers_fuzzer: fm1readmarkers.cc manifest.o charencode.o parsers.o dirs.o pathencode.o revlog.o pyutil.o
41027
6a951f535fee fuzz: new fuzzer for parsers.fm1readmarkers
Augie Fackler <augie@google.com>
parents: 41025
diff changeset
   166
	$(CXX) $(CXXFLAGS) `$$OUT/sanpy/bin/python-config --cflags` \
6a951f535fee fuzz: new fuzzer for parsers.fm1readmarkers
Augie Fackler <augie@google.com>
parents: 41025
diff changeset
   167
	  -Wno-register -Wno-macro-redefined \
6a951f535fee fuzz: new fuzzer for parsers.fm1readmarkers
Augie Fackler <augie@google.com>
parents: 41025
diff changeset
   168
	  -I../../mercurial fm1readmarkers.cc \
6a951f535fee fuzz: new fuzzer for parsers.fm1readmarkers
Augie Fackler <augie@google.com>
parents: 41025
diff changeset
   169
	  manifest.o charencode.o parsers.o dirs.o pathencode.o revlog.o pyutil.o \
6a951f535fee fuzz: new fuzzer for parsers.fm1readmarkers
Augie Fackler <augie@google.com>
parents: 41025
diff changeset
   170
	  -lFuzzingEngine `$$OUT/sanpy/bin/python-config --ldflags` \
6a951f535fee fuzz: new fuzzer for parsers.fm1readmarkers
Augie Fackler <augie@google.com>
parents: 41025
diff changeset
   171
	  -o $$OUT/fm1readmarkers_fuzzer
6a951f535fee fuzz: new fuzzer for parsers.fm1readmarkers
Augie Fackler <augie@google.com>
parents: 41025
diff changeset
   172
6a951f535fee fuzz: new fuzzer for parsers.fm1readmarkers
Augie Fackler <augie@google.com>
parents: 41025
diff changeset
   173
fm1readmarkers_corpus.zip:
6a951f535fee fuzz: new fuzzer for parsers.fm1readmarkers
Augie Fackler <augie@google.com>
parents: 41025
diff changeset
   174
	python fm1readmarkers_corpus.py $$OUT/fm1readmarkers_fuzzer_seed_corpus.zip
6a951f535fee fuzz: new fuzzer for parsers.fm1readmarkers
Augie Fackler <augie@google.com>
parents: 41025
diff changeset
   175
38208
fbe239064064 fuzz: add clean target
Augie Fackler <augie@google.com>
parents: 38207
diff changeset
   176
clean:
38246
9db30f438ddd fuzz: fix "make clean" to pass even if no binaries built yet
Yuya Nishihara <yuya@tcha.org>
parents: 38245
diff changeset
   177
	$(RM) *.o *_fuzzer \
38208
fbe239064064 fuzz: add clean target
Augie Fackler <augie@google.com>
parents: 38207
diff changeset
   178
	  bdiff \
38258
46dcb9f14900 fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com>
parents: 38246
diff changeset
   179
	  mpatch \
38208
fbe239064064 fuzz: add clean target
Augie Fackler <augie@google.com>
parents: 38207
diff changeset
   180
	  xdiff
fbe239064064 fuzz: add clean target
Augie Fackler <augie@google.com>
parents: 38207
diff changeset
   181
43153
741fb1a95da2 fuzz: new target to fuzz jsonescapeu8fast
Augie Fackler <augie@google.com>
parents: 43152
diff changeset
   182
oss-fuzz: bdiff_fuzzer mpatch_fuzzer mpatch_corpus.zip xdiff_fuzzer dirs_fuzzer fncache_fuzzer jsonescapeu8fast_fuzzer manifest_fuzzer manifest_corpus.zip revlog_fuzzer revlog_corpus.zip dirstate_fuzzer dirstate_corpus.zip fm1readmarkers_fuzzer fm1readmarkers_corpus.zip
35670
2b9e2415f5b5 contrib: add some basic scaffolding for some fuzz test targets
Augie Fackler <augie@google.com>
parents:
diff changeset
   183
41183
c01fac6749e5 fuzz: stop building Python in the Makefile
Augie Fackler <augie@google.com>
parents: 41027
diff changeset
   184
.PHONY: all clean oss-fuzz