File: recursive

package info (click to toggle)
dq 20230101-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 1,020 kB
  • sloc: ansic: 8,269; makefile: 363; sh: 176; python: 82
file content (73 lines) | stat: -rw-r--r-- 1,584 bytes parent folder | download
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
#!/bin/sh
# 20221231

set -e

dir=`dirname "$0"`

# change directory to $AUTOPKGTEST_TMP
cd "${AUTOPKGTEST_TMP}"

# run fakedns
${dir}/fakedns.py 2>fakednslog &
fakednspid=$!

# wait when dqcache will be ready
dq a localhost 127.0.0.1 1>/dev/null 2>/dev/null

# reconfigure dqcache
echo '127.0.0.2' > '/var/lib/dqcache/root/servers/@'
killall -HUP dqcache
killall -INT dqcache

cleanup() {
  ex=$?
  # kill fakedns
  kill -TERM "${fakednspid}" 1>/dev/null 2>/dev/null || :
  kill -KILL "${fakednspid}" 1>/dev/null 2>/dev/null || :
  cat /var/lib/dqcache/root/servers/.@ > /var/lib/dqcache/root/servers/@ || :
  killall -HUP dqcache || :
  killall -INT dqcache || :
  if [ "${ex}" -ne 0 ]; then
    (
      exec >&2
      echo "fakednslog:"
      cat fakednslog || :
    )
  fi
  rm -f *.log fakednslog
  exit "${ex}"
}
trap "cleanup" EXIT TERM INT

domainnames="a b c d e f g h i j k l m n o p q r s t u v w x y z"

# send queries
for x in ${domainnames}; do
  for y in ${domainnames}; do
    name="$x.$y.$z"
    dq a "${name}" 127.0.0.1 1>"${name}.log" 2>&1
    if ! grep '^answer: ' "${name}.log"; then
      exit 2
    fi
  done
done

# stop fakedns, dqcache should have all queries cached
kill -TERM "${fakednspid}" 1>/dev/null 2>/dev/null || :
kill -KILL "${fakednspid}" 1>/dev/null 2>/dev/null || :

# send queries again and parallel
for x in ${domainnames}; do
  for y in ${domainnames}; do
    (
      name="$x.$y.$z"
      dq a "${name}" 127.0.0.1 1>"${name}.log" 2>&1
      if ! grep '^answer: ' "${name}.log"; then
        exit 3
      fi
    ) &
  done
  wait
done
exit 0