X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;ds=sidebyside;f=regress%2FMakefile.in;h=993c1af66e2fbda331aee965ac2bfc8d3665c43e;hb=HEAD;hp=5f87f241296283a0ee23f982b4a2ae999a4683b0;hpb=1851859ebed79a37124e7dae514e9c8eb70653aa;p=adns.git diff --git a/regress/Makefile.in b/regress/Makefile.in index 5f87f24..eb63a20 100644 --- a/regress/Makefile.in +++ b/regress/Makefile.in @@ -1,11 +1,7 @@ # regress/Makefile[.in] - regression test Makefile # -# This file is part of adns, which is -# Copyright (C) 1997-2000,2003,2006,2014-2016,2020 Ian Jackson -# Copyright (C) 2014 Mark Wooding -# Copyright (C) 1999-2000,2003,2006 Tony Finch -# Copyright (C) 1991 Massachusetts Institute of Technology -# (See the file INSTALL for full details.) +# This file is part of adns, which is Copyright Ian Jackson +# and contributors (see the file INSTALL for full details). # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -27,19 +23,21 @@ PROGS_SYSDEP= @PROGS_HAVE_TSEARCH@ CLIENTS= adnstest adnshost adnslogres $(PROGS_SYSDEP) AUTOCHDRS= harness.h hsyscalls.h hredirect.h -AUTOCSRCS= hrecord.c hplayback.c hcommon.c +AUTOCSRCS= hrecord.c hplayback.c hcommon.c hfuzzraw.c include ../settings.make include $(srcdir)/../src/adns.make DIRCFLAGS= -I../src -I$(srcdir) -I$(srcdir)/../src HCPPFLAGS= -DADNS_REGRESS_TEST -I. +#HCPPFLAGS+= -DFUZZRAW_SYNC REDIRLIBOBJS= $(addsuffix _d.o, $(basename $(LIBOBJS))) HARNLOBJS= hcommon.o $(REDIRLIBOBJS) TARGETS= $(addsuffix _record, $(CLIENTS)) \ $(addsuffix _playback, $(CLIENTS)) \ - $(addsuffix _fuzz, $(CLIENTS)) + $(addsuffix _fuzz, $(CLIENTS)) \ + $(addsuffix _fuzzraw, $(CLIENTS)) ADH_OBJS= adh-main_c.o adh-opts_c.o adh-query_c.o ALL_OBJS= $(HARNLOBJS) dtest.o hrecord.o hplayback.o hnonfuzz.o hfuzz.o @@ -53,14 +51,24 @@ check: $(TARGETS) $(addprefix check-,$(ALL_TESTS)) @echo @echo 'all tests passed or maybe skipped.' -checkfuzz: $(TARGETS) $(addprefix checkfuzz-,$(ALL_TESTS)) +checkfuzz: $(TARGETS) \ + $(addprefix checkfuzz-,$(ALL_TESTS)) \ + $(addprefix checkfuzzraw-,$(ALL_TESTS)) @echo @echo 'all fuzzes passed or maybe skipped.' # this target is mostly useful as prep work for running the fuzzer; # it doesn't really test any of adns fuzzcat.d: checkfuzz - $(srcdir)/categorizefuzz $(ALL_TESTS) + $(srcdir)/categorisefuzz $(ALL_TESTS) + perl -ne 'print $$1,"\n" while m/\"([^"% ]{2,})\"/g' \ + $(srcdir)/../src/*.[ch] $(srcdir)/../client/*.[ch] \ + | sort -u >fuzzcat.d/dictionary + perl -p -e 'chomp;' \ + -e 's/[^0-9a-z-_]/sprintf "\\x%02x", ord $$&/ige;' \ + -e 's/^/l$$.="/; ' \ + -e 's/$$/"\n/;' \ + fuzzcat.d/dictionary >fuzzcat.d/dictionary.afl check-%: case-%.sys @srcdir=$(srcdir) $(srcdir)/r1test $* || test $$? = 5 @@ -68,10 +76,15 @@ check-%: case-%.sys fuzz-%: case-%.sys $(TARGETS) make1fuzz shlib srcdir=$(srcdir) $(srcdir)/make1fuzz $* +fuzzraw-%: fuzz-% + .PRECIOUS: fuzz-% checkfuzz-%: fuzz-% $(TARGETS) - @srcdir=$(srcdir) $(srcdir)/check1fuzz $< || test $$? = 5 + @srcdir=$(srcdir) $(srcdir)/check1fuzz $< + +checkfuzzraw-%: fuzz-% $(TARGETS) + @srcdir=$(srcdir) $(srcdir)/check1fuzz $< LINK_CMD= $(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@ @@ -84,6 +97,9 @@ LINK_CMD= $(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@ %_fuzz: %_c.o hplayback.o hfuzz.o $(HARNLOBJS) $(LINK_CMD) +%_fuzzraw: %_c.o hfuzzraw.o hfuzz.o $(HARNLOBJS) + $(LINK_CMD) + .SECONDARY: $(addsuffix _c.o, $(filter-out adnshost, $(CLIENTS))) # Without this, make will remove _c.o after building . # This wastes effort. (Debian bug #4073.) @@ -100,10 +116,13 @@ adnshost_%: $(ADH_OBJS) h%.o hnonfuzz.o $(HARNLOBJS) adnshost_fuzz: $(ADH_OBJS) hplayback.o hfuzz.o $(HARNLOBJS) $(LINK_CMD) -%_d.o: $(srcdir)/../src/%.c hredirect.h +adnshost_fuzzraw: $(ADH_OBJS) hfuzzraw.o hfuzz.o $(HARNLOBJS) + $(LINK_CMD) + +%_d.o: $(srcdir)/../src/%.c hredirect.h hsyscalls.h $(CC) $(CFLAGS) $(HCPPFLAGS) -c -g -o $@ $< -%_c.o: $(srcdir)/../client/%.c hredirect.h +%_c.o: $(srcdir)/../client/%.c hredirect.h hsyscalls.h $(CC) $(CFLAGS) $(HCPPFLAGS) -I $(srcdir)/../src -c -g -o $@ $< $(ALL_OBJS): $(srcdir)/../src/adns.h $(srcdir)/../src/internal.h