3 ## "upstream" travis functions
5 ANSI_GREEN
="\033[32;1m"
12 function travis_cmd
() {
13 local assert output display retry timing cmd result
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 ;;
30 if [[ -n "$timing" ]]; then
34 if [[ -n "$output" ]]; then
35 echo "\$ ${display:-$cmd}"
38 if [[ -n "$retry" ]]; then
39 travis_retry
eval "$cmd"
45 if [[ -n "$timing" ]]; then
49 if [[ -n "$assert" ]]; then
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}"
62 travis_time_finish
() {
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}"
70 function travis_nanoseconds
() {
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)
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."
94 export TRAVIS_TEST_RESULT
=$
(( ${TRAVIS_TEST_RESULT:-0} | $
(($result != 0)) ))
96 if [ $result -eq 0 ]; then
97 echo -e "\n${ANSI_GREEN}The command \"$TRAVIS_CMD\" exited with $result.${ANSI_RESET}"
99 echo -e "\n${ANSI_RED}The command \"$TRAVIS_CMD\" exited with $result.${ANSI_RESET}"
104 pkill
-9 -P $$
&> /dev
/null || true
111 if [[ $timeout =~ ^
[0-9]+$
]]; then
112 # looks like an integer, so we assume it's a timeout
120 local log_file
=travis_wait_$$.log
125 travis_jigger $
! $timeout $cmd &
130 wait $cmd_pid 2>/dev
/null
132 ps
-p$jigger_pid &>/dev
/null
&& kill $jigger_pid
135 if [ $result -eq 0 ]; then
136 echo -e "\n${ANSI_GREEN}The command $cmd exited with $result.${ANSI_RESET}"
138 echo -e "\n${ANSI_RED}The command $cmd exited with $result.${ANSI_RESET}"
141 echo -e "\n${ANSI_GREEN}Log:${ANSI_RESET}\n"
148 # helper method for travis_wait()
151 local timeout
=$1 # in minutes
158 while [ $count -lt $timeout ]; do
159 count
=$
(($count + 1))
160 echo -ne "Still running ($count of $timeout): $@\r"
164 echo -e "\n${ANSI_RED}Timeout (${timeout} minutes) reached. Terminating \"$@\"${ANSI_RESET}\n"
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
177 [ $result -eq 0 ] && break
178 count
=$
(($count + 1))
182 [ $count -gt 3 ] && {
183 echo -e "\n${ANSI_RED}The command \"$@\" failed 3 times.${ANSI_RESET}\n" >&2
192 echo -en "travis_fold:${action}:${name}\r${ANSI_CLEAR}"
196 echo $1 | base64
-d | openssl rsautl
-decrypt -inkey ~
/.ssh
/id_rsa.repo
201 travis_cmd
"$1" --echo --assert
205 # pkcs11 build requirements
206 run
"sudo apt-get -qq --no-install-recommends install \
210 run
"sudo add-apt-repository -y ppa:jelu/validns"
211 run
'curl "http://keyserver.ubuntu.com:11371/pks/lookup?op=get&search=0x7AA4AC1F04A52E842B88094F01B7B7D6564DECD0" | sudo apt-key add - '
214 run
"sudo add-apt-repository -y ppa:maxmind/ppa"
215 run
"gpg --keyserver keyserver.ubuntu.com --recv-keys DE742AFA"
216 run
"gpg --export DE742AFA | sudo apt-key add -"
217 run
"sudo apt-get update"
218 run
"sudo apt-get -qq --no-install-recommends install \
224 run
"sudo apt-get -qq --no-install-recommends install \
228 run
"sudo apt-get -qq --no-install-recommends install \
232 run
"sudo apt-get -qq --no-install-recommends install \
236 # remote-backend build requirements
237 run
"sudo apt-get -qq --no-install-recommends install \
241 run
"sudo apt-get -qq --no-install-recommends install \
244 # authoritative test requirements / setup
245 run
"sudo apt-get -qq --no-install-recommends install \
256 run
"wget https://github.com/dblacka/jdnssec-tools/releases/download/0.14/jdnssec-tools-0.14.tar.gz"
257 run
"sudo tar xfz jdnssec-tools-0.14.tar.gz --strip-components=1 -C /"
258 run
"cd ${TRAVIS_BUILD_DIR}"
260 # pkcs11 test requirements / setup
261 run
"sudo apt-get -qq --no-install-recommends install \
264 run
"sudo mkdir -p /etc/pkcs11/modules/"
265 run
"sudo cp -f regression-tests/softhsm.mod /etc/pkcs11/modules/softhsm.module"
266 run
"sudo cp -f regression-tests/softhsm.conf /etc/softhsm/softhsm.conf"
267 run
"sudo chmod 0755 /etc/softhsm/"
268 run
"sudo chmod 0644 /etc/softhsm/softhsm.conf"
269 run
"sudo chmod 0777 /var/lib/softhsm"
270 run
"p11-kit -l" # ensure it's ok
272 # bind-backend tests requirements
273 run
"sudo apt-get -qq --no-install-recommends install \
277 run
"wget https://downloads.powerdns.com/tmp/dnsperf-2.0.0.0-1-rhel-6-x86_64.tar.gz"
278 run
"tar xzvf dnsperf-2.0.0.0-1-rhel-6-x86_64.tar.gz"
279 run
"fakeroot alien --to-deb dnsperf-2.0.0.0-1/dnsperf-2.0.0.0-1.el6.x86_64.rpm"
280 run
"sudo dpkg -i dnsperf_2.0.0.0-2_amd64.deb"
281 run
"cd ${TRAVIS_BUILD_DIR}"
283 # geoip-backend test requirements / setup
284 run
"sudo apt-get -qq --no-install-recommends install \
287 # gmysql-backend test requirements
288 # as of 2016/12/01, mysql-5.6 is now installed in the default travis image
289 # see https://github.com/travis-ci/travis-ci/issues/6961
290 #run "sudo apt-get -qq --no-install-recommends install \
293 # godbc-backend test setup
294 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'
295 run
'echo ${HOME}/.odbc.ini'
296 run
'cat ${HOME}/.odbc.ini'
298 # ldap-backend test setup
299 run
"sudo apt-get -qq --no-install-recommends install \
302 run
"mkdir /tmp/ldap-dns"
303 run
"pushd /tmp/ldap-dns"
304 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'
306 run
"slaptest -f ldap.conf -F slapd.d"
307 run
"sudo cp slapd.d/cn=config/cn=schema/cn={*dns*.ldif /etc/ldap/slapd.d/cn=config/cn=schema/"
308 run
"sudo chown -R openldap:openldap /etc/ldap/slapd.d/"
309 run
"sudo service slapd restart"
311 run
"sudo -u openldap mkdir -p /var/lib/ldap/powerdns"
312 run
"sudo ldapadd -Y EXTERNAL -H ldapi:/// -f ./modules/ldapbackend/testfiles/add.ldif"
314 # remote-backend tests requirements
315 run
"sudo apt-get -qq --no-install-recommends install \
317 rubygems-integration \
319 run
"gem update --system"
320 run
"gem install bundler --no-rdoc --no-ri"
321 run
"cd modules/remotebackend"
322 run
"ruby -S bundle install"
326 run
"sudo apt-get -qq --no-install-recommends install \
330 run
"sudo apt-get -qq --no-install-recommends install \
333 run
"sudo touch /etc/authbind/byport/53"
334 run
"sudo chmod 755 /etc/authbind/byport/53"
336 # Install dnsmasq to make lookups more robust
337 run
"sudo apt-get -qq --no-install-recommends install \
339 run
'echo listen-address=127.0.0.53 | sudo tee /etc/dnsmasq.d/local.conf'
340 run
'echo bind-interfaces | sudo tee -a /etc/dnsmasq.d/local.conf'
343 ## after this dnsmasq restart, DNS lookups will fail for a few seconds.
344 run
'sudo service dnsmasq restart'
345 run
"sudo resolvconf --disable-updates"
346 run
'echo nameserver 127.0.0.53 | sudo tee /etc/resolv.conf'
347 run
"export RESOLVERIP=127.0.0.53"
351 run
"sudo apt-get -qq --no-install-recommends install \
356 # recursor test requirements / setup
357 # lua-posix is required for the ghost tests
358 # (used by the prequery script in the auth)
359 run
"sudo apt-get -qq --no-install-recommends install \
369 run
"wget http://s3-us-west-1.amazonaws.com/umbrella-static/top-1m.csv.zip"
370 run
"unzip top-1m.csv.zip -d ${TRAVIS_BUILD_DIR}/regression-tests"
371 run
'echo -e "deb [arch=amd64] http://repo.powerdns.com/ubuntu trusty-auth-master main" | sudo tee /etc/apt/sources.list.d/pdns.list'
372 run
'echo -e "Package: pdns-*\nPin: origin repo.powerdns.com\nPin-Priority: 9001" | sudo tee /etc/apt/preferences.d/pdns'
373 run
'curl https://repo.powerdns.com/CBC8B383-pub.asc | sudo apt-key add - '
374 run
'sudo apt-get update'
375 run
'sudo apt-get -y install pdns-server pdns-tools'
376 run
"sudo service pdns stop"
377 run
'for suffix in {1..40}; do sudo /sbin/ip addr add 10.0.3.$suffix/32 dev lo; done'
378 run
"sudo touch /etc/authbind/byport/53"
379 run
"sudo chmod 755 /etc/authbind/byport/53"
380 run
"cd ${TRAVIS_BUILD_DIR}"
382 run
"sudo sed -i \"s/agentxperms 0700 0755 recursor/agentxperms 0700 0755 ${USER}/g\" regression-tests.recursor-dnssec/snmpd.conf"
383 run
"sudo cp -f regression-tests.recursor-dnssec/snmpd.conf /etc/snmp/snmpd.conf"
384 run
"sudo service snmpd restart"
385 ## fun story, the directory perms are only applied if it doesn't exist yet, and it is created by the init script, so..
386 run
"sudo chmod 0755 /var/agentx"
390 # test requirements / setup
391 run
"sudo add-apt-repository -y ppa:zeha/libfstrm-ppa"
392 run
'curl "http://keyserver.ubuntu.com:11371/pks/lookup?op=get&search=0x396160EF8126A2E2" | sudo apt-key add - '
393 run
"sudo apt-get -qq update"
394 run
"sudo apt-get -qq --no-install-recommends install \
398 run
"sudo sed -i \"s/agentxperms 0700 0755 dnsdist/agentxperms 0700 0755 ${USER}/g\" regression-tests.dnsdist/snmpd.conf"
399 run
"sudo cp -f regression-tests.dnsdist/snmpd.conf /etc/snmp/snmpd.conf"
400 run
"sudo service snmpd restart"
401 # fun story, the directory perms are only applied if it doesn't exist yet, and it is created by the init script, so..
402 run
"sudo chmod 0755 /var/agentx"
405 check_for_dangling_symlinks
() {
406 run
'! find -L . -name missing-sources -prune -o ! -name pubsuffix.cc -type l | grep .'
413 --with-dynmodules='bind gmysql geoip gpgsql gsqlite3 ldap lmdb lua mydns opendbx pipe random remote tinydns godbc lua2' \
417 --enable-experimental-pkcs11 \
418 --enable-remotebackend-zeromq \
420 --enable-unit-tests \
421 --enable-backend-unit-tests \
422 --enable-fuzz-targets \
423 --disable-dependency-tracking \
424 --disable-silent-rules \
428 run
"make -k install DESTDIR=/tmp/pdns-install-dir"
429 run
"find /tmp/pdns-install-dir -ls"
436 --with-dynmodules='bind' \
439 --enable-unit-tests \
440 --disable-dependency-tracking \
441 --disable-silent-rules"
442 run
"make -C ext -k -j3"
444 run
"make -k -j3 ixfrdist"
449 export PDNS_RECURSOR_DIR
=$HOME/pdns_recursor
450 run
"cd pdns/recursordist"
451 check_for_dangling_symlinks
454 run
"./build-scripts/dist-recursor"
455 run
"cd pdns/recursordist"
456 run
"tar xf pdns-recursor-*.tar.bz2"
457 run
"rm -f pdns-recursor-*.tar.bz2"
458 run
"cd pdns-recursor-*"
461 --prefix=$PDNS_RECURSOR_DIR \
463 --enable-unit-tests \
465 --disable-silent-rules"
468 run
"find $PDNS_RECURSOR_DIR -ls"
473 run
"cd pdns/dnsdistdist"
474 check_for_dangling_symlinks
476 run
"./build-scripts/dist-dnsdist"
477 run
"cd pdns/dnsdistdist"
478 run
"tar xf dnsdist*.tar.bz2"
482 --enable-unit-tests \
485 --enable-dns-over-tls \
487 --prefix=$HOME/dnsdist \
488 --disable-silent-rules"
493 run
"find $HOME/dnsdist -ls"
494 run
"rm -rf pdns/dnsdistdist/dnsdist-*/"
499 run
"make -j3 check || (cat pdns/test-suite.log; false)"
500 run
"test -f pdns/test-suite.log && cat pdns/test-suite.log || true"
501 run
"test -f modules/remotebackend/test-suite.log && cat modules/remotebackend/test-suite.log || true"
503 #DNSName - make -k -j3 -C pdns $(grep '(EXEEXT):' pdns/Makefile | cut -f1 -d\$ | grep -E -v 'dnsdist|calidns')
504 run
'make -k -j3 -C pdns $(grep "(EXEEXT):" pdns/Makefile | cut -f1 -d\$)'
507 run
"./pdnsutil test-algorithms"
510 run
"cd regression-tests"
512 #travis unbound is too old for this test (unbound 1.6.0 required)
513 run
"touch tests/ent-asterisk/fail.nsec"
515 run
"./timestamp ./start-test-stop 5300 ldap-tree"
516 run
"./timestamp ./start-test-stop 5300 ldap-simple"
517 run
"./timestamp ./start-test-stop 5300 ldap-strict"
519 run
"./timestamp ./start-test-stop 5300 bind-both"
520 run
"./timestamp ./start-test-stop 5300 bind-dnssec-both"
521 run
"./timestamp ./start-test-stop 5300 bind-dnssec-nsec3-both"
522 run
"./timestamp ./start-test-stop 5300 bind-dnssec-nsec3-optout-both"
523 run
"./timestamp ./start-test-stop 5300 bind-dnssec-nsec3-narrow"
524 run
"./timestamp ./start-test-stop 5300 bind-hybrid-nsec3"
525 #ecdsa - ./timestamp ./start-test-stop 5300 bind-dnssec-pkcs11
527 run
"./timestamp ./start-test-stop 5300 geoip"
528 run
"./timestamp ./start-test-stop 5300 geoip-nsec3-narrow"
529 run
"export geoipdatabase=../modules/geoipbackend/regression-tests/GeoLiteCity.mmdb"
530 run
"./timestamp ./start-test-stop 5300 geoip"
532 run
"./timestamp ./start-test-stop 5300 gmysql-nodnssec-both"
533 run
"./timestamp ./start-test-stop 5300 gmysql-both"
534 run
"./timestamp ./start-test-stop 5300 gmysql-nsec3-both"
535 run
"./timestamp ./start-test-stop 5300 gmysql-nsec3-optout-both"
536 run
"./timestamp ./start-test-stop 5300 gmysql-nsec3-narrow"
538 run
"export GODBC_SQLITE3_DSN=pdns-sqlite3-1"
539 run
"./timestamp ./start-test-stop 5300 godbc_sqlite3-nsec3"
541 run
"./timestamp ./start-test-stop 5300 gpgsql-nodnssec-both"
542 run
"./timestamp ./start-test-stop 5300 gpgsql-both"
543 run
"./timestamp ./start-test-stop 5300 gpgsql-nsec3-both"
544 #run "./timestamp ./start-test-stop 5300 gpgsql-nsec3-optout-both"
545 #run "./timestamp ./start-test-stop 5300 gpgsql-nsec3-narrow"
547 run
"./timestamp ./start-test-stop 5300 gsqlite3-nodnssec-both"
548 run
"./timestamp ./start-test-stop 5300 gsqlite3-both"
549 run
"./timestamp ./start-test-stop 5300 gsqlite3-nsec3-both"
550 run
"./timestamp ./start-test-stop 5300 gsqlite3-nsec3-optout-both"
551 run
"./timestamp ./start-test-stop 5300 gsqlite3-nsec3-narrow"
553 run
"./timestamp ./start-test-stop 5300 mydns"
555 run
"./timestamp ./start-test-stop 5300 opendbx-sqlite3"
557 run
"./timestamp ./start-test-stop 5300 remotebackend-pipe"
558 run
"./timestamp ./start-test-stop 5300 remotebackend-pipe-dnssec"
559 #run "./timestamp ./start-test-stop 5300 remotebackend-unix"
560 run
"./timestamp ./start-test-stop 5300 remotebackend-unix-dnssec"
561 #run "./timestamp ./start-test-stop 5300 remotebackend-http"
562 run
"./timestamp ./start-test-stop 5300 remotebackend-http-dnssec"
563 #run "./timestamp ./start-test-stop 5300 remotebackend-zeromq"
564 run
"./timestamp ./start-test-stop 5300 remotebackend-zeromq-dnssec"
566 run
"./timestamp ./start-test-stop 5300 tinydns"
568 run
"./timestamp ./start-test-stop 5300 lmdb-nodnssec-both"
569 run
"./timestamp ./start-test-stop 5300 lmdb-both"
570 run
"./timestamp ./start-test-stop 5300 lmdb-nsec3-both"
571 run
"./timestamp ./start-test-stop 5300 lmdb-nsec3-optout-both"
573 run
"rm tests/ent-asterisk/fail.nsec"
575 run
"cd ../modules/luabackend/test2"
576 run
"../../../regression-tests/timestamp ./runtest"
580 run
"cd regression-tests.rootzone"
581 run
"./timestamp ./start-test-stop 5300 bind-both"
582 run
"./timestamp ./start-test-stop 5300 bind-dnssec-both"
583 run
"./timestamp ./start-test-stop 5300 bind-dnssec-nsec3-both"
584 run
"./timestamp ./start-test-stop 5300 bind-dnssec-nsec3-optout-both"
585 run
"./timestamp ./start-test-stop 5300 bind-dnssec-nsec3-narrow"
586 run
"./timestamp ./start-test-stop 5300 bind-hybrid-nsec3"
588 run
"./timestamp ./start-test-stop 5300 gmysql-nodnssec-both"
589 run
"./timestamp ./start-test-stop 5300 gmysql-both"
590 run
"./timestamp ./start-test-stop 5300 gmysql-nsec3-both"
591 run
"./timestamp ./start-test-stop 5300 gmysql-nsec3-optout-both"
592 run
"./timestamp ./start-test-stop 5300 gmysql-nsec3-narrow"
594 run
"./timestamp ./start-test-stop 5300 gpgsql-nodnssec-both"
595 run
"./timestamp ./start-test-stop 5300 gpgsql-both"
596 run
"./timestamp ./start-test-stop 5300 gpgsql-nsec3-both"
597 run
"./timestamp ./start-test-stop 5300 gpgsql-nsec3-optout-both"
598 run
"./timestamp ./start-test-stop 5300 gpgsql-nsec3-narrow"
600 run
"./timestamp ./start-test-stop 5300 gsqlite3-nodnssec-both"
601 run
"./timestamp ./start-test-stop 5300 gsqlite3-both"
602 run
"./timestamp ./start-test-stop 5300 gsqlite3-nsec3-both"
603 run
"./timestamp ./start-test-stop 5300 gsqlite3-nsec3-optout-both"
604 run
"./timestamp ./start-test-stop 5300 gsqlite3-nsec3-narrow"
606 run
"./timestamp ./start-test-stop 5300 lua2"
607 run
"./timestamp ./start-test-stop 5300 lua2-dnssec"
609 run
"./timestamp ./start-test-stop 5300 lmdb-both"
610 run
"./timestamp ./start-test-stop 5300 lmdb-nodnssec-both"
611 run
"./timestamp ./start-test-stop 5300 lmdb-nsec3-both"
612 run
"./timestamp ./start-test-stop 5300 lmdb-nsec3-optout-both"
617 run
"cd regression-tests.api"
618 run
"./runtests authoritative"
621 ### no backend tests ###
622 run
"cd regression-tests.nobackend/"
624 run
"test ! -s ./failed_tests"
627 ### Lua rec tests ###
628 run
"cd regression-tests.auth-py"
629 run
"./runtests -v || (cat ./configs/auth/pdns.log; false)"
632 run
"rm -f regression-tests/zones/*-slave.*" #FIXME
636 run
"cd regression-tests.ixfrdist"
637 run
"IXFRDISTBIN=${TRAVIS_BUILD_DIR}/pdns/ixfrdist ./runtests -v || (cat ixfrdist.log; false)"
642 export PDNSRECURSOR
="${PDNS_RECURSOR_DIR}/sbin/pdns_recursor"
643 export DNSBULKTEST
="/usr/bin/dnsbulktest"
644 export RECCONTROL
="${PDNS_RECURSOR_DIR}/bin/rec_control"
645 run
"cd pdns/recursordist/pdns-recursor-*"
646 run
"make -j 3 check || (cat test-suite.log; false)"
647 run
"cd ${TRAVIS_BUILD_DIR}"
648 run
"./build-scripts/test-recursor"
649 export RECURSOR
="${PDNSRECURSOR}"
650 run
"cd regression-tests"
651 run
"THRESHOLD=50 TRACE=no ./timestamp ./recursor-test 5300 50000"
654 run
"cd regression-tests.api"
655 run
"./runtests recursor"
660 run
"cd regression-tests.dnsdist"
661 run
"DNSDISTBIN=$HOME/dnsdist/bin/dnsdist ./runtests -v"
662 run
"rm -f ./DNSCryptResolver.cert ./DNSCryptResolver.key"
668 run
"git status | grep -q clean"
671 # global build requirements
672 run
"sudo apt-get -qq --no-install-recommends install \
680 run
"wget http://ppa.launchpad.net/kalon33/gamesgiroll/ubuntu/pool/main/libs/libsodium/libsodium-dev_1.0.3-1~ppa14.04+1_amd64.deb"
681 run
"wget http://ppa.launchpad.net/kalon33/gamesgiroll/ubuntu/pool/main/libs/libsodium/libsodium13_1.0.3-1~ppa14.04+1_amd64.deb"
682 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"
683 run
"cd ${TRAVIS_BUILD_DIR}"
685 compilerflags
="-O1 -Werror=vla"
687 if [ "$CC" = "clang" ]
689 compilerflags
="$compilerflags -Werror=string-plus-int"
690 if [ "${PDNS_BUILD_PRODUCT}" = "recursor" ]; then
691 sanitizerflags
="${sanitizerflags} --enable-asan"
692 elif [ "${PDNS_BUILD_PRODUCT}" = "dnsdist" ]; then
693 sanitizerflags
="${sanitizerflags} --enable-asan --enable-ubsan"
694 elif [ "${PDNS_BUILD_PRODUCT}" = "ixfrdist" ]; then
695 sanitizerflags
="${sanitizerflags} --enable-asan --enable-ubsan"
698 export CFLAGS
=$compilerflags
699 export CXXFLAGS
=$compilerflags
700 export sanitizerflags
701 # We need a suppression for UndefinedBehaviorSanitizer with ixfrdist,
702 # because of a vptr bug fixed in Boost 1.57.0:
703 # https://github.com/boostorg/any/commit/c92ab03ab35775b6aab30f6cdc3d95b7dd8fc5c6
704 export UBSAN_OPTIONS
="print_stacktrace=1:halt_on_error=1:suppressions=${TRAVIS_BUILD_DIR}/build-scripts/UBSan.supp"
706 install_
$PDNS_BUILD_PRODUCT
708 build_
$PDNS_BUILD_PRODUCT
710 test_
$PDNS_BUILD_PRODUCT
712 if [ $PDNS_BUILD_PRODUCT == "auth" ]; then