From 86316ed29d1203dd582bfbc320b01afbf4526c84 Mon Sep 17 00:00:00 2001 From: Mark Andrews Date: Fri, 28 Aug 2020 16:31:35 +1000 Subject: [PATCH] Don't run dyndb and dlzexternal if running TSAN as the dlopen flags being used are incompatible with TSAN. --- bin/tests/system/dlzexternal/prereq.sh | 19 +++++++++++++++++++ bin/tests/system/dyndb/prereq.sh | 17 +++++++++++++++++ bin/tests/system/feature-test.c | 14 ++++++++++++++ util/copyrights | 2 ++ 4 files changed, 52 insertions(+) create mode 100644 bin/tests/system/dlzexternal/prereq.sh create mode 100644 bin/tests/system/dyndb/prereq.sh diff --git a/bin/tests/system/dlzexternal/prereq.sh b/bin/tests/system/dlzexternal/prereq.sh new file mode 100644 index 0000000000..6067aeb548 --- /dev/null +++ b/bin/tests/system/dlzexternal/prereq.sh @@ -0,0 +1,19 @@ +#!/bin/sh +# +# Copyright (C) Internet Systems Consortium, Inc. ("ISC") +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# See the COPYRIGHT file distributed with this work for additional +# information regarding copyright ownership. + +. ../conf.sh + +$FEATURETEST --tsan && { + echo_i "TSAN - skipping dlzexternal test" + exit 255 +} + +exit 0 diff --git a/bin/tests/system/dyndb/prereq.sh b/bin/tests/system/dyndb/prereq.sh new file mode 100644 index 0000000000..7f17ef8854 --- /dev/null +++ b/bin/tests/system/dyndb/prereq.sh @@ -0,0 +1,17 @@ +# Copyright (C) Internet Systems Consortium, Inc. ("ISC") +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# See the COPYRIGHT file distributed with this work for additional +# information regarding copyright ownership. + +. ../conf.sh + +$FEATURETEST --tsan && { + echo_i "TSAN - skipping dyndb test" + exit 255 +} + +exit 0 diff --git a/bin/tests/system/feature-test.c b/bin/tests/system/feature-test.c index 3b772968b9..88e6c91c5a 100644 --- a/bin/tests/system/feature-test.c +++ b/bin/tests/system/feature-test.c @@ -43,6 +43,7 @@ usage(void) { fprintf(stderr, "\t--have-geoip2\n"); fprintf(stderr, "\t--have-libxml2\n"); fprintf(stderr, "\t--ipv6only=no\n"); + fprintf(stderr, "\t--tsan\n"); fprintf(stderr, "\t--with-dlz-filesystem\n"); fprintf(stderr, "\t--with-idn\n"); fprintf(stderr, "\t--with-lmdb\n"); @@ -125,6 +126,19 @@ main(int argc, char **argv) { #endif /* ifdef HAVE_LIBXML2 */ } + if (strcmp(argv[1], "--tsan") == 0) { +#if defined(__has_feature) +#if __has_feature(thread_sanitizer) + return (0); +#endif +#endif +#if __SANITIZE_THREAD__ + return (0); +#else + return (1); +#endif + } + if (strcmp(argv[1], "--ipv6only=no") == 0) { #ifdef WIN32 return (0); diff --git a/util/copyrights b/util/copyrights index b27720e05a..73f8c06aec 100644 --- a/util/copyrights +++ b/util/copyrights @@ -326,6 +326,7 @@ ./bin/tests/system/dlzexternal/clean.sh SH 2010,2012,2014,2015,2016,2018,2019,2020 ./bin/tests/system/dlzexternal/driver/driver.c C 2011,2012,2013,2014,2015,2016,2017,2018,2019,2020 ./bin/tests/system/dlzexternal/driver/driver.h C 2011,2016,2018,2019,2020 +./bin/tests/system/dlzexternal/prereq.sh SH 2020 ./bin/tests/system/dlzexternal/setup.sh SH 2010,2012,2014,2016,2017,2018,2019,2020 ./bin/tests/system/dlzexternal/tests.sh SH 2010,2011,2012,2013,2014,2015,2016,2018,2019,2020 ./bin/tests/system/dns64/clean.sh SH 2010,2012,2014,2015,2016,2018,2019,2020 @@ -400,6 +401,7 @@ ./bin/tests/system/dyndb/driver/util.h X 2015,2018,2019,2020 ./bin/tests/system/dyndb/driver/zone.c X 2015,2018,2019,2020 ./bin/tests/system/dyndb/driver/zone.h X 2015,2018,2019,2020 +./bin/tests/system/dyndb/prereq.sh SH 2020 ./bin/tests/system/dyndb/setup.sh SH 2018,2019,2020 ./bin/tests/system/dyndb/tests.sh SH 2015,2016,2018,2019,2020 ./bin/tests/system/ecdsa/clean.sh SH 2012,2014,2016,2018,2019,2020