Author: Fred Grim
Date: 2024-04-25T15:05:45-07:00
New Revision: a5c4f969f4f2f15a4150229eebff769521759554

URL: 
https://github.com/llvm/llvm-project/commit/a5c4f969f4f2f15a4150229eebff769521759554
DIFF: 
https://github.com/llvm/llvm-project/commit/a5c4f969f4f2f15a4150229eebff769521759554.diff

LOG: [lldb] Reenable test HostTest.GetProcessInfo with relaxed constraints. 
(#89637)

@jimingham I am wondering if you are ok removing this test? It caused
failures in some of the build bots because the user time was less than a
microsecond. Alternatively we can increase the number of loops or maybe
I need some other approach? I had commented it out just to not impact
others

Added: 
    

Modified: 
    lldb/unittests/Host/linux/HostTest.cpp

Removed: 
    


################################################################################
diff  --git a/lldb/unittests/Host/linux/HostTest.cpp 
b/lldb/unittests/Host/linux/HostTest.cpp
index 733909902474d7..8ecaf3ec0decb0 100644
--- a/lldb/unittests/Host/linux/HostTest.cpp
+++ b/lldb/unittests/Host/linux/HostTest.cpp
@@ -69,17 +69,21 @@ TEST_F(HostTest, GetProcessInfo) {
   EXPECT_EQ(HostInfo::GetArchitecture(HostInfo::eArchKindDefault),
             Info.GetArchitecture());
   // Test timings
-  /*
-   * This is flaky in the buildbots on all archs
+  // In some sense this is a pretty trivial test. What it is trying to
+  // accomplish is just to validate that these values are never decreasing
+  // which would be unambiguously wrong. We can not reliably show them
+  // to be always increasing because the microsecond granularity means that,
+  // with hardware variations the number of loop iterations need to always
+  // be increasing for faster and faster machines.
   ASSERT_TRUE(Host::GetProcessInfo(getpid(), Info));
   ProcessInstanceInfo::timespec user_time = Info.GetUserTime();
   static volatile unsigned u = 0;
   for (unsigned i = 0; i < 10'000'000; i++) {
-    u = i;
+    u += i;
   }
+  ASSERT_TRUE(u > 0);
   ASSERT_TRUE(Host::GetProcessInfo(getpid(), Info));
   ProcessInstanceInfo::timespec next_user_time = Info.GetUserTime();
-  ASSERT_TRUE(user_time.tv_sec < next_user_time.tv_sec ||
-              user_time.tv_usec < next_user_time.tv_usec);
-  */
+  ASSERT_TRUE(user_time.tv_sec <= next_user_time.tv_sec ||
+              user_time.tv_usec <= next_user_time.tv_usec);
 }


        
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to