mirror of
https://github.com/kidfromjupiter/nearby.git
synced 2026-09-14 14:46:12 -04:00
Fix flaky test.
PiperOrigin-RevId: 806481329
This commit is contained in:
committed by
Copybara-Service
parent
70bb114778
commit
eb790c48cd
@@ -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",
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user