1712b2f30Ssthen#!/usr/bin/env bash
2712b2f30Ssthen. testdata/common.sh
3a6cc1574Ssthenquiet=0
4a6cc1574Ssthenif test "$1" = "-q"; then
5a6cc1574Ssthen	quiet=1
6a6cc1574Ssthen	tdirarg="-q"
7a6cc1574Ssthen	shift
8a6cc1574Ssthenfi
9712b2f30Ssthen
10712b2f30SsthenNEED_SPLINT='00-lint.tdir'
11712b2f30SsthenNEED_DOXYGEN='01-doc.tdir'
12712b2f30SsthenNEED_XXD='fwd_compress_c00c.tdir fwd_zero.tdir'
13712b2f30SsthenNEED_NC='fwd_compress_c00c.tdir fwd_zero.tdir'
14712b2f30SsthenNEED_CURL='06-ianaports.tdir root_anchor.tdir'
15712b2f30SsthenNEED_WHOAMI='07-confroot.tdir'
16712b2f30SsthenNEED_IPV6='fwd_ancil.tdir fwd_tcp_tc6.tdir stub_udp6.tdir edns_cache.tdir'
17712b2f30SsthenNEED_NOMINGW='tcp_sigpipe.tdir 07-confroot.tdir 08-host-lib.tdir fwd_ancil.tdir'
18712b2f30SsthenNEED_DNSCRYPT_PROXY='dnscrypt_queries.tdir dnscrypt_queries_chacha.tdir'
19*0e9b6f9fSsthenNEED_UNSHARE='acl_interface.tdir proxy_protocol.tdir'
20712b2f30Ssthen
21712b2f30Ssthen# test if dig and ldns-testns are available.
22712b2f30Ssthentest_tool_avail "dig"
23712b2f30Ssthentest_tool_avail "ldns-testns"
24712b2f30Ssthen
25712b2f30Ssthen# test for ipv6, uses streamtcp peculiarity.
26712b2f30Ssthenif ./streamtcp -f ::1 2>&1 | grep "not supported" >/dev/null 2>&1; then
27712b2f30Ssthen	HAVE_IPV6=no
28712b2f30Ssthenelse
29712b2f30Ssthen	HAVE_IPV6=yes
30712b2f30Ssthenfi
31712b2f30Ssthen
32712b2f30Ssthen# test mingw. no signals and so on.
33712b2f30Ssthenif uname | grep MINGW >/dev/null; then
34712b2f30Ssthen	HAVE_MINGW=yes
35712b2f30Ssthenelse
36712b2f30Ssthen	HAVE_MINGW=no
37712b2f30Ssthenfi
38712b2f30Ssthen
3972f58708Ssthen# stop tests from notifying systemd, if that is compiled in.
4072f58708Ssthenexport -n NOTIFY_SOCKET
4172f58708Ssthen
42712b2f30Ssthencd testdata;
43a6cc1574Ssthensh ../testcode/mini_tdir.sh $tdirarg clean
44712b2f30Ssthenrm -f .perfstats.txt
45712b2f30Ssthenfor test in `ls -d *.tdir`; do
46712b2f30Ssthen	SKIP=0
47712b2f30Ssthen	skip_if_in_list $test "$NEED_SPLINT" "splint"
48712b2f30Ssthen	skip_if_in_list $test "$NEED_DOXYGEN" "doxygen"
49712b2f30Ssthen	skip_if_in_list $test "$NEED_CURL" "curl"
50712b2f30Ssthen	skip_if_in_list $test "$NEED_XXD" "xxd"
51712b2f30Ssthen	skip_if_in_list $test "$NEED_NC" "nc"
52712b2f30Ssthen	skip_if_in_list $test "$NEED_WHOAMI" "whoami"
53712b2f30Ssthen	skip_if_in_list $test "$NEED_DNSCRYPT_PROXY" "dnscrypt-proxy"
54*0e9b6f9fSsthen	skip_if_in_list $test "$NEED_UNSHARE" "unshare"
55712b2f30Ssthen
56712b2f30Ssthen	if echo $NEED_IPV6 | grep $test >/dev/null; then
57712b2f30Ssthen		if test "$HAVE_IPV6" = no; then
58712b2f30Ssthen			SKIP=1;
59712b2f30Ssthen		fi
60712b2f30Ssthen	fi
61712b2f30Ssthen	if echo $NEED_NOMINGW | grep $test >/dev/null; then
62712b2f30Ssthen		if test "$HAVE_MINGW" = yes; then
63712b2f30Ssthen			SKIP=1;
64712b2f30Ssthen		fi
65712b2f30Ssthen	fi
66712b2f30Ssthen	if test $SKIP -eq 0; then
67712b2f30Ssthen		echo $test
68a6cc1574Ssthen		sh ../testcode/mini_tdir.sh -a ../.. $tdirarg exe $test
69712b2f30Ssthen	else
70712b2f30Ssthen		echo "skip $test"
71712b2f30Ssthen	fi
72712b2f30Ssthendone
73a6cc1574Ssthensh ../testcode/mini_tdir.sh $tdirarg report
74712b2f30Ssthencat .perfstats.txt
75