]>
Commit | Line | Data |
---|---|---|
bf6096f5 PL |
1 | #!/bin/bash |
2 | ||
3 | ## "upstream" travis functions | |
4 | ANSI_RED="\033[31;1m" | |
5 | ANSI_GREEN="\033[32;1m" | |
6 | ANSI_RESET="\033[0m" | |
7 | ANSI_CLEAR="\033[0K" | |
8 | ||
9 | TRAVIS_TEST_RESULT= | |
10 | TRAVIS_CMD= | |
11 | ||
12 | function travis_cmd() { | |
13 | local assert output display retry timing cmd result | |
14 | ||
15 | cmd=$1 | |
16 | TRAVIS_CMD=$cmd | |
17 | shift | |
18 | ||
19 | while true; do | |
20 | case "$1" in | |
21 | --assert) assert=true; shift ;; | |
22 | --echo) output=true; shift ;; | |
23 | --display) display=$2; shift 2;; | |
24 | --retry) retry=true; shift ;; | |
25 | --timing) timing=true; shift ;; | |
26 | *) break ;; | |
27 | esac | |
28 | done | |
29 | ||
30 | if [[ -n "$timing" ]]; then | |
31 | travis_time_start | |
32 | fi | |
33 | ||
34 | if [[ -n "$output" ]]; then | |
35 | echo "\$ ${display:-$cmd}" | |
36 | fi | |
37 | ||
38 | if [[ -n "$retry" ]]; then | |
39 | travis_retry eval "$cmd" | |
40 | else | |
41 | eval "$cmd" | |
42 | fi | |
43 | result=$? | |
44 | ||
45 | if [[ -n "$timing" ]]; then | |
46 | travis_time_finish | |
47 | fi | |
48 | ||
49 | if [[ -n "$assert" ]]; then | |
50 | travis_assert $result | |
51 | fi | |
52 | ||
53 | return $result | |
54 | } | |
55 | ||
56 | travis_time_start() { | |
57 | travis_timer_id=$(printf %08x $(( RANDOM * RANDOM ))) | |
58 | travis_start_time=$(travis_nanoseconds) | |
59 | echo -en "travis_time:start:$travis_timer_id\r${ANSI_CLEAR}" | |
60 | } | |
61 | ||
62 | travis_time_finish() { | |
63 | local result=$? | |
64 | travis_end_time=$(travis_nanoseconds) | |
65 | local duration=$(($travis_end_time-$travis_start_time)) | |
66 | echo -en "\ntravis_time:end:$travis_timer_id:start=$travis_start_time,finish=$travis_end_time,duration=$duration\r${ANSI_CLEAR}" | |
67 | return $result | |
68 | } | |
69 | ||
70 | function travis_nanoseconds() { | |
71 | local cmd="date" | |
72 | local format="+%s%N" | |
73 | local os=$(uname) | |
74 | ||
75 | if hash gdate > /dev/null 2>&1; then | |
76 | cmd="gdate" # use gdate if available | |
77 | elif [[ "$os" = Darwin ]]; then | |
78 | format="+%s000000000" # fallback to second precision on darwin (does not support %N) | |
79 | fi | |
80 | ||
81 | $cmd -u $format | |
82 | } | |
83 | ||
84 | travis_assert() { | |
85 | local result=${1:-$?} | |
86 | if [ $result -ne 0 ]; then | |
87 | echo -e "\n${ANSI_RED}The command \"$TRAVIS_CMD\" failed and exited with $result during $TRAVIS_STAGE.${ANSI_RESET}\n\nYour build has been stopped." | |
88 | travis_terminate 2 | |
89 | fi | |
90 | } | |
91 | ||
92 | travis_result() { | |
93 | local result=$1 | |
94 | export TRAVIS_TEST_RESULT=$(( ${TRAVIS_TEST_RESULT:-0} | $(($result != 0)) )) | |
95 | ||
96 | if [ $result -eq 0 ]; then | |
97 | echo -e "\n${ANSI_GREEN}The command \"$TRAVIS_CMD\" exited with $result.${ANSI_RESET}" | |
98 | else | |
99 | echo -e "\n${ANSI_RED}The command \"$TRAVIS_CMD\" exited with $result.${ANSI_RESET}" | |
100 | fi | |
101 | } | |
102 | ||
103 | travis_terminate() { | |
104 | pkill -9 -P $$ &> /dev/null || true | |
105 | exit $1 | |
106 | } | |
107 | ||
108 | travis_wait() { | |
109 | local timeout=$1 | |
110 | ||
111 | if [[ $timeout =~ ^[0-9]+$ ]]; then | |
112 | # looks like an integer, so we assume it's a timeout | |
113 | shift | |
114 | else | |
115 | # default value | |
116 | timeout=20 | |
117 | fi | |
118 | ||
119 | local cmd="$@" | |
120 | local log_file=travis_wait_$$.log | |
121 | ||
122 | $cmd &>$log_file & | |
123 | local cmd_pid=$! | |
124 | ||
125 | travis_jigger $! $timeout $cmd & | |
126 | local jigger_pid=$! | |
127 | local result | |
128 | ||
129 | { | |
130 | wait $cmd_pid 2>/dev/null | |
131 | result=$? | |
132 | ps -p$jigger_pid &>/dev/null && kill $jigger_pid | |
133 | } | |
134 | ||
135 | if [ $result -eq 0 ]; then | |
136 | echo -e "\n${ANSI_GREEN}The command $cmd exited with $result.${ANSI_RESET}" | |
137 | else | |
138 | echo -e "\n${ANSI_RED}The command $cmd exited with $result.${ANSI_RESET}" | |
139 | fi | |
140 | ||
141 | echo -e "\n${ANSI_GREEN}Log:${ANSI_RESET}\n" | |
142 | cat $log_file | |
143 | ||
144 | return $result | |
145 | } | |
146 | ||
147 | travis_jigger() { | |
148 | # helper method for travis_wait() | |
149 | local cmd_pid=$1 | |
150 | shift | |
151 | local timeout=$1 # in minutes | |
152 | shift | |
153 | local count=0 | |
154 | ||
155 | # clear the line | |
156 | echo -e "\n" | |
157 | ||
158 | while [ $count -lt $timeout ]; do | |
159 | count=$(($count + 1)) | |
160 | echo -ne "Still running ($count of $timeout): $@\r" | |
161 | sleep 60 | |
162 | done | |
163 | ||
164 | echo -e "\n${ANSI_RED}Timeout (${timeout} minutes) reached. Terminating \"$@\"${ANSI_RESET}\n" | |
165 | kill -9 $cmd_pid | |
166 | } | |
167 | ||
168 | travis_retry() { | |
169 | local result=0 | |
170 | local count=1 | |
171 | while [ $count -le 3 ]; do | |
172 | [ $result -ne 0 ] && { | |
173 | echo -e "\n${ANSI_RED}The command \"$@\" failed. Retrying, $count of 3.${ANSI_RESET}\n" >&2 | |
174 | } | |
175 | "$@" | |
176 | result=$? | |
177 | [ $result -eq 0 ] && break | |
178 | count=$(($count + 1)) | |
179 | sleep 1 | |
180 | done | |
181 | ||
182 | [ $count -gt 3 ] && { | |
183 | echo -e "\n${ANSI_RED}The command \"$@\" failed 3 times.${ANSI_RESET}\n" >&2 | |
184 | } | |
185 | ||
186 | return $result | |
187 | } | |
188 | ||
189 | travis_fold() { | |
190 | local action=$1 | |
191 | local name=$2 | |
192 | echo -en "travis_fold:${action}:${name}\r${ANSI_CLEAR}" | |
193 | } | |
194 | ||
195 | decrypt() { | |
196 | echo $1 | base64 -d | openssl rsautl -decrypt -inkey ~/.ssh/id_rsa.repo | |
197 | } | |
198 | ||
199 | ||
200 | run() { | |
201 | travis_cmd "$1" --echo --assert | |
202 | } | |
203 | ||
204 | install_auth() { | |
205 | # pkcs11 build requirements | |
206 | run "sudo apt-get -qq --no-install-recommends install \ | |
207 | libp11-kit-dev" | |
208 | ||
209 | # geoip-backend | |
210 | run "sudo apt-get -qq --no-install-recommends install \ | |
211 | libgeoip-dev \ | |
212 | libyaml-cpp-dev" | |
213 | ||
214 | # ldap-backend | |
215 | run "sudo apt-get -qq --no-install-recommends install \ | |
216 | libldap-dev" | |
217 | ||
218 | # opendbx-backend | |
219 | run "sudo apt-get -qq --no-install-recommends install \ | |
220 | libopendbx1-dev \ | |
221 | libopendbx1-sqlite3" | |
222 | ||
223 | # remote-backend build requirements | |
224 | run "sudo apt-get -qq --no-install-recommends install \ | |
225 | libzmq3-dev" | |
226 | ||
3a435d2e PD |
227 | # godbc-backend |
228 | run "sudo apt-get -qq --no-install-recommends install \ | |
229 | libsqliteodbc" | |
230 | ||
bf6096f5 PL |
231 | # authoritative test requirements / setup |
232 | run "sudo apt-get -qq --no-install-recommends install \ | |
233 | bind9utils \ | |
234 | ldnsutils \ | |
235 | libnet-dns-perl \ | |
236 | moreutils \ | |
237 | unbound-host \ | |
238 | validns \ | |
239 | default-jre \ | |
240 | jq" | |
241 | ||
242 | run "cd .." | |
6b621619 | 243 | run "wget https://www.verisignlabs.com/dnssec-tools/packages/jdnssec-tools-0.12.tar.gz" |
bf6096f5 PL |
244 | run "sudo tar xfz jdnssec-tools-0.12.tar.gz --strip-components=1 -C /" |
245 | run "cd pdns" | |
246 | ||
247 | # pkcs11 test requirements / setup | |
248 | run "sudo apt-get -qq --no-install-recommends install \ | |
249 | p11-kit \ | |
250 | softhsm" | |
251 | run "sudo mkdir -p /etc/pkcs11/modules/" | |
252 | run "sudo cp -f regression-tests/softhsm.mod /etc/pkcs11/modules/softhsm.module" | |
253 | run "sudo cp -f regression-tests/softhsm.conf /etc/softhsm/softhsm.conf" | |
254 | run "sudo chmod 0755 /etc/softhsm/" | |
255 | run "sudo chmod 0644 /etc/softhsm/softhsm.conf" | |
256 | run "sudo chmod 0777 /var/lib/softhsm" | |
257 | run "p11-kit -l" # ensure it's ok | |
258 | ||
259 | # bind-backend tests requirements | |
260 | run "sudo apt-get -qq --no-install-recommends install \ | |
261 | alien" | |
262 | run "cd .." | |
263 | run "wget ftp://ftp.nominum.com/pub/nominum/dnsperf/2.0.0.0/dnsperf-2.0.0.0-1-rhel-6-x86_64.tar.gz" | |
264 | run "tar xzvf dnsperf-2.0.0.0-1-rhel-6-x86_64.tar.gz" | |
265 | run "fakeroot alien --to-deb dnsperf-2.0.0.0-1/dnsperf-2.0.0.0-1.el6.x86_64.rpm" | |
266 | run "sudo dpkg -i dnsperf_2.0.0.0-2_amd64.deb" | |
267 | run "cd pdns" | |
268 | ||
269 | # geoip-backend test requirements / setup | |
270 | run "sudo apt-get -qq --no-install-recommends install \ | |
271 | geoip-database" | |
272 | ||
273 | # gmysql-backend test requirements | |
d004b14c RG |
274 | # as of 2016/12/01, mysql-5.6 is now installed in the default travis image |
275 | # see https://github.com/travis-ci/travis-ci/issues/6961 | |
276 | #run "sudo apt-get -qq --no-install-recommends install \ | |
277 | # mysql-server" | |
bf6096f5 PL |
278 | |
279 | # godbc-backend test setup | |
3a435d2e PD |
280 | run 'echo -e "[pdns-sqlite3-1]\nDriver = SQLite3\nDatabase = ${PWD}/regression-tests/pdns.sqlite3\n\n[pdns-sqlite3-2]\nDriver = SQLite3\nDatabase = ${PWD}/regression-tests/pdns.sqlite32\n" > ${HOME}/.odbc.ini' |
281 | run 'echo ${HOME}/.odbc.ini' | |
282 | run 'cat ${HOME}/.odbc.ini' | |
bf6096f5 PL |
283 | |
284 | # ldap-backend test setup | |
285 | run "sudo apt-get -qq --no-install-recommends install \ | |
286 | slapd \ | |
287 | ldap-utils" | |
288 | run "mkdir /tmp/ldap-dns" | |
289 | run "pushd /tmp/ldap-dns" | |
290 | run 'for schema in /etc/ldap/schema/{core,cosine}.schema ${TRAVIS_BUILD_DIR}/modules/ldapbackend/{dnsdomain2,pdns-domaininfo}.schema ; do echo include $schema ; done > ldap.conf' | |
291 | run "mkdir slapd.d" | |
292 | run "slaptest -f ldap.conf -F slapd.d" | |
293 | run "sudo cp slapd.d/cn=config/cn=schema/cn={*dns*.ldif /etc/ldap/slapd.d/cn=config/cn=schema/" | |
294 | run "sudo chown -R openldap:openldap /etc/ldap/slapd.d/" | |
295 | run "sudo service slapd restart" | |
296 | run "popd" | |
297 | run "sudo -u openldap mkdir -p /var/lib/ldap/powerdns" | |
298 | run "sudo ldapadd -Y EXTERNAL -H ldapi:/// -f ./modules/ldapbackend/testfiles/add.ldif" | |
299 | ||
300 | # remote-backend tests requirements | |
301 | run "sudo apt-get -qq --no-install-recommends install \ | |
302 | ruby-json \ | |
303 | rubygems-integration \ | |
304 | socat" | |
305 | run "gem install bundler --no-rdoc --no-ri" | |
306 | run "cd modules/remotebackend" | |
307 | run "ruby -S bundle install" | |
308 | run "cd ../.." | |
309 | ||
310 | # tinydns | |
311 | run "sudo apt-get -qq --no-install-recommends install \ | |
312 | libcdb-dev" | |
313 | ||
314 | # No backend | |
315 | run "sudo apt-get -qq --no-install-recommends install \ | |
316 | authbind \ | |
317 | faketime" | |
318 | run "sudo touch /etc/authbind/byport/53" | |
319 | run "sudo chmod 755 /etc/authbind/byport/53" | |
320 | } | |
321 | ||
322 | install_docs() { | |
323 | ### documentation requirements | |
324 | run "sudo apt-get -qq --no-install-recommends install \ | |
325 | pandoc \ | |
326 | xmlto" | |
327 | ||
328 | # documentation test requirements | |
329 | run "virtualenv $HOME/.venv" | |
330 | run "source $HOME/.venv/bin/activate" | |
784247e7 | 331 | run "pip install -q pandocfilters==1.2.3 mkdocs==0.14 linkchecker==9.3 click==5.1 requests==2.9.2" |
bf6096f5 PL |
332 | run "deactivate" |
333 | } | |
334 | ||
335 | install_recursor() { | |
336 | # recursor test requirements / setup | |
337 | run "sudo apt-get -qq --no-install-recommends install \ | |
338 | authbind \ | |
339 | daemontools \ | |
340 | libbotan-1.10-0 \ | |
cb54e9b5 | 341 | libfaketime \ |
bf6096f5 PL |
342 | liblua5.2-0 \ |
343 | moreutils \ | |
344 | jq" | |
345 | run "cd .." | |
6b621619 | 346 | run "wget https://s3.amazonaws.com/alexa-static/top-1m.csv.zip" |
bf6096f5 PL |
347 | run "unzip top-1m.csv.zip -d ./pdns/regression-tests" |
348 | PDNS_SERVER_VERSION="0.0.880gcb54743-1pdns" | |
349 | run "wget https://downloads.powerdns.com/autobuilt/auth/deb/$PDNS_SERVER_VERSION.trusty-amd64/pdns-server_$PDNS_SERVER_VERSION.trusty_amd64.deb" | |
350 | run "wget https://downloads.powerdns.com/autobuilt/auth/deb/$PDNS_SERVER_VERSION.trusty-amd64/pdns-tools_$PDNS_SERVER_VERSION.trusty_amd64.deb" | |
351 | run "sudo dpkg -i pdns-server_$PDNS_SERVER_VERSION.trusty_amd64.deb pdns-tools_$PDNS_SERVER_VERSION.trusty_amd64.deb" | |
e07dae82 | 352 | run "sudo service pdns stop" |
bf6096f5 PL |
353 | run 'for suffix in {1..40}; do sudo /sbin/ip addr add 10.0.3.$suffix/32 dev lo; done' |
354 | run "sudo touch /etc/authbind/byport/53" | |
355 | run "sudo chmod 755 /etc/authbind/byport/53" | |
356 | run "cd pdns" | |
357 | } | |
358 | ||
359 | install_dnsdist() { | |
360 | printf "" | |
361 | } | |
362 | ||
363 | build_auth() { | |
364 | run "./bootstrap" | |
365 | # Build without --enable-botan1.10 option, Botan/SoftHSM conflict #2496 | |
366 | run "CFLAGS='-O1' CXXFLAGS='-O1' ./configure \ | |
3a435d2e | 367 | --with-dynmodules='bind gmysql geoip gpgsql gsqlite3 ldap lua mydns opendbx pipe random remote tinydns godbc' \ |
bf6096f5 PL |
368 | --with-modules='' \ |
369 | --with-sqlite3 \ | |
370 | --enable-libsodium \ | |
371 | --enable-experimental-pkcs11 \ | |
372 | --enable-remotebackend-zeromq \ | |
373 | --enable-tools \ | |
374 | --enable-unit-tests \ | |
375 | --enable-backend-unit-tests \ | |
376 | --disable-dependency-tracking \ | |
377 | --disable-silent-rules" | |
378 | run "make -k dist" | |
379 | run "make -k -j3" | |
380 | run "make -k install DESTDIR=/tmp/pdns-install-dir" | |
381 | run "find /tmp/pdns-install-dir -ls" | |
382 | } | |
383 | ||
384 | build_recursor() { | |
385 | export PDNS_RECURSOR_DIR=$HOME/pdns_recursor | |
386 | # distribution build | |
387 | run "./build-scripts/dist-recursor" | |
388 | run "cd pdns/recursordist" | |
389 | run "tar xf pdns-recursor-*.tar.bz2" | |
390 | run "rm -f pdns-recursor-*.tar.bz2" | |
391 | run "cd pdns-recursor-*" | |
392 | run "CFLAGS='-O1' CXXFLAGS='-O1' ./configure \ | |
393 | --prefix=$PDNS_RECURSOR_DIR \ | |
394 | --disable-silent-rules" | |
395 | run "make -k -j3" | |
396 | run "make install" | |
397 | run "find $PDNS_RECURSOR_DIR -ls" | |
398 | run "cd ../../.." | |
399 | } | |
400 | ||
401 | build_dnsdist(){ | |
402 | run "./build-scripts/dist-dnsdist" | |
403 | run "cd pdns/dnsdistdist" | |
404 | run "tar xf dnsdist*.tar.bz2" | |
405 | run "cd dnsdist-*" | |
406 | run "CFLAGS='-O1' CXXFLAGS='-O1' ./configure \ | |
407 | --enable-unit-tests \ | |
408 | --enable-libsodium \ | |
409 | --enable-dnscrypt \ | |
410 | --prefix=$HOME/dnsdist \ | |
411 | --disable-silent-rules" | |
412 | run "make -k -j3" | |
413 | run "./testrunner" | |
414 | run "make install" | |
415 | run "cd ../../.." | |
416 | run "find $HOME/dnsdist -ls" | |
417 | run "rm -rf pdns/dnsdistdist/dnsdist-*/" | |
418 | ||
419 | } | |
420 | ||
421 | build_docs() { | |
422 | run "./bootstrap" | |
423 | run "source $HOME/.venv/bin/activate" | |
424 | run "./configure --disable-dependency-tracking --with-modules='' --with-dyn-modules=''" | |
425 | run "make -C docs" | |
426 | run "deactivate" | |
427 | } | |
428 | ||
429 | test_auth() { | |
430 | run "make -j3 check" | |
431 | run "test -f pdns/test-suite.log && cat pdns/test-suite.log || true" | |
432 | run "test -f modules/remotebackend/test-suite.log && cat modules/remotebackend/test-suite.log || true" | |
433 | ||
434 | #DNSName - make -k -j3 -C pdns $(grep '(EXEEXT):' pdns/Makefile | cut -f1 -d\$ | grep -E -v 'dnsdist|calidns') | |
435 | run 'make -k -j3 -C pdns $(grep "(EXEEXT):" pdns/Makefile | cut -f1 -d\$ | grep -E -v "dnspcap2protobuf|dnsdist|calidns|speedtest")' | |
436 | ||
437 | run "cd pdns" | |
438 | run "./pdnsutil test-algorithms" | |
439 | run "cd .." | |
440 | ||
441 | run "cd regression-tests" | |
442 | ||
443 | run "./timestamp ./start-test-stop 5300 ldap-tree" | |
444 | run "./timestamp ./start-test-stop 5300 ldap-simple" | |
445 | run "./timestamp ./start-test-stop 5300 ldap-strict" | |
446 | ||
447 | run "./timestamp ./start-test-stop 5300 bind-both" | |
448 | run "./timestamp ./start-test-stop 5300 bind-dnssec-both" | |
449 | run "./timestamp ./start-test-stop 5300 bind-dnssec-nsec3-both" | |
450 | run "./timestamp ./start-test-stop 5300 bind-dnssec-nsec3-optout-both" | |
451 | run "./timestamp ./start-test-stop 5300 bind-dnssec-nsec3-narrow" | |
452 | run "./timestamp ./start-test-stop 5300 bind-hybrid-nsec3" | |
453 | #ecdsa - ./timestamp ./start-test-stop 5300 bind-dnssec-pkcs11 | |
454 | ||
455 | run "export geoipregion=oc geoipregionip=1.2.3.4" | |
456 | run "./timestamp ./start-test-stop 5300 geoip" | |
457 | run "./timestamp ./start-test-stop 5300 geoip-nsec3-narrow" | |
458 | ||
459 | run "./timestamp ./start-test-stop 5300 gmysql-nodnssec-both" | |
460 | run "./timestamp ./start-test-stop 5300 gmysql-both" | |
461 | run "./timestamp ./start-test-stop 5300 gmysql-nsec3-both" | |
462 | run "./timestamp ./start-test-stop 5300 gmysql-nsec3-optout-both" | |
463 | run "./timestamp ./start-test-stop 5300 gmysql-nsec3-narrow" | |
464 | ||
465 | run "export GODBC_SQLITE3_DSN=pdns-sqlite3-1" | |
3a435d2e | 466 | run "./timestamp ./start-test-stop 5300 godbc_sqlite3-nsec3" |
bf6096f5 PL |
467 | |
468 | run "./timestamp ./start-test-stop 5300 gpgsql-nodnssec-both" | |
469 | run "./timestamp ./start-test-stop 5300 gpgsql-both" | |
470 | run "./timestamp ./start-test-stop 5300 gpgsql-nsec3-both" | |
471 | run "./timestamp ./start-test-stop 5300 gpgsql-nsec3-optout-both" | |
472 | run "./timestamp ./start-test-stop 5300 gpgsql-nsec3-narrow" | |
473 | ||
474 | run "./timestamp ./start-test-stop 5300 gsqlite3-nodnssec-both" | |
475 | run "./timestamp ./start-test-stop 5300 gsqlite3-both" | |
476 | run "./timestamp ./start-test-stop 5300 gsqlite3-nsec3-both" | |
477 | run "./timestamp ./start-test-stop 5300 gsqlite3-nsec3-optout-both" | |
478 | run "./timestamp ./start-test-stop 5300 gsqlite3-nsec3-narrow" | |
479 | ||
480 | run "./timestamp ./start-test-stop 5300 mydns" | |
481 | ||
482 | run "./timestamp ./start-test-stop 5300 opendbx-sqlite3" | |
483 | ||
484 | run "./timestamp ./start-test-stop 5300 remotebackend-pipe" | |
485 | run "./timestamp ./start-test-stop 5300 remotebackend-pipe-dnssec" | |
486 | run "./timestamp ./start-test-stop 5300 remotebackend-unix" | |
487 | run "./timestamp ./start-test-stop 5300 remotebackend-unix-dnssec" | |
488 | run "./timestamp ./start-test-stop 5300 remotebackend-http" | |
489 | run "./timestamp ./start-test-stop 5300 remotebackend-http-dnssec" | |
490 | run "./timestamp ./start-test-stop 5300 remotebackend-zeromq" | |
491 | run "./timestamp ./start-test-stop 5300 remotebackend-zeromq-dnssec" | |
492 | ||
493 | run "./timestamp ./start-test-stop 5300 tinydns" | |
494 | run "cd .." | |
495 | ||
496 | run "cd regression-tests.rootzone" | |
497 | run "./timestamp ./start-test-stop 5300 bind-both" | |
498 | run "./timestamp ./start-test-stop 5300 bind-dnssec-both" | |
499 | run "./timestamp ./start-test-stop 5300 bind-dnssec-nsec3-both" | |
500 | run "./timestamp ./start-test-stop 5300 bind-dnssec-nsec3-optout-both" | |
501 | run "./timestamp ./start-test-stop 5300 bind-dnssec-nsec3-narrow" | |
502 | run "./timestamp ./start-test-stop 5300 bind-hybrid-nsec3" | |
503 | ||
504 | run "./timestamp ./start-test-stop 5300 gmysql-nodnssec-both" | |
505 | run "./timestamp ./start-test-stop 5300 gmysql-both" | |
506 | run "./timestamp ./start-test-stop 5300 gmysql-nsec3-both" | |
507 | run "./timestamp ./start-test-stop 5300 gmysql-nsec3-optout-both" | |
508 | run "./timestamp ./start-test-stop 5300 gmysql-nsec3-narrow" | |
509 | ||
510 | run "./timestamp ./start-test-stop 5300 gpgsql-nodnssec-both" | |
511 | run "./timestamp ./start-test-stop 5300 gpgsql-both" | |
512 | run "./timestamp ./start-test-stop 5300 gpgsql-nsec3-both" | |
513 | run "./timestamp ./start-test-stop 5300 gpgsql-nsec3-optout-both" | |
514 | run "./timestamp ./start-test-stop 5300 gpgsql-nsec3-narrow" | |
515 | ||
516 | run "./timestamp ./start-test-stop 5300 gsqlite3-nodnssec-both" | |
517 | run "./timestamp ./start-test-stop 5300 gsqlite3-both" | |
518 | run "./timestamp ./start-test-stop 5300 gsqlite3-nsec3-both" | |
519 | run "./timestamp ./start-test-stop 5300 gsqlite3-nsec3-optout-both" | |
520 | run "./timestamp ./start-test-stop 5300 gsqlite3-nsec3-narrow" | |
521 | ||
522 | run "cd .." | |
523 | ||
524 | ### api ### | |
525 | run "cd regression-tests.api" | |
526 | run "./runtests authoritative" | |
527 | run "cd .." | |
528 | ||
529 | ### no backend tests ### | |
530 | run "cd regression-tests.nobackend/" | |
531 | run "./runtests" | |
532 | run "test ! -s ./failed_tests" | |
533 | run "cd .." | |
534 | ||
535 | run "rm -f regression-tests/zones/*-slave.*" #FIXME | |
536 | } | |
537 | ||
538 | test_recursor() { | |
539 | export PDNSRECURSOR="${PDNS_RECURSOR_DIR}/sbin/pdns_recursor" | |
bf6096f5 PL |
540 | export DNSBULKTEST="/usr/bin/dnsbulktest" |
541 | export RECCONTROL="${PDNS_RECURSOR_DIR}/bin/rec_control" | |
7568b07d PL |
542 | run "./build-scripts/test-recursor" |
543 | export RECURSOR="${PDNSRECURSOR}" | |
bf6096f5 PL |
544 | run "cd regression-tests" |
545 | run "THRESHOLD=90 TRACE=no ./timestamp ./recursor-test 5300 25000" | |
546 | run "cd .." | |
7568b07d | 547 | |
bf6096f5 PL |
548 | run "cd regression-tests.api" |
549 | run "./runtests recursor" | |
550 | run "cd .." | |
551 | } | |
552 | ||
553 | test_docs() { | |
554 | run "source $HOME/.venv/bin/activate" | |
555 | run "make -C docs check-links" | |
556 | run " deactivate" | |
557 | } | |
558 | ||
559 | test_dnsdist(){ | |
560 | run "cd regression-tests.dnsdist" | |
561 | run "DNSDISTBIN=$HOME/dnsdist/bin/dnsdist ./runtests -v" | |
562 | run "rm -f ./DNSCryptResolver.cert ./DNSCryptResolver.key" | |
563 | run "cd .." | |
564 | } | |
565 | ||
566 | test_repo(){ | |
567 | run "git status" | |
568 | run "git status | grep -q clean" | |
569 | } | |
570 | ||
571 | # global build requirements | |
572 | run "sudo apt-get -qq --no-install-recommends install \ | |
573 | libboost-all-dev \ | |
574 | liblua5.1-dev \ | |
575 | libedit-dev \ | |
0a4a38ab PL |
576 | libprotobuf-dev \ |
577 | pandoc\ | |
578 | protobuf-compiler" | |
bf6096f5 PL |
579 | |
580 | run "cd .." | |
581 | run "wget http://ppa.launchpad.net/kalon33/gamesgiroll/ubuntu/pool/main/libs/libsodium/libsodium-dev_1.0.3-1~ppa14.04+1_amd64.deb" | |
582 | run "wget http://ppa.launchpad.net/kalon33/gamesgiroll/ubuntu/pool/main/libs/libsodium/libsodium13_1.0.3-1~ppa14.04+1_amd64.deb" | |
583 | run "sudo dpkg -i libsodium-dev_1.0.3-1~ppa14.04+1_amd64.deb libsodium13_1.0.3-1~ppa14.04+1_amd64.deb" | |
584 | run "cd pdns" | |
585 | ||
586 | install_$PDNS_BUILD_PRODUCT | |
587 | ||
588 | build_$PDNS_BUILD_PRODUCT | |
589 | ||
590 | test_$PDNS_BUILD_PRODUCT | |
591 | ||
d2a4a399 | 592 | if [ $PDNS_BUILD_PRODUCT == "auth" ]; then |
bf6096f5 PL |
593 | test_repo |
594 | fi |