# regress/Makefile[.in] - regression test Makefile
#
# This file is part of adns, which is
-# Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson
+# 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
REDIRLIBOBJS= $(addsuffix _d.o, $(basename $(LIBOBJS)))
HARNLOBJS= hcommon.o $(REDIRLIBOBJS)
-TARGETS= $(addsuffix _record, $(CLIENTS)) $(addsuffix _playback, $(CLIENTS))
+TARGETS= $(addsuffix _record, $(CLIENTS)) \
+ $(addsuffix _playback, $(CLIENTS)) \
+ $(addsuffix _fuzz, $(CLIENTS))
ADH_OBJS= adh-main_c.o adh-opts_c.o adh-query_c.o
-ALL_OBJS= $(HARNLOBJS) dtest.o hrecord.o hplayback.o
+ALL_OBJS= $(HARNLOBJS) dtest.o hrecord.o hplayback.o hnonfuzz.o hfuzz.o
.PRECIOUS: $(AUTOCSRCS) $(AUTOCHDRS)
@echo
@echo 'all tests passed or maybe skipped.'
+checkfuzz: $(TARGETS) $(addprefix checkfuzz-,$(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
+
check-%: case-%.sys
- @srcdir=$(srcdir) $(srcdir)/r1test $* || test $? = 5
+ @srcdir=$(srcdir) $(srcdir)/r1test $* || test $$? = 5
+
+fuzz-%: case-%.sys $(TARGETS) make1fuzz shlib
+ srcdir=$(srcdir) $(srcdir)/make1fuzz $*
+
+.PRECIOUS: fuzz-%
+
+checkfuzz-%: fuzz-% $(TARGETS)
+ @srcdir=$(srcdir) $(srcdir)/check1fuzz $< || test $$? = 5
LINK_CMD= $(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@
-%_record: %_c.o hrecord.o $(HARNLOBJS)
+%_record: %_c.o hrecord.o hnonfuzz.o $(HARNLOBJS)
$(LINK_CMD)
-%_playback: %_c.o hplayback.o $(HARNLOBJS)
+%_playback: %_c.o hplayback.o hnonfuzz.o $(HARNLOBJS)
+ $(LINK_CMD)
+
+%_fuzz: %_c.o hplayback.o hfuzz.o $(HARNLOBJS)
$(LINK_CMD)
.SECONDARY: $(addsuffix _c.o, $(filter-out adnshost, $(CLIENTS)))
#
# See also Savannah #29620, http://savannah.gnu.org/bugs/index.php?29620
-adnshost_%: $(ADH_OBJS) h%.o $(HARNLOBJS)
+adnshost_%: $(ADH_OBJS) h%.o hnonfuzz.o $(HARNLOBJS)
+ $(LINK_CMD)
+
+adnshost_fuzz: $(ADH_OBJS) hplayback.o hfuzz.o $(HARNLOBJS)
$(LINK_CMD)
%_d.o: $(srcdir)/../src/%.c hredirect.h