https://github.com/rnk created https://github.com/llvm/llvm-project/pull/138613
These tests have been flaky since they were merged into the AllClangUnitTests binary, but the flakiness is inherent to the nature of timer-based tests. >From 935546b1d9f41b0dc1d6628bb641554186a0fb17 Mon Sep 17 00:00:00 2001 From: Reid Kleckner <r...@google.com> Date: Mon, 5 May 2025 23:18:24 +0000 Subject: [PATCH] [clang] Deflake the TimeProfile support tests These tests have been flaky since they were merged into the AllClangUnitTests binary, but the flakiness is inherent to the nature of timer-based tests. --- clang/unittests/Support/TimeProfilerTest.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/clang/unittests/Support/TimeProfilerTest.cpp b/clang/unittests/Support/TimeProfilerTest.cpp index f8053f2dfce48..7698742426dfc 100644 --- a/clang/unittests/Support/TimeProfilerTest.cpp +++ b/clang/unittests/Support/TimeProfilerTest.cpp @@ -155,6 +155,16 @@ std::string buildTraceGraph(StringRef Json) { bool InsideCurrentEvent = Event.TimestampBegin >= EventStack.top()->TimestampBegin && Event.TimestampEnd <= EventStack.top()->TimestampEnd; + + // Presumably due to timer rounding, PerformPendingInstantiations often + // appear to be within the timer interval of the immediately previous + // event group. We always know these events occur at level 1, not level 2, + // in our tests, so pop an event in that case. + if (InsideCurrentEvent && Event.Name == "PerformPendingInstantiations" && + EventStack.size() == 2) { + InsideCurrentEvent = false; + } + if (!InsideCurrentEvent) EventStack.pop(); else _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits