diff --git a/ReactCommon/fabric/mounting/tests/MountingTelemetryTest.cpp b/ReactCommon/fabric/mounting/tests/MountingTelemetryTest.cpp index afeaf6f2f31..8d1426675b8 100644 --- a/ReactCommon/fabric/mounting/tests/MountingTelemetryTest.cpp +++ b/ReactCommon/fabric/mounting/tests/MountingTelemetryTest.cpp @@ -18,11 +18,19 @@ using namespace facebook::react; #define EXPECT_EQ_WITH_THRESHOLD(a, b, threshold) \ EXPECT_TRUE((a >= b - threshold) && (a <= b + threshold)) +template +void sleep(double durationInSeconds) { + auto timepoint = ClockT::now() + + std::chrono::milliseconds((long long)(durationInSeconds * 1000)); + while (ClockT::now() < timepoint) { + } +} + TEST(MountingTelemetryTest, timepoints) { - auto threshold = int64_t{100}; + auto threshold = int64_t{10}; auto timepointA = telemetryTimePointNow(); - std::this_thread::sleep_for(std::chrono::milliseconds(100)); + sleep(0.1); auto timepointB = telemetryTimePointNow(); auto duration = telemetryDurationToMilliseconds(timepointB - timepointA); @@ -31,21 +39,21 @@ TEST(MountingTelemetryTest, timepoints) { } TEST(MountingTelemetryTest, normalUseCase) { - auto threshold = int64_t{100}; + auto threshold = int64_t{10}; auto telemetry = MountingTelemetry{}; telemetry.willCommit(); - std::this_thread::sleep_for(std::chrono::milliseconds(100)); + sleep(0.1); telemetry.willLayout(); - std::this_thread::sleep_for(std::chrono::milliseconds(200)); + sleep(0.2); telemetry.didLayout(); - std::this_thread::sleep_for(std::chrono::milliseconds(100)); + sleep(0.1); telemetry.didCommit(); - std::this_thread::sleep_for(std::chrono::milliseconds(300)); + sleep(0.3); telemetry.willMount(); - std::this_thread::sleep_for(std::chrono::milliseconds(100)); + sleep(0.1); telemetry.didMount(); auto commitDuration = telemetryDurationToMilliseconds( @@ -55,7 +63,7 @@ TEST(MountingTelemetryTest, normalUseCase) { auto mountDuration = telemetryDurationToMilliseconds( telemetry.getMountEndTime() - telemetry.getMountStartTime()); - EXPECT_EQ_WITH_THRESHOLD(commitDuration, 400, threshold * 2); + EXPECT_EQ_WITH_THRESHOLD(commitDuration, 400, threshold); EXPECT_EQ_WITH_THRESHOLD(layoutDuration, 200, threshold); EXPECT_EQ_WITH_THRESHOLD(mountDuration, 100, threshold); }