Remove WaitForRunningTasksWithTimeout.

PiperOrigin-RevId: 694627070
This commit is contained in:
Francis Tsui
2024-11-08 13:49:21 -08:00
committed by Copybara-Service
parent 2626201458
commit c1e145eb04
6 changed files with 7 additions and 45 deletions
-15
View File
@@ -14,7 +14,6 @@
#include "internal/test/fake_task_runner.h"
#include <atomic>
#include <memory>
#include <utility>
#include <vector>
@@ -22,15 +21,12 @@
#include "absl/functional/any_invocable.h"
#include "absl/synchronization/mutex.h"
#include "absl/synchronization/notification.h"
#include "absl/time/clock.h"
#include "absl/time/time.h"
#include "internal/platform/timer.h"
#include "internal/test/fake_timer.h"
namespace nearby {
std::atomic_uint FakeTaskRunner::pending_tasks_count_ = 0;
FakeTaskRunner::~FakeTaskRunner() { Shutdown(); }
void FakeTaskRunner::Shutdown() {
@@ -40,10 +36,8 @@ void FakeTaskRunner::Shutdown() {
bool FakeTaskRunner::PostTask(absl::AnyInvocable<void()> task) {
absl::MutexLock lock(&mutex_);
++pending_tasks_count_;
task_executor_->Execute([task = std::move(task)]() mutable {
task();
--pending_tasks_count_;
});
return true;
}
@@ -72,13 +66,4 @@ bool FakeTaskRunner::SyncWithTimeout(absl::Duration timeout) {
return notification.WaitForNotificationWithTimeout(timeout);
}
bool FakeTaskRunner::WaitForRunningTasksWithTimeout(absl::Duration timeout) {
int i = (timeout / absl::Milliseconds(1)) / 50;
while (pending_tasks_count_ != 0 && i > 0) {
absl::SleepFor(absl::Milliseconds(50));
--i;
}
return pending_tasks_count_ == 0;
}
} // namespace nearby
+1 -11
View File
@@ -15,12 +15,12 @@
#ifndef THIRD_PARTY_NEARBY_INTERNAL_TEST_FAKE_TASK_RUNNER_H_
#define THIRD_PARTY_NEARBY_INTERNAL_TEST_FAKE_TASK_RUNNER_H_
#include <atomic>
#include <cstdint>
#include <memory>
#include <vector>
#include "absl/base/thread_annotations.h"
#include "absl/functional/any_invocable.h"
#include "absl/synchronization/mutex.h"
#include "absl/time/time.h"
#include "internal/platform/multi_thread_executor.h"
@@ -55,14 +55,6 @@ class FakeTaskRunner : public TaskRunner {
// In some test cases, we only need to wait for a timeout .
bool SyncWithTimeout(absl::Duration timeout);
// In some test cases, we need to make sure all running tasks completion
// before go to next task. This method can be used for the purpose.
static bool WaitForRunningTasksWithTimeout(absl::Duration timeout);
// Use of WaitForRunningTasksWithTimeout requires calling
// ResetPendingTaskCount at test initialization to be able to track pending
// tasks correctly.
static void ResetPendingTasksCount() { pending_tasks_count_ = 0; }
private:
mutable absl::Mutex mutex_;
FakeClock* clock_ = nullptr;
@@ -72,8 +64,6 @@ class FakeTaskRunner : public TaskRunner {
// Tracks delayed tasks.
std::vector<std::unique_ptr<Timer>> timers_ ABSL_GUARDED_BY(mutex_);
static std::atomic_uint pending_tasks_count_;
};
} // namespace nearby
+4 -11
View File
@@ -26,26 +26,22 @@ namespace nearby {
namespace {
TEST(FakeTaskRunner, PostTask) {
FakeTaskRunner::ResetPendingTasksCount();
FakeClock clock;
int count = 0;
FakeTaskRunner task_runner{&clock, 1};
task_runner.PostTask([&count] { ++count; });
ASSERT_TRUE(
FakeTaskRunner::WaitForRunningTasksWithTimeout(absl::Milliseconds(100)));
ASSERT_TRUE(task_runner.SyncWithTimeout(absl::Milliseconds(100)));
EXPECT_EQ(count, 1);
}
TEST(FakeTaskRunner, PostDelayedTask) {
FakeTaskRunner::ResetPendingTasksCount();
FakeClock clock;
int count = 0;
FakeTaskRunner task_runner{&clock, 1};
task_runner.PostDelayedTask(absl::Seconds(10), [&count] { ++count; });
EXPECT_EQ(count, 0);
clock.FastForward(absl::Seconds(10));
ASSERT_TRUE(
FakeTaskRunner::WaitForRunningTasksWithTimeout(absl::Milliseconds(100)));
ASSERT_TRUE(task_runner.SyncWithTimeout(absl::Milliseconds(100)));
EXPECT_EQ(count, 1);
}
@@ -69,7 +65,6 @@ TEST(FakeTaskRunner, PostTasksRunInSequence) {
}
TEST(FakeTaskRunner, PostDelayedTaskInDelayedTask) {
FakeTaskRunner::ResetPendingTasksCount();
FakeClock clock;
int called_count = 0;
FakeTaskRunner task_runner{&clock, 1};
@@ -80,12 +75,10 @@ TEST(FakeTaskRunner, PostDelayedTaskInDelayedTask) {
[&called_count]() { ++called_count; });
});
clock.FastForward(absl::Seconds(1));
ASSERT_TRUE(
FakeTaskRunner::WaitForRunningTasksWithTimeout(absl::Milliseconds(100)));
ASSERT_TRUE(task_runner.SyncWithTimeout(absl::Milliseconds(100)));
EXPECT_EQ(called_count, 1);
clock.FastForward(absl::Seconds(1));
ASSERT_TRUE(
FakeTaskRunner::WaitForRunningTasksWithTimeout(absl::Milliseconds(100)));
ASSERT_TRUE(task_runner.SyncWithTimeout(absl::Milliseconds(100)));
EXPECT_EQ(called_count, 2);
}
@@ -37,7 +37,6 @@
#include "absl/types/span.h"
#include "internal/platform/implementation/account_manager.h"
#include "internal/test/fake_account_manager.h"
#include "internal/test/fake_task_runner.h"
#include "sharing/certificates/constants.h"
#include "sharing/certificates/fake_nearby_share_certificate_storage.h"
#include "sharing/certificates/nearby_share_certificate_manager.h"
@@ -95,7 +94,6 @@ class NearbyShareCertificateManagerImplTest
~NearbyShareCertificateManagerImplTest() override = default;
void SetUp() override {
FakeTaskRunner::ResetPendingTasksCount();
ON_CALL(mock_sharing_platform_, GetPreferenceManager)
.WillByDefault(ReturnRef(preference_manager_));
ON_CALL(mock_sharing_platform_, GetAccountManager)
@@ -199,7 +197,7 @@ class NearbyShareCertificateManagerImplTest
}
void Sync() {
EXPECT_TRUE(FakeTaskRunner::WaitForRunningTasksWithTimeout(
EXPECT_TRUE(fake_context_.last_sequenced_task_runner()->SyncWithTimeout(
absl::Milliseconds(1000)));
}
@@ -34,7 +34,6 @@
#include "absl/time/time.h"
#include "internal/platform/implementation/account_manager.h"
#include "internal/test/fake_account_manager.h"
#include "internal/test/fake_task_runner.h"
#include "sharing/common/nearby_share_prefs.h"
#include "sharing/contacts/nearby_share_contact_manager.h"
#include "sharing/contacts/nearby_share_contacts_sorter.h"
@@ -67,7 +66,6 @@ constexpr char kTestDefaultContactsHash[] = "last_hash";
const char* kTestPersonNames[] = {"BBB BBB", "CCC CCC", "AAA AAA"};
// From nearby_share_contact_manager_impl.cc.
constexpr absl::Duration kContactUploadPeriod = absl::Hours(24);
constexpr absl::Duration kContactDownloadPeriod = absl::Hours(12);
std::string GetTestContactId(size_t index) {
@@ -173,7 +171,6 @@ class NearbyShareContactManagerImplTest
~NearbyShareContactManagerImplTest() override = default;
void SetUp() override {
FakeTaskRunner::ResetPendingTasksCount();
prefs::RegisterNearbySharingPrefs(preference_manager_);
NearbyShareSchedulerFactory::SetFactoryForTesting(&scheduler_factory_);
AccountManager::Account account;
@@ -203,7 +200,7 @@ class NearbyShareContactManagerImplTest
}
void Sync() {
EXPECT_TRUE(FakeTaskRunner::WaitForRunningTasksWithTimeout(
EXPECT_TRUE(fake_context_.last_sequenced_task_runner()->SyncWithTimeout(
absl::Milliseconds(1000)));
}
-1
View File
@@ -108,7 +108,6 @@ class IncomingFramesReaderTest : public testing::Test {
~IncomingFramesReaderTest() override = default;
void SetUp() override {
FakeTaskRunner::ResetPendingTasksCount();
frames_reader_ = std::make_shared<IncomingFramesReader>(
fake_task_runner_, nearby_connection_.get());
}