1# Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2#
3# SPDX-License-Identifier: MPL-2.0
4#
5# This Source Code Form is subject to the terms of the Mozilla Public
6# License, v. 2.0.  If a copy of the MPL was not distributed with this
7# file, you can obtain one at https://mozilla.org/MPL/2.0/.
8#
9# See the COPYRIGHT file distributed with this work for additional
10# information regarding copyright ownership.
11
12srcdir =	@srcdir@
13VPATH =		@srcdir@
14top_srcdir =	@top_srcdir@
15
16VERSION=@BIND9_VERSION@
17
18@BIND9_MAKE_INCLUDES@
19
20CINCLUDES =	-I. -Iinclude ${DNS_INCLUDES} ${ISC_INCLUDES} \
21		${FSTRM_CFLAGS} ${OPENSSL_CFLAGS} \
22		${PROTOBUF_C_CFLAGS} ${MAXMINDDB_CFLAGS} @CMOCKA_CFLAGS@
23CDEFINES =	-DTESTS="\"${top_builddir}/lib/dns/tests/\""
24
25ISCLIBS =	../../isc/libisc.@A@ @NO_LIBTOOL_ISCLIBS@
26ISCDEPLIBS =	../../isc/libisc.@A@
27DNSLIBS =	../libdns.@A@ @NO_LIBTOOL_DNSLIBS@
28DNSDEPLIBS =	../libdns.@A@
29
30LIBS =		@LIBS@ @CMOCKA_LIBS@
31
32OBJS =		dnstest.@O@
33SRCS =		acl_test.c \
34		db_test.c \
35		dbdiff_test.c \
36		dbiterator_test.c \
37		dh_test.c \
38		dispatch_test.c \
39		dnstap_test.c \
40		dst_test.c \
41		dnstest.c \
42		geoip_test.c \
43		keytable_test.c \
44		master_test.c \
45		name_test.c \
46		nsec3_test.c \
47		nsec3param_test.c \
48		peer_test.c \
49		private_test.c \
50		rbt_test.c \
51		rbt_serialize_test.c \
52		rbtdb_test.c \
53		rdata_test.c \
54		rdataset_test.c \
55		rdatasetstats_test.c \
56		resolver_test.c \
57		result_test.c \
58		rsa_test.c \
59		sigs_test.c \
60		time_test.c \
61		tsig_test.c \
62		update_test.c \
63		zonemgr_test.c \
64		zt_test.c
65
66SUBDIRS =
67TARGETS =	acl_test@EXEEXT@ \
68		db_test@EXEEXT@ \
69		dbdiff_test@EXEEXT@ \
70		dbiterator_test@EXEEXT@ \
71		dbversion_test@EXEEXT@ \
72		dh_test@EXEEXT@ \
73		dispatch_test@EXEEXT@ \
74		dnstap_test@EXEEXT@ \
75		dst_test@EXEEXT@ \
76		geoip_test@EXEEXT@ \
77		keytable_test@EXEEXT@ \
78		master_test@EXEEXT@ \
79		name_test@EXEEXT@ \
80		nsec3_test@EXEEXT@ \
81		nsec3param_test@EXEEXT@ \
82		peer_test@EXEEXT@ \
83		private_test@EXEEXT@ \
84		rbt_test@EXEEXT@ \
85		rbt_serialize_test@EXEEXT@ \
86		rbtdb_test@EXEEXT@ \
87		rdata_test@EXEEXT@ \
88		rdataset_test@EXEEXT@ \
89		rdatasetstats_test@EXEEXT@ \
90		resolver_test@EXEEXT@ \
91		result_test@EXEEXT@ \
92		rsa_test@EXEEXT@ \
93		sigs_test@EXEEXT@ \
94		time_test@EXEEXT@ \
95		tsig_test@EXEEXT@ \
96		update_test@EXEEXT@ \
97		zonemgr_test@EXEEXT@ \
98		zt_test@EXEEXT@
99
100@BIND9_MAKE_RULES@
101
102LD_WRAP_TESTS=@LD_WRAP_TESTS@
103
104acl_test@EXEEXT@: acl_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
105	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
106		${LDFLAGS} -o $@ acl_test.@O@ dnstest.@O@ ${DNSLIBS} \
107		${ISCLIBS} ${LIBS}
108
109db_test@EXEEXT@: db_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
110	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
111		${LDFLAGS} -o $@ db_test.@O@ dnstest.@O@ ${DNSLIBS} \
112		${ISCLIBS} ${LIBS}
113
114dbdiff_test@EXEEXT@: dbdiff_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
115	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
116		${LDFLAGS} -o $@ dbdiff_test.@O@ dnstest.@O@ \
117		${DNSLIBS} ${ISCLIBS} ${LIBS}
118
119dbiterator_test@EXEEXT@: dbiterator_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
120	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
121		${LDFLAGS} -o $@ dbiterator_test.@O@ dnstest.@O@ \
122		${DNSLIBS} ${ISCLIBS} ${LIBS}
123
124dbversion_test@EXEEXT@: dbversion_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
125	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
126		${LDFLAGS} -o $@ dbversion_test.@O@ dnstest.@O@ \
127		${DNSLIBS} ${ISCLIBS} ${LIBS}
128
129dh_test@EXEEXT@: dh_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
130	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
131		${LDFLAGS} -o $@ dh_test.@O@ dnstest.@O@ \
132		${DNSLIBS} ${ISCLIBS} ${LIBS}
133
134dispatch_test@EXEEXT@: dispatch_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
135	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
136		${LDFLAGS} -o $@ dispatch_test.@O@ dnstest.@O@ \
137		${DNSLIBS} ${ISCLIBS} ${LIBS}
138
139dnstap_test@EXEEXT@: dnstap_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
140	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
141		${LDFLAGS} -o $@ dnstap_test.@O@ dnstest.@O@ \
142		${FSTRM_LIBS} ${DNSLIBS} ${ISCLIBS} ${LIBS}
143
144dst_test@EXEEXT@: dst_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
145	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
146		${LDFLAGS} -o $@ dst_test.@O@ dnstest.@O@ \
147		${DNSLIBS} ${ISCLIBS} ${LIBS}
148
149geoip_test@EXEEXT@: geoip_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
150	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
151		${LDFLAGS} -o $@ geoip_test.@O@ dnstest.@O@ \
152		${DNSLIBS} ${MAXMINDDB_LIBS} ${ISCLIBS} ${LIBS}
153
154keytable_test@EXEEXT@: keytable_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
155	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
156		${LDFLAGS} -o $@ keytable_test.@O@ dnstest.@O@ \
157		${DNSLIBS} ${ISCLIBS} ${LIBS}
158
159master_test@EXEEXT@: master_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
160	test -d testdata || mkdir testdata
161	test -d testdata/master || mkdir testdata/master
162	${PERL} ${srcdir}/mkraw.pl < ${srcdir}/testdata/master/master12.data.in \
163		> testdata/master/master12.data
164	${PERL} ${srcdir}/mkraw.pl < ${srcdir}/testdata/master/master13.data.in \
165		> testdata/master/master13.data
166	${PERL} ${srcdir}/mkraw.pl < ${srcdir}/testdata/master/master14.data.in \
167		> testdata/master/master14.data
168	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
169		${LDFLAGS} -o $@ master_test.@O@ dnstest.@O@ \
170		${DNSLIBS} ${ISCLIBS} ${LIBS}
171
172name_test@EXEEXT@: name_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
173	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
174		${LDFLAGS} -o $@ name_test.@O@ dnstest.@O@ \
175		${DNSLIBS} ${ISCLIBS} ${LIBS}
176
177nsec3_test@EXEEXT@: nsec3_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
178	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
179		${LDFLAGS} -o $@ nsec3_test.@O@ dnstest.@O@ \
180		${DNSLIBS} ${ISCLIBS} ${LIBS}
181
182nsec3param_test@EXEEXT@: nsec3param_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
183	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
184		${LDFLAGS} -o $@ nsec3param_test.@O@ dnstest.@O@ \
185		${DNSLIBS} ${ISCLIBS} ${LIBS}
186
187peer_test@EXEEXT@: peer_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
188	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
189		${LDFLAGS} -o $@ peer_test.@O@ dnstest.@O@ \
190		${DNSLIBS} ${ISCLIBS} ${LIBS}
191
192private_test@EXEEXT@: private_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
193	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
194		${LDFLAGS} -o $@ private_test.@O@ dnstest.@O@ \
195		${DNSLIBS} ${ISCLIBS} ${LIBS}
196
197rbt_serialize_test@EXEEXT@: rbt_serialize_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
198	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
199		${LDFLAGS} -o $@ rbt_serialize_test.@O@ dnstest.@O@ \
200		${DNSLIBS} ${ISCLIBS} ${LIBS}
201
202rbt_test@EXEEXT@: rbt_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
203	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
204		${LDFLAGS} -o $@ rbt_test.@O@ dnstest.@O@ \
205		${DNSLIBS} ${ISCLIBS} ${LIBS}
206
207rbtdb_test@EXEEXT@: rbtdb_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
208	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
209		${LDFLAGS} -o $@ rbtdb_test.@O@ dnstest.@O@ \
210		${DNSLIBS} ${ISCLIBS} ${LIBS}
211
212rdata_test@EXEEXT@: rdata_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
213	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
214		${LDFLAGS} -o $@ rdata_test.@O@ dnstest.@O@ \
215		${DNSLIBS} ${ISCLIBS} ${LIBS}
216
217rdataset_test@EXEEXT@: rdataset_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
218	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
219		${LDFLAGS} -o $@ rdataset_test.@O@ dnstest.@O@ \
220		${DNSLIBS} ${ISCLIBS} ${LIBS}
221
222rdatasetstats_test@EXEEXT@: rdatasetstats_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
223	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
224		${LDFLAGS} -o $@ rdatasetstats_test.@O@ dnstest.@O@ \
225		${DNSLIBS} ${ISCLIBS} ${LIBS}
226
227resolver_test@EXEEXT@: resolver_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
228	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
229		${LDFLAGS} -o $@ resolver_test.@O@ dnstest.@O@ \
230		${DNSLIBS} ${ISCLIBS} ${LIBS}
231
232result_test@EXEEXT@: result_test.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
233	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
234		${LDFLAGS} -o $@ result_test.@O@ \
235		${DNSLIBS} ${ISCLIBS} ${LIBS}
236
237rsa_test@EXEEXT@: rsa_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
238	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
239		${LDFLAGS} -o $@ rsa_test.@O@ dnstest.@O@ \
240		${DNSLIBS} ${ISCLIBS} ${LIBS}
241
242sigs_test@EXEEXT@: sigs_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
243	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
244		${LDFLAGS} -o $@ sigs_test.@O@ dnstest.@O@ \
245		${DNSLIBS} ${ISCLIBS} ${LIBS}
246
247time_test@EXEEXT@: time_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
248	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
249		${LDFLAGS} -o $@ time_test.@O@ dnstest.@O@ \
250		${DNSLIBS} ${ISCLIBS} ${LIBS}
251
252WRAP_OPTIONS = \
253	-Wl,--wrap=isc__mem_put \
254	-Wl,--wrap=isc__mem_get \
255	-Wl,--wrap=isc_mem_attach \
256	-Wl,--wrap=isc_mem_detach \
257	-Wl,--wrap=isc__mem_putanddetach
258
259tsig_test@EXEEXT@: tsig_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
260	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
261		${LDFLAGS} -o $@ tsig_test.@O@ dnstest.@O@ \
262		${DNSLIBS} ${ISCLIBS} ${LIBS}
263
264update_test@EXEEXT@: update_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
265	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
266		${LDFLAGS} -o $@ update_test.@O@ dnstest.@O@ \
267		${DNSLIBS} ${ISCLIBS} ${LIBS}
268
269zonemgr_test@EXEEXT@: zonemgr_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
270	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
271		${LDFLAGS} -o $@ zonemgr_test.@O@ dnstest.@O@ \
272		${DNSLIBS} ${ISCLIBS} ${LIBS}
273
274zt_test@EXEEXT@: zt_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
275	${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} \
276		${LDFLAGS} -o $@ zt_test.@O@ dnstest.@O@ \
277		${DNSLIBS} ${ISCLIBS} ${LIBS}
278
279unit::
280	sh ${top_builddir}/unit/unittest.sh
281
282clean distclean::
283	rm -f ${TARGETS}
284	rm -f atf.out
285	rm -f testdata/master/master12.data testdata/master/master13.data \
286		testdata/master/master14.data
287	rm -f zone.bin
288