]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Don't run dyndb and dlzexternal if running TSAN as
authorMark Andrews <marka@isc.org>
Fri, 28 Aug 2020 06:31:35 +0000 (16:31 +1000)
committerMark Andrews <marka@isc.org>
Mon, 7 Sep 2020 22:34:34 +0000 (08:34 +1000)
the dlopen flags being used are incompatible with TSAN.

(cherry picked from commit 86316ed29d1203dd582bfbc320b01afbf4526c84)

bin/tests/system/dlzexternal/prereq.sh
bin/tests/system/dyndb/prereq.sh
bin/tests/system/feature-test.c

index b3c73c33b56512050c2bfd403bd0d5bd53c41136..ac7ed8181ad6b7b79d9ded29c6e239e9a36599c3 100644 (file)
@@ -16,4 +16,10 @@ $FEATURETEST --have-dlopen ||  {
         echo_i "dlopen() not supported - skipping dlzexternal test"
         exit 255
 }
+
+$FEATURETEST --tsan && {
+       echo_i "TSAN - skipping dlzexternal test"
+        exit 255
+}
+
 exit 0
index 76af4655f86183aa897d2422a97c47b82d7a8104..ffe1d47c90e3cd2c92ae267295ce2dad6bd4fb8e 100644 (file)
@@ -16,4 +16,10 @@ $FEATURETEST --have-dlopen ||  {
         echo_i "dlopen() not supported - skipping dyndb test"
         exit 255
 }
+
+$FEATURETEST --tsan &&  {
+        echo_i "TSAN - skipping dyndb test"
+        exit 255
+}
+
 exit 0
index e54b8980943131ddf5dc6cd8ab634ee56e6ef4a8..3ca8fcb70d23db459c18ed930f4267302d07974c 100644 (file)
@@ -44,6 +44,7 @@ usage() {
        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");
@@ -155,6 +156,19 @@ main(int argc, char **argv) {
 #endif /* ifdef WIN32 */
        }
 
+       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], "--with-dlz-filesystem") == 0) {
 #ifdef DLZ_FILESYSTEM
                return (0);