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