ikev2: Only send one certificate request for the same CA
[strongswan.git] / fuzz / Makefile.am
index 66debc2..3962896 100644 (file)
@@ -1,18 +1,34 @@
-CPPFLAGS = @CPPFLAGS@ \
+AM_CPPFLAGS = @CPPFLAGS@ \
        -I$(top_srcdir)/src/libstrongswan \
        -DPLUGINDIR=\""$(abs_top_builddir)/src/libstrongswan/plugins\"" \
        -DPLUGINS="\"${fuzz_plugins}\""
 
-LDFLAGS = @LDFLAGS@ ${libfuzzer} \
+fuzz_ldflags = ${libfuzzer} \
        $(top_builddir)/src/libstrongswan/.libs/libstrongswan.a \
        -Wl,-Bstatic -lgmp -Wl,-Bdynamic \
-       -stdlib=libc++ -lstdc++
+       @FUZZING_LDFLAGS@
 
-FUZZ_TARGETS=fuzz_certs
+FUZZ_TARGETS=fuzz_certs fuzz_crls
 
 all-local: $(FUZZ_TARGETS)
 
 CLEANFILES=$(FUZZ_TARGETS)
 
-fuzz_certs: fuzz_certs.c
-       $(CC) $(CPPFLAGS) $(CFLAGS) -o $@ $< $(LDFLAGS)
+fuzz_certs: fuzz_certs.c ${libfuzzer}
+       $(CC) $(AM_CPPFLAGS) $(CFLAGS) -o $@ $< $(fuzz_ldflags)
+
+fuzz_crls: fuzz_crls.c ${libfuzzer}
+       $(CC) $(AM_CPPFLAGS) $(CFLAGS) -o $@ $< $(fuzz_ldflags)
+
+noinst_LIBRARIES = libFuzzerLocal.a
+libFuzzerLocal_a_SOURCES = libFuzzerLocal.c
+libFuzzerLocal_a_LIBADD = $(top_builddir)/src/libstrongswan/libstrongswan.la
+
+check: all
+       for f in $(FUZZ_TARGETS); do \
+               corpus=$${f#fuzz_}; \
+               corpus=$${corpus%%_*}; \
+               ./$$f $(FUZZING_CORPORA)/$${corpus}/*; \
+               crashes=$(FUZZING_CORPORA)/$${corpus}-crash; \
+               test ! -d $${crashes} || ./$$f $${crashes}/*; \
+       done