]> 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:46:14 +0000 (08:46 +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 78f1c1c6c14e1a8b45420b8765f32248f3c65b37..1f6b5e99e5ebdeb2af6d292a90e67a4b5b85d0aa 100644 (file)
@@ -49,6 +49,7 @@ usage() {
        fprintf(stderr, "\t--ipv6only=no\n");
        fprintf(stderr, "\t--rpz-nsdname\n");
        fprintf(stderr, "\t--rpz-nsip\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");
@@ -192,6 +193,19 @@ main(int argc, char **argv) {
 #endif
        }
 
+       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);