xref: /freebsd/contrib/unbound/testcode/do-tests.sh (revision be771a7b7f4580a30d99e41a5bb1b93a385a119d)
1#!/usr/bin/env bash
2. testdata/common.sh
3quiet=0
4if test "$1" = "-q"; then
5	quiet=1
6	tdirarg="-q"
7	shift
8fi
9
10NEED_SPLINT='00-lint.tdir'
11NEED_DOXYGEN='01-doc.tdir'
12NEED_XXD='fwd_compress_c00c.tdir fwd_zero.tdir'
13NEED_NC='fwd_compress_c00c.tdir fwd_zero.tdir'
14NEED_CURL='06-ianaports.tdir root_anchor.tdir'
15NEED_WHOAMI='07-confroot.tdir'
16NEED_IPV6='fwd_ancil.tdir fwd_tcp_tc6.tdir stub_udp6.tdir edns_cache.tdir'
17NEED_NOMINGW='tcp_sigpipe.tdir 07-confroot.tdir 08-host-lib.tdir fwd_ancil.tdir'
18NEED_DNSCRYPT_PROXY='dnscrypt_queries.tdir dnscrypt_queries_chacha.tdir'
19NEED_UNSHARE='acl_interface.tdir proxy_protocol.tdir'
20NEED_REDIS_SERVER='redis_replica.tdir'
21
22# test if dig and ldns-testns are available.
23test_tool_avail "dig"
24test_tool_avail "ldns-testns"
25
26# test for ipv6, uses streamtcp peculiarity.
27if ./streamtcp -f ::1 2>&1 | grep "not supported" >/dev/null 2>&1; then
28	HAVE_IPV6=no
29else
30	HAVE_IPV6=yes
31fi
32
33# test mingw. no signals and so on.
34if uname | grep MINGW >/dev/null; then
35	HAVE_MINGW=yes
36else
37	HAVE_MINGW=no
38fi
39
40# stop tests from notifying systemd, if that is compiled in.
41export -n NOTIFY_SOCKET
42
43cd testdata;
44sh ../testcode/mini_tdir.sh $tdirarg clean
45rm -f .perfstats.txt
46for test in `ls -d *.tdir`; do
47	SKIP=0
48	skip_if_in_list $test "$NEED_SPLINT" "splint"
49	skip_if_in_list $test "$NEED_DOXYGEN" "doxygen"
50	skip_if_in_list $test "$NEED_CURL" "curl"
51	skip_if_in_list $test "$NEED_XXD" "xxd"
52	skip_if_in_list $test "$NEED_NC" "nc"
53	skip_if_in_list $test "$NEED_WHOAMI" "whoami"
54	skip_if_in_list $test "$NEED_DNSCRYPT_PROXY" "dnscrypt-proxy"
55	skip_if_in_list $test "$NEED_UNSHARE" "unshare"
56	skip_if_in_list $test "$NEED_REDIS_SERVER" "redis-server"
57
58	if echo $NEED_IPV6 | grep $test >/dev/null; then
59		if test "$HAVE_IPV6" = no; then
60			SKIP=1;
61		fi
62	fi
63	if echo $NEED_NOMINGW | grep $test >/dev/null; then
64		if test "$HAVE_MINGW" = yes; then
65			SKIP=1;
66		fi
67	fi
68	if test $SKIP -eq 0; then
69		echo $test
70		sh ../testcode/mini_tdir.sh -a ../.. $tdirarg exe $test
71	else
72		echo "skip $test"
73	fi
74done
75sh ../testcode/mini_tdir.sh $tdirarg report
76cat .perfstats.txt
77