chiark / gitweb /
regress: Provide fuzzcat.d
[adns.git] / regress / Makefile.in
index 94017cc9964a071a6dad068f6bfa98e0654d39c9..5f87f241296283a0ee23f982b4a2ae999a4683b0 100644 (file)
@@ -1,14 +1,15 @@
 # regress/Makefile[.in] - regression test Makefile
 # 
 #  This file is part of adns, which is
-#    Copyright (C) 1997-2000,2003,2006  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
 #  (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
-#  the Free Software Foundation; either version 2, or (at your option)
+#  the Free Software Foundation; either version 3, or (at your option)
 #  any later version.
 #  
 #  This program is distributed in the hope that it will be useful,
@@ -17,8 +18,7 @@
 #  GNU General Public License for more details.
 #  
 #  You should have received a copy of the GNU General Public License
-#  along with this program; if not, write to the Free Software Foundation,
-#  Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 
+#  along with this program; if not, write to the Free Software Foundation.
 
 srcdir=                @srcdir@
 VPATH=         @srcdir@
@@ -37,26 +37,54 @@ HCPPFLAGS=  -DADNS_REGRESS_TEST -I.
 
 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)
 
 all install uninstall: $(TARGETS)
 
-check:         $(TARGETS)
-               srcdir=$(srcdir) $(srcdir)/checkall
+ALL_TESTS:=$(patsubst $(srcdir)/case-%.sys,%,$(wildcard $(srcdir)/case-*.sys))
+
+check:         $(TARGETS) $(addprefix check-,$(ALL_TESTS))
+               @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
+
+fuzzcat.d:     checkfuzz
+               $(srcdir)/categorizefuzz $(ALL_TESTS)
+
+check-%:       case-%.sys
+               @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 hnonfuzz.o $(HARNLOBJS)
                $(LINK_CMD)
 
-%_playback:    %_c.o hplayback.o $(HARNLOBJS)
+%_fuzz:                %_c.o hplayback.o hfuzz.o $(HARNLOBJS)
                $(LINK_CMD)
 
-.SECONDARY: $(addsuffix _c.o, $(CLIENTS))
+.SECONDARY: $(addsuffix _c.o, $(filter-out adnshost, $(CLIENTS)))
 # Without this, make will remove <client>_c.o after building <client>.
 # This wastes effort.  (Debian bug #4073.)
 #
@@ -66,7 +94,10 @@ LINK_CMD=    $(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@
 #
 # 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