TestQueues could error out because the one second sleep main.c was
authorJason Molenda <jmolenda@apple.com>
Tue, 13 Sep 2016 23:29:46 +0000 (23:29 +0000)
committerJason Molenda <jmolenda@apple.com>
Tue, 13 Sep 2016 23:29:46 +0000 (23:29 +0000)
using to enqueue all the jobs wasn't enough time on a slow/overloaded
system.  Instead use a global to indicate when all the work has
been enqueued, let's see if this makes the CIs work more reliably.

llvm-svn: 281418

lldb/packages/Python/lldbsuite/test/macosx/queues/TestQueues.py
lldb/packages/Python/lldbsuite/test/macosx/queues/main.c

index 51a1f8d..2d86f86 100644 (file)
@@ -17,7 +17,6 @@ class TestQueues(TestBase):
     mydir = TestBase.compute_mydir(__file__)
 
     @skipUnlessDarwin
-    @expectedFailureAll(bugnumber="rdar://28237450")
     @add_test_categories(['pyapi'])
     def test_with_python_api(self):
         """Test queues inspection SB APIs."""
index fa6a3e5..715a3f3 100644 (file)
@@ -3,6 +3,8 @@
 #include <dispatch/dispatch.h>
 #include <pthread.h>
 
+int finished_enqueueing_work = 0;
+
 void
 doing_the_work_1(void *in)
 {
@@ -45,6 +47,7 @@ submit_work_2(void *in)
         dispatch_async_f (*work_performer_2, NULL, doing_the_work_2);
         dispatch_async_f (*work_performer_2, NULL, doing_the_work_2);
     }
+    finished_enqueueing_work = 1;
 }
 
 
@@ -73,6 +76,7 @@ stopper ()
         sleep (1);
 }
 
+
 int main ()
 {
     dispatch_queue_t work_submittor_1 = dispatch_queue_create ("com.apple.work_submittor_1", DISPATCH_QUEUE_SERIAL);
@@ -126,8 +130,8 @@ int main ()
                 });
 
 
-    sleep (1);
+    while (finished_enqueueing_work == 0)
+        sleep (1);
     stopper ();
 
 }
-