dvyukov created this revision.
dvyukov added reviewers: vitalybuka, melver.
dvyukov requested review of this revision.
Herald added a project: LLDB.
Herald added a subscriber: lldb-commits.

The test flaked on bots:
http://green.lab.llvm.org/green/job/lldb-cmake/38666/
The test expects that tsan will detect a single race
with concurrent memory accesses. TSan doesn't do this reliably.
Run 100 iterations of the racing threads, which should
make the race much more likely to be detected.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D114444

Files:
  lldb/test/API/functionalities/tsan/basic/main.c


Index: lldb/test/API/functionalities/tsan/basic/main.c
===================================================================
--- lldb/test/API/functionalities/tsan/basic/main.c
+++ lldb/test/API/functionalities/tsan/basic/main.c
@@ -16,14 +16,17 @@
 
 int main (int argc, char const *argv[])
 {
-    pointer = (char *)malloc(10); // malloc line
+    for (int i = 0; i < 100; i++) {
+        pointer = (char *)malloc(10); // malloc line
 
-    pthread_t t1, t2;
-    pthread_create(&t1, NULL, f1, NULL);
-    pthread_create(&t2, NULL, f2, NULL);
+        pthread_t t1, t2;
+        pthread_create(&t1, NULL, f1, NULL);
+        pthread_create(&t2, NULL, f2, NULL);
 
-    pthread_join(t1, NULL);
-    pthread_join(t2, NULL);
+        pthread_join(t1, NULL);
+        pthread_join(t2, NULL);
 
+        free(pointer);
+    }
     return 0;
 }


Index: lldb/test/API/functionalities/tsan/basic/main.c
===================================================================
--- lldb/test/API/functionalities/tsan/basic/main.c
+++ lldb/test/API/functionalities/tsan/basic/main.c
@@ -16,14 +16,17 @@
 
 int main (int argc, char const *argv[])
 {
-    pointer = (char *)malloc(10); // malloc line
+    for (int i = 0; i < 100; i++) {
+        pointer = (char *)malloc(10); // malloc line
 
-    pthread_t t1, t2;
-    pthread_create(&t1, NULL, f1, NULL);
-    pthread_create(&t2, NULL, f2, NULL);
+        pthread_t t1, t2;
+        pthread_create(&t1, NULL, f1, NULL);
+        pthread_create(&t2, NULL, f2, NULL);
 
-    pthread_join(t1, NULL);
-    pthread_join(t2, NULL);
+        pthread_join(t1, NULL);
+        pthread_join(t2, NULL);
 
+        free(pointer);
+    }
     return 0;
 }
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to