[Lldb-commits] [lldb] fdf36c3 - [lldb][AArch64] Fix flakiness in TestSVEThreadedDynamic
David Spickett via lldb-commits
lldb-commits at lists.llvm.org
Mon Jul 17 01:11:22 PDT 2023
Author: David Spickett
Date: 2023-07-17T08:11:15Z
New Revision: fdf36c3d4b467a48b628c96cc7e34c2f4bf090da
URL: https://github.com/llvm/llvm-project/commit/fdf36c3d4b467a48b628c96cc7e34c2f4bf090da
DIFF: https://github.com/llvm/llvm-project/commit/fdf36c3d4b467a48b628c96cc7e34c2f4bf090da.diff
LOG: [lldb][AArch64] Fix flakiness in TestSVEThreadedDynamic
This test runs to a breakpoint on thread 0. Thread 0 then starts
thread 2 and 3, which both have breakpoints in them.
In https://lab.llvm.org/buildbot/#/builders/96/builds/41674
I think that we managed to do the first check on thread 2 before
thread 3 had started. Therefore "thread continue 3" failed.
So wait for all three to startup before we check their status.
I considered putting a timeout on the while like the wait_for... methods,
but the test itself already has a global timeout. Plus, I'd rather
not be tuning a timeout per piece of hardware this runs on.
99% of the time we will already have 3 threads when the check is done.
Reviewed By: omjavaid
Differential Revision: https://reviews.llvm.org/D154705
Added:
Modified:
lldb/test/API/commands/register/register/aarch64_sve_registers/rw_access_dynamic_resize/TestSVEThreadedDynamic.py
Removed:
################################################################################
diff --git a/lldb/test/API/commands/register/register/aarch64_sve_registers/rw_access_dynamic_resize/TestSVEThreadedDynamic.py b/lldb/test/API/commands/register/register/aarch64_sve_registers/rw_access_dynamic_resize/TestSVEThreadedDynamic.py
index c10a2e0cc77b13..e0573ae47973e2 100644
--- a/lldb/test/API/commands/register/register/aarch64_sve_registers/rw_access_dynamic_resize/TestSVEThreadedDynamic.py
+++ b/lldb/test/API/commands/register/register/aarch64_sve_registers/rw_access_dynamic_resize/TestSVEThreadedDynamic.py
@@ -125,8 +125,6 @@ def test_sve_registers_dynamic_config(self):
process = self.dbg.GetSelectedTarget().GetProcess()
- thread1 = process.GetThreadAtIndex(0)
-
self.expect(
"thread info 1",
STOPPED_DUE_TO_BREAKPOINT,
@@ -140,6 +138,10 @@ def test_sve_registers_dynamic_config(self):
self.runCmd("process continue", RUN_SUCCEEDED)
+ # If we start the checks too quickly, thread 3 may not have started.
+ while (process.GetNumThreads() < 3):
+ pass
+
for idx in range(1, process.GetNumThreads()):
thread = process.GetThreadAtIndex(idx)
if thread.GetStopReason() != lldb.eStopReasonBreakpoint:
More information about the lldb-commits
mailing list