Tree @debian/1.4.14-2 (Download .tar.gz)
- ..
- 00-lint.tpkg
- 01-doc.tpkg
- 02-unittest.tpkg
- 03-testbound.tpkg
- 04-checkconf.tpkg
- 05-asynclook.tpkg
- 06-ianaports.tpkg
- 07-confroot.tpkg
- 08-host-lib.tpkg
- 09-unbound-control.tpkg
- 10-unbound-anchor.tpkg
- acl.rpl
- autotrust_10key.rpl
- autotrust_addpend_2exceed.rpl
- autotrust_addpend_early.rpl
- autotrust_addpend_nosign.rpl
- autotrust_addpend_nosignnew.rpl
- autotrust_addpend_once.rpl
- autotrust_addpend_twice.rpl
- autotrust_init.rpl
- autotrust_init_ds.rpl
- autotrust_init_fail.rpl
- autotrust_init_failsig.rpl
- autotrust_init_legacy.rpl
- autotrust_init_sigs.rpl
- autotrust_init_zsk.rpl
- autotrust_missing.rpl
- autotrust_missing_all.rpl
- autotrust_missing_returns.rpl
- autotrust_probefail.rpl
- autotrust_probefailsig.rpl
- autotrust_revoked_use.rpl
- autotrust_revoked_with_invalid.rpl
- autotrust_revtp.rpl
- autotrust_revtp_read.rpl
- autotrust_revtp_use.rpl
- autotrust_rollalgo.rpl
- autotrust_rollalgo_unknown.rpl
- autotrust_rollover.rpl
- autotrust_valid_use.rpl
- black_data.rpl
- black_dnskey.rpl
- black_ds.rpl
- black_ds_entry.rpl
- black_ent.rpl
- black_key_entry.rpl
- black_prime.rpl
- black_prime_entry.rpl
- common.sh
- dlv_anchor.rpl
- dlv_ask_higher.rpl
- dlv_below_ta.rpl
- dlv_delegation.rpl
- dlv_ds_lookup.rpl
- dlv_insecure.rpl
- dlv_insecure_negcache.rpl
- dlv_keyretry.rpl
- dlv_negnx.rpl
- dlv_optout.rpl
- dlv_unused.rpl
- domain_insec_dlv.rpl
- domain_insec_ds.rpl
- edns_cache.tpkg
- edns_lame.tpkg
- fetch_glue.rpl
- fetch_glue_cname.rpl
- fwd.rpl
- fwd_ancil.tpkg
- fwd_bogus.tpkg
- fwd_cached.rpl
- fwd_capsid.tpkg
- fwd_capsid_fallback.tpkg
- fwd_compress_c00c.tpkg
- fwd_droptoomany.rpl
- fwd_edns_bksec.tpkg
- fwd_edns_probe.tpkg
- fwd_error.rpl
- fwd_jostle.rpl
- fwd_jostle_out.rpl
- fwd_lrudrop.rpl
- fwd_no_edns.tpkg
- fwd_notcached.rpl
- fwd_oneport.tpkg
- fwd_tcp.tpkg
- fwd_tcp_tc.tpkg
- fwd_tcp_tc6.tpkg
- fwd_three.tpkg
- fwd_three_service.tpkg
- fwd_timeout.rpl
- fwd_ttlexpire.tpkg
- fwd_two.rpl
- fwd_udp.tpkg
- fwd_udptmout.tpkg
- fwd_waitudp.tpkg
- fwd_zero.tpkg
- fwddlv_parse.rpl
- host_file.template
- hostsfileosx.tpkg
- iter_class_any.rpl
- iter_cname_cache.rpl
- iter_cname_double.rpl
- iter_cname_nx.rpl
- iter_cname_qnamecopy.rpl
- iter_cycle.rpl
- iter_cycle_noh.rpl
- iter_dnsseclame_bug.rpl
- iter_dnsseclame_ds.rpl
- iter_dnsseclame_ds_ok.rpl
- iter_dnsseclame_ta.rpl
- iter_dnsseclame_ta_ok.rpl
- iter_domain_sale.rpl
- iter_domain_sale_nschange.rpl
- iter_donotq127.rpl
- iter_dp_turnsuseless.rpl
- iter_emptydp.rpl
- iter_emptydp_for_glue.rpl
- iter_fwdstub.rpl
- iter_fwdstubroot.rpl
- iter_got6only.rpl
- iter_hint_lame.rpl
- iter_lame_aaaa.rpl
- iter_lame_noaa.rpl
- iter_lame_nosoa.rpl
- iter_lamescrub.rpl
- iter_mod.rpl
- iter_ns_badip.rpl
- iter_ns_spoof.rpl
- iter_pc_a.rpl
- iter_pc_aaaa.rpl
- iter_pcdiff.rpl
- iter_pcdirect.rpl
- iter_pclame.rpl
- iter_pcname.rpl
- iter_pcnamech.rpl
- iter_pcnamechrec.rpl
- iter_pcnamerec.rpl
- iter_pcttl.rpl
- iter_prefetch.rpl
- iter_prefetch_ns.rpl
- iter_primenoglue.rpl
- iter_privaddr.rpl
- iter_ranoaa_lame.rpl
- iter_reclame_one.rpl
- iter_reclame_two.rpl
- iter_recurse.rpl
- iter_req_qname.rpl
- iter_resolve.rpl
- iter_scrub_cname_an.rpl
- iter_scrub_dname_insec.rpl
- iter_scrub_dname_sec.rpl
- iter_scrub_ns.rpl
- iter_scrub_ns_fwd.rpl
- iter_scrub_ns_side.rpl
- iter_soamin.rpl
- iter_stub_noroot.rpl
- Kexample.com.+003+02854.ds
- Kexample.com.+003+02854.key
- Kexample.com.+003+02854.private
- Kexample.com.+005+16486.ds
- Kexample.com.+005+16486.key
- Kexample.com.+005+16486.private
- Kexample.com.+005+30899.ds
- Kexample.com.+005+30899.key
- Kexample.com.+005+30899.private
- Kexample.com.+005+55582.ds
- Kexample.com.+005+55582.key
- Kexample.com.+005+55582.private
- Kexample.com.+005+60946.ds
- Kexample.com.+005+60946.key
- Kexample.com.+005+60946.private
- Kexample.com.+007+57024.ds
- Kexample.com.+007+57024.key
- Kexample.com.+007+57024.private
- Kexample.com.+008+01443.ds
- Kexample.com.+008+01443.key
- Kexample.com.+008+01443.private
- Kexample.com.+009+48886.ds
- Kexample.com.+009+48886.key
- Kexample.com.+009+48886.private
- Kexample.com.+012+60385.ds
- Kexample.com.+012+60385.key
- Kexample.com.+012+60385.private
- local_nodefault.rpl
- local_nodefault.tpkg
- local_norec.tpkg
- local_nosnoop.tpkg
- local_transparent_sametype.rpl
- local_typetransparent.rpl
- localdata.rpl
- net_signed_servfail.rpl
- nomem_cnametopos.rpl
- pylib.tpkg
- pymod.tpkg
- pymod_thread.tpkg
- refuse_xfr.rpl
- remote-threaded.tpkg
- root_anchor.tpkg
- root_hints.tpkg
- rrset_rettl.rpl
- rrset_untrusted.rpl
- rrset_updated.rpl
- speed_cache.tpkg
- speed_local.tpkg
- stat_timer.tpkg
- stop_nxdomain.rpl
- stream_ssl.tpkg
- stream_tcp.tpkg
- stub_udp.tpkg
- stub_udp6.tpkg
- tcp_sigpipe.tpkg
- test_ds.sha1
- test_nsec3_hash.1
- test_packets.1
- test_packets.2
- test_packets.3
- test_packets.4
- test_packets.5
- test_packets.6
- test_packets.7
- test_packets.8
- test_packets.9
- test_signatures.1
- test_signatures.2
- test_signatures.3
- test_signatures.4
- test_signatures.5
- test_signatures.6
- test_signatures.7
- test_signatures.8
- test_sigs.gost
- test_sigs.hinfo
- test_sigs.revoked
- test_sigs.rsasha256
- test_sigs.rsasha256_draft
- test_sigs.rsasha512_draft
- test_sigs.sha1_and_256
- trust_cname_chain.rpl
- ttl_max.rpl
- ttl_min.rpl
- ttl_msg.rpl
- val_adbit.rpl
- val_adcopy.rpl
- val_anchor_nx.rpl
- val_anchor_nx_nosig.rpl
- val_ans_dsent.rpl
- val_ans_nx.rpl
- val_any.rpl
- val_any_cname.rpl
- val_any_dname.rpl
- val_cname_loop1.rpl
- val_cname_loop2.rpl
- val_cname_loop3.rpl
- val_cnameinsectopos.rpl
- val_cnamenx_dblnsec.rpl
- val_cnamenx_rcodenx.rpl
- val_cnameqtype.rpl
- val_cnametocloser.rpl
- val_cnametocloser_nosig.rpl
- val_cnametodname.rpl
- val_cnametodnametocnametopos.rpl
- val_cnametoinsecure.rpl
- val_cnametonodata.rpl
- val_cnametonsec.rpl
- val_cnametonx.rpl
- val_cnametooptin.rpl
- val_cnametooptout.rpl
- val_cnametopos.rpl
- val_cnametoposnowc.rpl
- val_cnametoposwc.rpl
- val_cnamewctonodata.rpl
- val_cnamewctonx.rpl
- val_cnamewctoposwc.rpl
- val_dnametoolong.rpl
- val_dnametopos.rpl
- val_dnametoposwc.rpl
- val_dnamewc.rpl
- val_ds_afterprime.rpl
- val_ds_cname.rpl
- val_ds_gost.crpl
- val_ds_gost_downgrade.crpl
- val_ds_sha2.crpl
- val_ds_sha2_downgrade.crpl
- val_dsnsec.rpl
- val_entds.rpl
- val_faildnskey.rpl
- val_faildnskey_ok.rpl
- val_fwdds.rpl
- val_keyprefetch.rpl
- val_keyprefetch_verify.rpl
- val_mal_wc.rpl
- val_negcache_ds.rpl
- val_negcache_dssoa.rpl
- val_noadwhennodo.rpl
- val_nodata.rpl
- val_nodata_ent.rpl
- val_nodata_entwc.rpl
- val_nodata_failsig.rpl
- val_nodata_hasdata.rpl
- val_nodata_zonecut.rpl
- val_nodatawc.rpl
- val_nodatawc_badce.rpl
- val_nodatawc_nodeny.rpl
- val_nodatawc_one.rpl
- val_nokeyprime.rpl
- val_nsec3_b1_nameerror.rpl
- val_nsec3_b1_nameerror_noce.rpl
- val_nsec3_b1_nameerror_nonc.rpl
- val_nsec3_b1_nameerror_nowc.rpl
- val_nsec3_b21_nodataent.rpl
- val_nsec3_b21_nodataent_wr.rpl
- val_nsec3_b2_nodata.rpl
- val_nsec3_b2_nodata_nons.rpl
- val_nsec3_b3_optout.rpl
- val_nsec3_b3_optout_negcache.rpl
- val_nsec3_b3_optout_noce.rpl
- val_nsec3_b3_optout_nonc.rpl
- val_nsec3_b4_wild.rpl
- val_nsec3_b4_wild_wr.rpl
- val_nsec3_b5_wcnodata.rpl
- val_nsec3_b5_wcnodata_noce.rpl
- val_nsec3_b5_wcnodata_nonc.rpl
- val_nsec3_b5_wcnodata_nowc.rpl
- val_nsec3_cname_ds.rpl
- val_nsec3_cname_par.rpl
- val_nsec3_cname_sub.rpl
- val_nsec3_iter_high.rpl
- val_nsec3_nodatawccname.rpl
- val_nsec3_nods.rpl
- val_nsec3_nods_badopt.rpl
- val_nsec3_nods_badsig.rpl
- val_nsec3_nods_negcache.rpl
- val_nsec3_nods_soa.rpl
- val_nsec3_optout_ad.rpl
- val_nsec3_wcany.rpl
- val_nsec3_wcany_nodeny.rpl
- val_nx.rpl
- val_nx_nodeny.rpl
- val_nx_nowc.rpl
- val_nx_nsec3_collision.rpl
- val_nx_nsec3_params.rpl
- val_nx_overreach.rpl
- val_pos_truncns.rpl
- val_positive.rpl
- val_positive_nosigs.rpl
- val_positive_wc.rpl
- val_positive_wc_nodeny.rpl
- val_qds_badanc.rpl
- val_qds_oneanc.rpl
- val_qds_twoanc.rpl
- val_refer_unsignadd.rpl
- val_referd.rpl
- val_referglue.rpl
- val_rrsig.rpl
- val_secds.rpl
- val_secds_nosig.rpl
- val_stub_noroot.rpl
- val_stubds.rpl
- val_ta_algo_dnskey.rpl
- val_ta_algo_missing.rpl
- val_twocname.rpl
- val_unalgo_anchor.rpl
- val_unalgo_dlv.rpl
- val_unalgo_ds.rpl
- val_unsec_cname.rpl
- val_unsecds.rpl
- val_unsecds_negcache.rpl
- val_unsecds_qtypeds.rpl
- val_wild_pos.rpl
- version_bind.rpl
- version_bind_hide.rpl
common.sh @debian/1.4.14-2 — raw · history · blame
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 | # common.sh - an include file for commonly used functions for test code. # BSD licensed (see LICENSE file). # # Version 3 # 2011-02-23: get_pcat for PCAT, PCAT_DIFF and PCAT_PRINT defines. # 2011-02-18: ports check on BSD,Solaris. wait_nsd_up. # 2011-02-11: first version. # # include this file from a tpkg script with # . ../common.sh # # overview of functions available: # error x : print error and exit # info x : print info # test_tool_avail x : see if program in path and complain, exit if not. # get_ldns_testns : set LDNS_TESTNS to executable ldns-testns # get_make : set MAKE to gmake or make tool. # get_gcc : set cc or gcc in CC # get_pcat : set PCAT, PCAT_DIFF and PCAT_PRINT executables. # set_doxygen_path : set doxygen path # skip_if_in_list : set SKIP=1 if name in list and tool not available. # get_random_port x : get RND_PORT a sequence of free random port numbers. # wait_server_up : wait on logfile to see when server comes up. # wait_ldns_testns_up : wait for ldns-testns to come up. # wait_unbound_up : wait for unbound to come up. # wait_petal_up : wait for petal to come up. # wait_nsd_up : wait for nsd to come up. # wait_server_up_or_fail: wait for server to come up or print a failure string # kill_pid : kill a server, make sure and wait for it to go down. # print error and exit # $0: name of program # $1: error to printout. error () { echo "$0: error: $1" >&2 exit 1 } # print info # $0: name of program # $1: to printout. info () { echo "$0: info: $1" } # test if 'tool' is available in path and complain otherwise. # $1: tool test_tool_avail () { if test ! -x "`which $1 2>&1`"; then echo No "$1" in path exit 1 fi } # get ldns-testns tool in LDNS_TESTNS variable. get_ldns_testns () { if test -x "`which ldns-testns 2>&1`"; then LDNS_TESTNS=ldns-testns else LDNS_TESTNS=/home/wouter/bin/ldns-testns fi } # get make tool in MAKE variable, gmake is used if present. get_make () { if test -x "`which gmake 2>&1`"; then MAKE=gmake else MAKE=make fi } # get cc tool in CC variable, gcc is used if present. get_gcc () { if test -x "`which gcc 2>&1`"; then CC=gcc else CC=cc fi } # get pcat, pcat-print and pcat-diff get_pcat () { PCAT=`which pcat` PCAT_PRINT=`which pcat-print` PCAT_DIFF=`which pcat-diff` } # set SKIP=1 if the name is in list and tool is not available. # $1: name of package to check. # $2: list of packages that need the tool. # #3: name of the tool required. skip_if_in_list () { if echo $2 | grep $1 >/dev/null; then if test ! -x "`which $3 2>&1`"; then SKIP=1; fi fi } # function to get a number of random port numbers. # $1: number of random ports. # RND_PORT is returned as the starting port number get_random_port () { local plist local cont local collisions local i local MAXCOLLISION=1000 cont=1 collisions=0 while test "$cont" = 1; do #netstat -n -A ip -A ip6 -a | sed -e "s/^.*:\([0-9]*\) .*$/\1/" RND_PORT=$(( $RANDOM + 5354 )) # depending on uname try to check for collisions in port numbers case "`uname`" in linux|Linux) plist=`netstat -n -A ip -A ip6 -a | sed -e 's/^.*:\([0-9]*\) .*$/\1/'` ;; FreeBSD|freebsd|NetBSD|netbsd|OpenBSD|openbsd) plist=`netstat -n -a | grep "^[ut][dc]p[46] " | sed -e 's/^.*\.\([0-9]*\) .*$/\1/'` ;; Solaris|SunOS) plist=`netstat -n -a | sed -e 's/^.*\.\([0-9]*\) .*$/\1/' | grep '^[0-9]*$'` ;; *) plist="" ;; esac cont=0 for (( i=0 ; i < $1 ; i++ )); do if echo "$plist" | grep '^'`expr $i + $RND_PORT`'$' >/dev/null 2>&1; then cont=1; collisions=`expr $collisions + 1` fi done if test $collisions = $MAXCOLLISION; then error "too many collisions getting random port number" fi done } # wait for server to go up, pass <logfilename> <string to watch> # $1 : logfilename # $2 : string to watch for. # exits with failure if it does not come up wait_server_up () { local MAX_UP_TRY=120 local WAIT_THRES=30 local try for (( try=0 ; try <= $MAX_UP_TRY ; try++ )) ; do if test -f $1 && fgrep "$2" $1 >/dev/null; then #echo "done on try $try" break; fi if test $try -eq $MAX_UP_TRY; then echo "Server in $1 did not go up!" cat $1 exit 1; fi if test $try -ge $WAIT_THRES; then sleep 1 fi done } # wait for ldns-testns to come up # $1 : logfilename that is watched. wait_ldns_testns_up () { wait_server_up "$1" "Listening on port" } # wait for unbound to come up # string 'Start of service' in log. # $1 : logfilename that is watched. wait_unbound_up () { wait_server_up "$1" "start of service" } # wait for petal to come up # string 'petal start' in log. # $1 : logfilename that is watched. wait_petal_up () { wait_server_up "$1" "petal start" } # wait for nsd to come up # string nsd start in log. # $1 : logfilename that is watched. wait_nsd_up () { wait_server_up "$1" " started (NSD " } # wait for server to go up, pass <logfilename> <string to watch> <badstr> # $1 : logfile # $2 : success string # $3 : failure string wait_server_up_or_fail () { local MAX_UP_TRY=120 local WAIT_THRES=30 local try for (( try=0 ; try <= $MAX_UP_TRY ; try++ )) ; do if test -f $1 && fgrep "$2" $1 >/dev/null; then echo "done on try $try" break; fi if test -f $1 && fgrep "$3" $1 >/dev/null; then echo "failed on try $try" break; fi if test $try -eq $MAX_UP_TRY; then echo "Server in $1 did not go up!" cat $1 exit 1; fi if test $try -ge $WAIT_THRES; then sleep 1 fi done } # kill a pid, make sure and wait for it to go down. # $1 : pid to kill kill_pid () { local MAX_DOWN_TRY=120 local WAIT_THRES=30 local try kill $1 for (( try=0 ; try <= $MAX_DOWN_TRY ; try++ )) ; do if kill -0 $1 >/dev/null 2>&1; then : else #echo "done on try $try" break; fi if test $try -eq $MAX_DOWN_TRY; then echo "Server in $1 did not go down! Send SIGKILL" kill -9 $1 >/dev/null 2>&1 fi if test $try -ge $WAIT_THRES; then sleep 1 fi # re-send the signal kill $1 >/dev/null 2>&1 done return 0 } # set doxygen path, so that make doc can find doxygen set_doxygen_path () { if test -x '/home/wouter/bin/doxygen'; then export PATH="/home/wouter/bin:$PATH" fi } |