Fix flaky test.

PiperOrigin-RevId: 806481329
This commit is contained in:
Francis Tsui
2025-09-12 17:18:24 -07:00
committed by Copybara-Service
parent 70bb114778
commit eb790c48cd
4 changed files with 33 additions and 11 deletions
+1
View File
@@ -643,6 +643,7 @@ cc_test(
"//internal/base:file_path",
"//internal/base:files",
"//internal/platform/implementation:platform_impl",
"//internal/test",
"//sharing/internal/api:mock_sharing_platform",
"@com_github_protobuf_matchers//protobuf-matchers",
"@com_google_absl//absl/synchronization",
+8 -2
View File
@@ -27,6 +27,7 @@
#include "absl/types/span.h"
#include "internal/base/file_path.h"
#include "internal/base/files.h"
#include "internal/platform/task_runner.h"
#include "internal/platform/task_runner_impl.h"
#include "sharing/internal/api/sharing_platform.h"
#include "sharing/internal/public/logging.h"
@@ -55,9 +56,14 @@ std::vector<NearbyFileHandler::FileInfo> DoOpenFiles(
} // namespace
NearbyFileHandler::NearbyFileHandler(SharingPlatform& platform)
NearbyFileHandler::NearbyFileHandler(SharingPlatform& platform,
std::unique_ptr<TaskRunner> runner)
: platform_(platform) {
sequenced_task_runner_ = std::make_unique<TaskRunnerImpl>(1);
if (runner) {
sequenced_task_runner_ = std::move(runner);
} else {
sequenced_task_runner_ = std::make_unique<TaskRunnerImpl>(1);
}
}
NearbyFileHandler::~NearbyFileHandler() = default;
+3 -1
View File
@@ -41,7 +41,9 @@ class NearbyFileHandler {
using OpenFilesCallback = std::function<void(std::vector<FileInfo>)>;
using DeleteFilesFromDiskCallback = std::function<void()>;
explicit NearbyFileHandler(nearby::sharing::api::SharingPlatform& platform);
// Pass in a TaskRunner to use for testing.
explicit NearbyFileHandler(nearby::sharing::api::SharingPlatform& platform,
std::unique_ptr<TaskRunner> runner = nullptr);
~NearbyFileHandler();
// Open the files given in |file_paths| and return the opened files sizes via
+21 -8
View File
@@ -15,22 +15,25 @@
#include "sharing/nearby_file_handler.h"
#include <atomic>
#include <cstdio>
#include <fstream>
#include <ios>
#include <memory>
#include <utility>
#include <vector>
#include "gtest/gtest.h"
#include "absl/synchronization/notification.h"
#include "absl/time/clock.h"
#include "absl/time/time.h"
#include "internal/base/file_path.h"
#include "internal/base/files.h"
#include "internal/test/fake_clock.h"
#include "internal/test/fake_task_runner.h"
#include "sharing/internal/api/mock_sharing_platform.h"
namespace nearby {
namespace sharing {
namespace {
using ::absl::Seconds;
using ::nearby::sharing::api::MockSharingPlatform;
bool CreateFile(FilePath& file_path) {
@@ -66,7 +69,10 @@ TEST(NearbyFileHandler, OpenFiles) {
TEST(NearbyFileHandler, DeleteAFileFromDisk) {
MockSharingPlatform mock_platform;
NearbyFileHandler nearby_file_handler(mock_platform);
FakeClock clock;
auto task_runner = std::make_unique<FakeTaskRunner>(&clock, 1);
FakeTaskRunner* task_runner_ptr = task_runner.get();
NearbyFileHandler nearby_file_handler(mock_platform, std::move(task_runner));
FilePath test_file = Files::GetTemporaryDirectory().append(
FilePath("nearby_nfh_test_abc.jpg"));
ASSERT_TRUE(CreateFile(test_file));
@@ -74,13 +80,16 @@ TEST(NearbyFileHandler, DeleteAFileFromDisk) {
file_paths.push_back(test_file);
nearby_file_handler.DeleteFilesFromDisk(file_paths, []() {});
ASSERT_TRUE(Files::FileExists(test_file));
absl::SleepFor(absl::Seconds(2));
EXPECT_TRUE(task_runner_ptr->SyncWithTimeout(Seconds(5)));
ASSERT_FALSE(Files::FileExists(test_file));
}
TEST(NearbyFileHandler, DeleteMultipleFilesFromDisk) {
MockSharingPlatform mock_platform;
NearbyFileHandler nearby_file_handler(mock_platform);
FakeClock clock;
auto task_runner = std::make_unique<FakeTaskRunner>(&clock, 1);
FakeTaskRunner* task_runner_ptr = task_runner.get();
NearbyFileHandler nearby_file_handler(mock_platform, std::move(task_runner));
FilePath test_file = Files::GetTemporaryDirectory().append(
FilePath("nearby_nfh_test_abc.jpg"));
FilePath test_file2 = Files::GetTemporaryDirectory().append(
@@ -94,7 +103,8 @@ TEST(NearbyFileHandler, DeleteMultipleFilesFromDisk) {
ASSERT_FALSE(Files::FileExists(test_file));
ASSERT_FALSE(Files::FileExists(test_file2));
ASSERT_FALSE(Files::FileExists(test_file3));
absl::SleepFor(absl::Seconds(2));
EXPECT_TRUE(task_runner_ptr->SyncWithTimeout(Seconds(5)));
ASSERT_FALSE(Files::FileExists(test_file));
ASSERT_FALSE(Files::FileExists(test_file2));
ASSERT_FALSE(Files::FileExists(test_file3));
@@ -103,7 +113,10 @@ TEST(NearbyFileHandler, DeleteMultipleFilesFromDisk) {
TEST(NearbyFileHandler, TestCallback) {
MockSharingPlatform mock_platform;
std::atomic_bool received_callback = false;
NearbyFileHandler nearby_file_handler(mock_platform);
FakeClock clock;
auto task_runner = std::make_unique<FakeTaskRunner>(&clock, 1);
FakeTaskRunner* task_runner_ptr = task_runner.get();
NearbyFileHandler nearby_file_handler(mock_platform, std::move(task_runner));
FilePath test_file = Files::GetTemporaryDirectory().append(
FilePath("nearby_nfh_test_abc.jpg"));
ASSERT_TRUE(CreateFile(test_file));
@@ -113,7 +126,7 @@ TEST(NearbyFileHandler, TestCallback) {
file_paths, [&received_callback]() { received_callback = true; });
ASSERT_FALSE(received_callback);
ASSERT_TRUE(Files::FileExists(test_file));
absl::SleepFor(absl::Seconds(2));
EXPECT_TRUE(task_runner_ptr->SyncWithTimeout(Seconds(5)));
ASSERT_TRUE(received_callback);
ASSERT_FALSE(Files::FileExists(test_file));
}