4 $(SYSTEM_TESTSUITE_AT
) \
5 $(SYSTEM_KMOD_TESTSUITE_AT
) \
6 $(SYSTEM_USERSPACE_TESTSUITE_AT
) \
7 $(SYSTEM_OFFLOADS_TESTSUITE_AT
) \
8 $(SYSTEM_DPDK_TESTSUITE_AT
) \
10 $(SYSTEM_KMOD_TESTSUITE
) \
11 $(SYSTEM_USERSPACE_TESTSUITE
) \
12 $(SYSTEM_OFFLOADS_TESTSUITE
) \
13 $(SYSTEM_DPDK_TESTSUITE
) \
15 $(srcdir)/package.m4 \
16 $(srcdir)/tests
/testsuite \
17 $(srcdir)/tests
/testsuite.patch
20 tests
/ovsdb-macros.at \
22 tests
/ofproto-macros.at
32 tests
/check-structs.at \
35 tests
/ofp-actions.at \
40 tests
/fuzz-regression.at \
41 tests
/fuzz-regression-list.at \
60 tests
/tunnel-push-pop.at \
61 tests
/tunnel-push-pop-ipv6.at \
65 tests
/ovs-vswitchd.at \
66 tests
/dpif-netdev.at \
68 tests
/ofproto-dpif.at \
71 tests
/netdev-type.at \
74 tests
/ovsdb-types.at \
76 tests
/ovsdb-column.at \
77 tests
/ovsdb-table.at \
79 tests
/ovsdb-schema.at \
80 tests
/ovsdb-condition.at \
81 tests
/ovsdb-mutation.at \
82 tests
/ovsdb-query.at \
83 tests
/ovsdb-transaction.at \
84 tests
/ovsdb-execution.at \
85 tests
/ovsdb-trigger.at \
87 tests
/ovsdb-replication.at \
88 tests
/ovsdb-server.at \
89 tests
/ovsdb-client.at \
90 tests
/ovsdb-monitor.at \
94 tests
/ovsdb-cluster.at \
96 tests
/ovs-xapi-sync.at \
99 tests
/interface-reconfigure.at \
102 tests
/auto-attach.at \
104 tests
/ovn-northd.at \
107 tests
/ovn-controller.at \
108 tests
/ovn-controller-vtep.at \
109 tests
/mcast-snooping.at \
110 tests
/packet-type-aware.at \
113 EXTRA_DIST
+= $(FUZZ_REGRESSION_TESTS
)
114 FUZZ_REGRESSION_TESTS
= \
115 tests
/fuzz-regression
/flow_extract_fuzzer-5112775280951296 \
116 tests
/fuzz-regression
/flow_extract_fuzzer-5457710546944000 \
117 tests
/fuzz-regression
/json_parser_fuzzer-4790908707930112 \
118 tests
/fuzz-regression
/ofp_print_fuzzer-4584019764183040 \
119 tests
/fuzz-regression
/ofp_print_fuzzer-4730143510626304 \
120 tests
/fuzz-regression
/ofp_print_fuzzer-4854119633256448 \
121 tests
/fuzz-regression
/ofp_print_fuzzer-5070973479944192 \
122 tests
/fuzz-regression
/ofp_print_fuzzer-5072291707748352 \
123 tests
/fuzz-regression
/ofp_print_fuzzer-5147430386401280 \
124 tests
/fuzz-regression
/ofp_print_fuzzer-5168455220199424 \
125 tests
/fuzz-regression
/ofp_print_fuzzer-5190507327127552 \
126 tests
/fuzz-regression
/ofp_print_fuzzer-5204186701496320 \
127 tests
/fuzz-regression
/ofp_print_fuzzer-5394482341085184 \
128 tests
/fuzz-regression
/ofp_print_fuzzer-5395207246839808 \
129 tests
/fuzz-regression
/ofp_print_fuzzer-5647458888581120 \
130 tests
/fuzz-regression
/ofp_print_fuzzer-5674119268925440 \
131 tests
/fuzz-regression
/ofp_print_fuzzer-5674419757252608 \
132 tests
/fuzz-regression
/ofp_print_fuzzer-5677588436484096 \
133 tests
/fuzz-regression
/ofp_print_fuzzer-5706562554298368 \
134 tests
/fuzz-regression
/ofp_print_fuzzer-5722747668791296 \
135 tests
/fuzz-regression
/ofp_print_fuzzer-6285128790704128 \
136 tests
/fuzz-regression
/ofp_print_fuzzer-6470117922701312 \
137 tests
/fuzz-regression
/ofp_print_fuzzer-6502620041576448
138 $(srcdir)/tests
/fuzz-regression-list.at
: tests
/automake.mk
139 $(AM_V_GEN
)for name in
$(FUZZ_REGRESSION_TESTS
); do \
140 basename=`echo $$name | sed 's,^.*/,,'`; \
141 echo
"TEST_FUZZ_REGRESSION([$$basename])"; \
142 done
> $@.tmp
&& mv
$@.tmp
$@
144 SYSTEM_KMOD_TESTSUITE_AT
= \
145 tests
/system-common-macros.at \
146 tests
/system-kmod-testsuite.at \
147 tests
/system-kmod-macros.at
149 SYSTEM_USERSPACE_TESTSUITE_AT
= \
150 tests
/system-userspace-testsuite.at \
151 tests
/system-ovn.at \
152 tests
/system-userspace-macros.at \
153 tests
/system-userspace-packet-type-aware.at
155 SYSTEM_TESTSUITE_AT
= \
156 tests
/system-common-macros.at \
157 tests
/system-ovn.at \
158 tests
/system-layer3-tunnels.at \
159 tests
/system-traffic.at \
160 tests
/system-interface.at
162 SYSTEM_OFFLOADS_TESTSUITE_AT
= \
163 tests
/system-common-macros.at \
164 tests
/system-offloads-traffic.at \
165 tests
/system-offloads-testsuite.at
167 SYSTEM_DPDK_TESTSUITE_AT
= \
168 tests
/system-common-macros.at \
169 tests
/system-dpdk-macros.at \
170 tests
/system-dpdk-testsuite.at \
173 check_SCRIPTS
+= tests
/atlocal
175 TESTSUITE
= $(srcdir)/tests
/testsuite
176 TESTSUITE_PATCH
= $(srcdir)/tests
/testsuite.patch
177 SYSTEM_KMOD_TESTSUITE
= $(srcdir)/tests
/system-kmod-testsuite
178 SYSTEM_USERSPACE_TESTSUITE
= $(srcdir)/tests
/system-userspace-testsuite
179 SYSTEM_OFFLOADS_TESTSUITE
= $(srcdir)/tests
/system-offloads-testsuite
180 SYSTEM_DPDK_TESTSUITE
= $(srcdir)/tests
/system-dpdk-testsuite
181 DISTCLEANFILES
+= tests
/atconfig tests
/atlocal
183 AUTOTEST_PATH
= utilities
:vswitchd
:ovsdb
:vtep
:tests
:$(PTHREAD_WIN32_DIR_DLL
):$(SSL_DIR
):ovn
/controller-vtep
:ovn
/northd
:ovn
/utilities
:ovn
/controller
186 set
$(SHELL
) '$(TESTSUITE)' -C tests AUTOTEST_PATH
=$(AUTOTEST_PATH
); \
187 "$$@" $(TESTSUITEFLAGS
) ||
(test X
'$(RECHECK)' = Xyes
&& "$$@" --recheck
)
189 # Python Coverage support.
190 # Requires coverage.py http://nedbatchelder.com/code/coverage/.
193 COVERAGE_FILE
='$(abs_srcdir)/.coverage'
194 check-pycov
: all clean-pycov
195 PYTHONDONTWRITEBYTECODE
=yes COVERAGE_FILE
=$(COVERAGE_FILE
) PYTHON
='$(COVERAGE) run -p' $(SHELL
) '$(TESTSUITE)' -C tests AUTOTEST_PATH
=$(AUTOTEST_PATH
) $(TESTSUITEFLAGS
)
196 @cd
$(srcdir) && $(COVERAGE
) combine
&& COVERAGE_FILE
=$(COVERAGE_FILE
) $(COVERAGE
) annotate
198 @echo
'----------------------------------------------------------------------'
199 @echo
'Annotated coverage source has the ",cover" extension.'
200 @echo
'----------------------------------------------------------------------'
202 @COVERAGE_FILE
=$(COVERAGE_FILE
) $(COVERAGE
) report
205 # Requires build with --enable-coverage and lcov/genhtml in $PATH
206 CLEAN_LOCAL
+= clean-lcov
210 LCOV_OPTS
= -b
$(abs_top_builddir
) -d
$(abs_top_builddir
) -q
-c
--rc lcov_branch_coverage
=1
211 GENHTML_OPTS
= -q
--branch-coverage
--num-spaces
4
212 check-lcov
: all $(check_DATA
) clean-lcov
213 find .
-name
'*.gcda' | xargs
-n1
rm -f
214 -set
$(SHELL
) '$(TESTSUITE)' -C tests AUTOTEST_PATH
=$(AUTOTEST_PATH
); \
215 "$$@" $(TESTSUITEFLAGS
) ||
(test X
'$(RECHECK)' = Xyes
&& "$$@" --recheck
)
216 $(MKDIR_P
) tests
/lcov
217 lcov
$(LCOV_OPTS
) -o tests
/lcov
/coverage.
info
218 genhtml
$(GENHTML_OPTS
) -o tests
/lcov tests
/lcov
/coverage.
info
219 @echo
"coverage report generated at tests/lcov/index.html"
223 valgrind_wrappers
= \
224 tests
/valgrind
/ovn-controller \
225 tests
/valgrind
/ovn-nbctl \
226 tests
/valgrind
/ovn-northd \
227 tests
/valgrind
/ovn-sbctl \
228 tests
/valgrind
/ovs-appctl \
229 tests
/valgrind
/ovs-ofctl \
230 tests
/valgrind
/ovs-vsctl \
231 tests
/valgrind
/ovs-vswitchd \
232 tests
/valgrind
/ovsdb-client \
233 tests
/valgrind
/ovsdb-server \
234 tests
/valgrind
/ovsdb-tool \
235 tests
/valgrind
/ovstest \
236 tests
/valgrind
/test-ovsdb \
237 tests
/valgrind
/test-skiplist \
238 tests
/valgrind
/test-strtok_r \
239 tests
/valgrind
/test-type-props
241 $(valgrind_wrappers
): tests
/valgrind-wrapper.in
242 @
$(MKDIR_P
) tests
/valgrind
243 $(AM_V_GEN
) sed
-e
's,[@]wrap_program[@],$@,' \
244 $(top_srcdir
)/tests
/valgrind-wrapper.in
> $@.tmp
&& \
247 CLEANFILES
+= $(valgrind_wrappers
)
248 EXTRA_DIST
+= tests
/valgrind-wrapper.in
250 VALGRIND
= valgrind
--log-file
=valgrind.
%p
--leak-check
=full \
251 --suppressions
=$(abs_top_srcdir
)/tests
/glibc.supp \
252 --suppressions
=$(abs_top_srcdir
)/tests
/openssl.supp
--num-callers
=20
253 HELGRIND
= valgrind
--log-file
=helgrind.
%p
--tool
=helgrind \
254 --suppressions
=$(abs_top_srcdir
)/tests
/glibc.supp \
255 --suppressions
=$(abs_top_srcdir
)/tests
/openssl.supp
--num-callers
=20
256 EXTRA_DIST
+= tests
/glibc.supp tests
/openssl.supp
257 check-valgrind
: all $(valgrind_wrappers
) $(check_DATA
)
258 $(SHELL
) '$(TESTSUITE)' -C tests CHECK_VALGRIND
=true VALGRIND
='$(VALGRIND)' AUTOTEST_PATH
='tests/valgrind:$(AUTOTEST_PATH)' -d
$(TESTSUITEFLAGS
)
260 @echo
'----------------------------------------------------------------------'
261 @echo
'Valgrind output can be found in tests/testsuite.dir/*/valgrind.*'
262 @echo
'----------------------------------------------------------------------'
263 check-kernel-valgrind
: all $(valgrind_wrappers
) $(check_DATA
)
264 $(SHELL
) '$(SYSTEM_KMOD_TESTSUITE)' -C tests VALGRIND
='$(VALGRIND)' AUTOTEST_PATH
='tests/valgrind:$(AUTOTEST_PATH)' -d
$(TESTSUITEFLAGS
) -j1
266 @echo
'----------------------------------------------------------------------'
267 @echo
'Valgrind output can be found in tests/system-kmod-testsuite.dir/*/valgrind.*'
268 @echo
'----------------------------------------------------------------------'
269 check-userspace-valgrind
: all $(valgrind_wrappers
) $(check_DATA
)
270 $(SHELL
) '$(SYSTEM_USERSPACE_TESTSUITE)' -C tests VALGRIND
='$(VALGRIND)' AUTOTEST_PATH
='tests/valgrind:$(AUTOTEST_PATH)' -d
$(TESTSUITEFLAGS
) -j1
272 @echo
'----------------------------------------------------------------------'
273 @echo
'Valgrind output can be found in tests/system-userspace-testsuite.dir/*/valgrind.*'
274 @echo
'----------------------------------------------------------------------'
275 check-helgrind
: all $(valgrind_wrappers
) $(check_DATA
)
276 -$(SHELL
) '$(TESTSUITE)' -C tests CHECK_VALGRIND
=true VALGRIND
='$(HELGRIND)' AUTOTEST_PATH
='tests/valgrind:$(AUTOTEST_PATH)' -d
$(TESTSUITEFLAGS
)
282 $(AM_V_at
)srcdir='$(srcdir)' $(SHELL
) $(srcdir)/tests
/run-oftest
283 EXTRA_DIST
+= tests
/run-oftest
287 $(AM_V_at
)srcdir='$(srcdir)' $(SHELL
) $(srcdir)/tests
/run-ryu
288 EXTRA_DIST
+= tests
/run-ryu
290 # Run kmod tests. Assume kernel modules has been installed or linked into the kernel
292 set
$(SHELL
) '$(SYSTEM_KMOD_TESTSUITE)' -C tests AUTOTEST_PATH
='$(AUTOTEST_PATH)'; \
293 "$$@" $(TESTSUITEFLAGS
) -j1 ||
(test X
'$(RECHECK)' = Xyes
&& "$$@" --recheck
)
295 # Testing the out of tree Kernel module
297 $(MAKE
) modules_install
298 modprobe
-r
-a vport-geneve vport-gre vport-lisp vport-stt vport-vxlan openvswitch
301 check-system-userspace
: all
302 set
$(SHELL
) '$(SYSTEM_USERSPACE_TESTSUITE)' -C tests AUTOTEST_PATH
='$(AUTOTEST_PATH)'; \
303 "$$@" $(TESTSUITEFLAGS
) -j1 ||
(test X
'$(RECHECK)' = Xyes
&& "$$@" --recheck
)
306 set
$(SHELL
) '$(SYSTEM_OFFLOADS_TESTSUITE)' -C tests AUTOTEST_PATH
='$(AUTOTEST_PATH)'; \
307 "$$@" $(TESTSUITEFLAGS
) -j1 ||
(test X
'$(RECHECK)' = Xyes
&& "$$@" --recheck
)
310 set
$(SHELL
) '$(SYSTEM_DPDK_TESTSUITE)' -C tests AUTOTEST_PATH
='$(AUTOTEST_PATH)'; \
311 "$$@" $(TESTSUITEFLAGS
) -j1 ||
(test X
'$(RECHECK)' = Xyes
&& "$$@" --recheck
)
314 test ! -f
'$(TESTSUITE)' ||
$(SHELL
) '$(TESTSUITE)' -C tests
--clean
316 AUTOTEST
= $(AUTOM4TE
) --language
=autotest
319 $(TESTSUITE
): package.m4
$(TESTSUITE_AT
) $(COMMON_MACROS_AT
) $(TESTSUITE_PATCH
)
320 $(AM_V_GEN
)$(AUTOTEST
) -I
'$(srcdir)' -o testsuite.tmp
$@.at
321 patch
-p0 testsuite.tmp
$(TESTSUITE_PATCH
)
322 $(AM_V_at
)mv testsuite.tmp
$@
324 $(TESTSUITE
): package.m4
$(TESTSUITE_AT
) $(COMMON_MACROS_AT
)
325 $(AM_V_GEN
)$(AUTOTEST
) -I
'$(srcdir)' -o
$@.tmp
$@.at
326 $(AM_V_at
)mv
$@.tmp
$@
329 $(SYSTEM_KMOD_TESTSUITE
): package.m4
$(SYSTEM_TESTSUITE_AT
) $(SYSTEM_KMOD_TESTSUITE_AT
) $(COMMON_MACROS_AT
)
330 $(AM_V_GEN
)$(AUTOTEST
) -I
'$(srcdir)' -o
$@.tmp
$@.at
331 $(AM_V_at
)mv
$@.tmp
$@
333 $(SYSTEM_USERSPACE_TESTSUITE
): package.m4
$(SYSTEM_TESTSUITE_AT
) $(SYSTEM_USERSPACE_TESTSUITE_AT
) $(COMMON_MACROS_AT
)
334 $(AM_V_GEN
)$(AUTOTEST
) -I
'$(srcdir)' -o
$@.tmp
$@.at
335 $(AM_V_at
)mv
$@.tmp
$@
337 $(SYSTEM_OFFLOADS_TESTSUITE
): package.m4
$(SYSTEM_TESTSUITE_AT
) $(SYSTEM_OFFLOADS_TESTSUITE_AT
) $(COMMON_MACROS_AT
)
338 $(AM_V_GEN
)$(AUTOTEST
) -I
'$(srcdir)' -o
$@.tmp
$@.at
339 $(AM_V_at
)mv
$@.tmp
$@
341 $(SYSTEM_DPDK_TESTSUITE
): package.m4
$(SYSTEM_TESTSUITE_AT
) $(SYSTEM_DPDK_TESTSUITE_AT
) $(COMMON_MACROS_AT
)
342 $(AM_V_GEN
)$(AUTOTEST
) -I
'$(srcdir)' -o
$@.tmp
$@.at
343 $(AM_V_at
)mv
$@.tmp
$@
345 # The `:;' works around a Bash 3.2 bug when the output is not writeable.
346 $(srcdir)/package.m4
: $(top_srcdir
)/configure.ac
348 echo
'# Signature of the current package.' && \
349 echo
'm4_define([AT_PACKAGE_NAME], [$(PACKAGE_NAME)])' && \
350 echo
'm4_define([AT_PACKAGE_TARNAME], [$(PACKAGE_TARNAME)])' && \
351 echo
'm4_define([AT_PACKAGE_VERSION], [$(PACKAGE_VERSION)])' && \
352 echo
'm4_define([AT_PACKAGE_STRING], [$(PACKAGE_STRING)])' && \
353 echo
'm4_define([AT_PACKAGE_BUGREPORT], [$(PACKAGE_BUGREPORT)])'; \
354 } >'$(srcdir)/package.m4'
356 noinst_PROGRAMS
+= tests
/test-ovsdb
357 tests_test_ovsdb_SOURCES
= tests
/test-ovsdb.c
358 nodist_tests_test_ovsdb_SOURCES
= tests
/idltest.c tests
/idltest.h
359 tests_test_ovsdb_LDADD
= ovsdb
/libovsdb.la lib
/libopenvswitch.la
361 noinst_PROGRAMS
+= tests
/test-lib
362 tests_test_lib_SOURCES
= \
364 tests_test_lib_LDADD
= lib
/libopenvswitch.la
366 # idltest schema and IDL
367 OVSIDL_BUILT
+= tests
/idltest.c tests
/idltest.h tests
/idltest.ovsidl
368 IDLTEST_IDL_FILES
= tests
/idltest.ovsschema tests
/idltest.ann
369 EXTRA_DIST
+= $(IDLTEST_IDL_FILES
) tests
/idltest2.ovsschema
370 tests
/idltest.ovsidl
: $(IDLTEST_IDL_FILES
)
371 $(AM_V_GEN
)$(OVSDB_IDLC
) -C
$(srcdir) annotate
$(IDLTEST_IDL_FILES
) > $@.tmp
&& \
374 tests
/idltest.c
: tests
/idltest.h
377 noinst_PROGRAMS
+= tests
/test-dpdkr
378 tests_test_dpdkr_SOURCES
= \
379 tests
/dpdk
/ring_client.c
380 tests_test_dpdkr_LDADD
= lib
/libopenvswitch.la
$(LIBS
)
383 noinst_PROGRAMS
+= tests
/ovstest
384 tests_ovstest_SOURCES
= \
387 tests
/test-aes128.c \
388 tests
/test-atomic.c \
389 tests
/test-bundle.c \
390 tests
/test-byte-order.c \
391 tests
/test-classifier.c \
394 tests
/test-conntrack.c \
399 tests
/test-hindex.c \
402 tests
/test-jsonrpc.c \
404 tests
/test-lockfile.c \
405 tests
/test-multipath.c \
406 tests
/test-netflow.c \
408 tests
/test-ofpbuf.c \
410 tests
/test-packets.c \
411 tests
/test-random.c \
413 tests
/test-reconnect.c \
417 tests
/test-skiplist.c \
419 tests
/test-unixctl.c \
422 tests
/test-bitmap.c \
425 tests
/test-stopwatch.c
428 tests_ovstest_SOURCES
+= \
429 tests
/test-unix-socket.c
433 tests_ovstest_SOURCES
+= \
434 tests
/test-netlink-conntrack.c
437 tests_ovstest_LDADD
= lib
/libopenvswitch.la ovn
/lib
/libovn.la
439 noinst_PROGRAMS
+= tests
/test-strtok_r
440 tests_test_strtok_r_SOURCES
= tests
/test-strtok_r.c
442 noinst_PROGRAMS
+= tests
/test-type-props
443 tests_test_type_props_SOURCES
= tests
/test-type-props.c
449 tests
/ovsdb-monitor-sort.py \
450 tests
/test-daemon.py \
452 tests
/test-jsonrpc.py \
454 tests
/test-ovsdb.py \
455 tests
/test-reconnect.py \
456 tests
/test-stream.py \
457 tests
/MockXenAPI.py \
458 tests
/test-unix-socket.py \
459 tests
/test-unixctl.py \
464 EXTRA_DIST
+= $(CHECK_PYFILES
)
465 PYCOV_CLEAN_FILES
+= $(CHECK_PYFILES
:.py
=.py
,cover
) .coverage
467 FLAKE8_PYFILES
+= $(CHECK_PYFILES
)
471 tests
/testpki-cacert.pem \
472 tests
/testpki-cert.pem \
473 tests
/testpki-privkey.pem \
474 tests
/testpki-req.pem \
475 tests
/testpki-cert2.pem \
476 tests
/testpki-privkey2.pem \
477 tests
/testpki-req2.pem
478 check_DATA
+= $(TESTPKI_FILES
)
479 CLEANFILES
+= $(TESTPKI_FILES
)
481 tests
/testpki-cacert.pem
: tests
/pki
/stamp
482 $(AM_V_GEN
)cp tests
/pki
/switchca
/cacert.pem
$@
483 tests
/testpki-cert.pem
: tests
/pki
/stamp
484 $(AM_V_GEN
)cp tests
/pki
/test-cert.pem
$@
485 tests
/testpki-req.pem
: tests
/pki
/stamp
486 $(AM_V_GEN
)cp tests
/pki
/test-req.pem
$@
487 tests
/testpki-privkey.pem
: tests
/pki
/stamp
488 $(AM_V_GEN
)cp tests
/pki
/test-privkey.pem
$@
489 tests
/testpki-cert2.pem
: tests
/pki
/stamp
490 $(AM_V_GEN
)cp tests
/pki
/test2-cert.pem
$@
491 tests
/testpki-req2.pem
: tests
/pki
/stamp
492 $(AM_V_GEN
)cp tests
/pki
/test2-req.pem
$@
493 tests
/testpki-privkey2.pem
: tests
/pki
/stamp
494 $(AM_V_GEN
)cp tests
/pki
/test2-privkey.pem
$@
496 OVS_PKI
= $(SHELL
) $(srcdir)/utilities
/ovs-pki.in
--dir=tests
/pki
--log
=tests
/ovs-pki.log
498 $(AM_V_at
)rm -f tests
/pki
/stamp
499 $(AM_V_at
)rm -rf tests
/pki
500 $(AM_V_GEN
)$(OVS_PKI
) init
&& \
501 $(OVS_PKI
) req
+sign tests
/pki
/test && \
502 $(OVS_PKI
) req
+sign tests
/pki
/test2
&& \
504 CLEANFILES
+= tests
/ovs-pki.log
506 CLEAN_LOCAL
+= clean-pki
508 rm -f tests
/pki
/stamp
512 include tests
/oss-fuzz
/automake.mk