Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(30)

Unified Diff: net/log/file_net_log_observer_unittest.cc

Issue 2966283002: Remove the file thread dependency from FileNetLogObserver. (Closed)
Patch Set: undo const-ref changes Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/log/file_net_log_observer.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/log/file_net_log_observer_unittest.cc
diff --git a/net/log/file_net_log_observer_unittest.cc b/net/log/file_net_log_observer_unittest.cc
index 0cbf7d1c1471a01d3c979ffe8386938f8dc74066..9683e135ab69faceea5d8828cf35d27664e46155 100644
--- a/net/log/file_net_log_observer_unittest.cc
+++ b/net/log/file_net_log_observer_unittest.cc
@@ -21,6 +21,7 @@
#include "base/message_loop/message_loop.h"
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
+#include "base/task_scheduler/task_scheduler.h"
#include "base/threading/thread.h"
#include "base/values.h"
#include "net/base/test_completion_callback.h"
@@ -159,21 +160,16 @@ class FileNetLogObserverTest : public ::testing::TestWithParam<bool> {
ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
bounded_log_dir_ = temp_dir_.GetPath();
unbounded_log_path_ = bounded_log_dir_.AppendASCII("net-log.json");
- file_thread_.reset(new base::Thread("NetLog File Thread"));
- file_thread_->StartWithOptions(
- base::Thread::Options(base::MessageLoop::TYPE_DEFAULT, 0));
- ASSERT_TRUE(file_thread_->WaitUntilThreadStarted());
}
void CreateAndStartObserving(std::unique_ptr<base::Value> constants) {
bool bounded = GetParam();
if (bounded) {
logger_ = FileNetLogObserver::CreateBounded(
- file_thread_->task_runner(), bounded_log_dir_, kLargeFileSize,
- kTotalNumFiles, std::move(constants));
+ bounded_log_dir_, kLargeFileSize, kTotalNumFiles,
+ std::move(constants));
} else {
- logger_ = FileNetLogObserver::CreateUnbounded(file_thread_->task_runner(),
- unbounded_log_path_,
+ logger_ = FileNetLogObserver::CreateUnbounded(unbounded_log_path_,
std::move(constants));
}
@@ -194,6 +190,11 @@ class FileNetLogObserverTest : public ::testing::TestWithParam<bool> {
}
bool LogFilesExist() {
+ // The log files are written by a sequenced task runner. Drain all the
+ // scheduled tasks to ensure that the file writing ones have run before
+ // checking if they exist.
+ base::TaskScheduler::GetInstance()->FlushForTesting();
+
bool bounded = GetParam();
if (bounded) {
if (base::PathExists(bounded_log_dir_.AppendASCII("constants.json")) ||
@@ -212,7 +213,6 @@ class FileNetLogObserverTest : public ::testing::TestWithParam<bool> {
protected:
NetLog net_log_;
- std::unique_ptr<base::Thread> file_thread_;
std::unique_ptr<FileNetLogObserver> logger_;
private:
@@ -227,18 +227,13 @@ class FileNetLogObserverBoundedTest : public ::testing::Test {
void SetUp() override {
ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
bounded_log_dir_ = temp_dir_.GetPath();
- file_thread_.reset(new base::Thread("NetLog File Thread"));
- file_thread_->StartWithOptions(
- base::Thread::Options(base::MessageLoop::TYPE_DEFAULT, 0));
- ASSERT_TRUE(file_thread_->WaitUntilThreadStarted());
}
void CreateAndStartObserving(std::unique_ptr<base::Value> constants,
int total_file_size,
int num_files) {
logger_ = FileNetLogObserver::CreateBounded(
- file_thread_->task_runner(), bounded_log_dir_, total_file_size,
- num_files, std::move(constants));
+ bounded_log_dir_, total_file_size, num_files, std::move(constants));
logger_->StartObserving(&net_log_, NetLogCaptureMode::Default());
}
@@ -263,7 +258,6 @@ class FileNetLogObserverBoundedTest : public ::testing::Test {
protected:
NetLog net_log_;
- std::unique_ptr<base::Thread> file_thread_;
std::unique_ptr<FileNetLogObserver> logger_;
private:
@@ -276,15 +270,20 @@ INSTANTIATE_TEST_CASE_P(,
FileNetLogObserverTest,
::testing::Values(true, false));
+// Tests deleting a FileNetLogObserver without first calling StopObserving().
TEST_P(FileNetLogObserverTest, ObserverDestroyedWithoutStopObserving) {
CreateAndStartObserving(nullptr);
// Send dummy event
AddEntries(logger_.get(), 1, kDummyEventSize);
+ // The log files should have been started.
+ ASSERT_TRUE(LogFilesExist());
+
logger_.reset();
- file_thread_.reset();
+ // When the logger is re-set without having called StopObserving(), the
+ // partially written log files are deleted.
ASSERT_FALSE(LogFilesExist());
}
@@ -801,7 +800,7 @@ void AddEntriesViaNetLog(NetLog* net_log, int num_entries) {
TEST_P(FileNetLogObserverTest, AddEventsFromMultipleThreadsWithStopObserving) {
const size_t kNumThreads = 10;
std::vector<std::unique_ptr<base::Thread>> threads(kNumThreads);
- // Start all the threads. Waiting for them to start is to hopefuly improve
+ // Start all the threads. Waiting for them to start is to hopefully improve
// the odds of hitting interesting races once events start being added.
for (size_t i = 0; i < threads.size(); ++i) {
threads[i] = base::MakeUnique<base::Thread>(
@@ -828,13 +827,15 @@ TEST_P(FileNetLogObserverTest, AddEventsFromMultipleThreadsWithStopObserving) {
// Join all the threads.
threads.clear();
+
+ ASSERT_TRUE(LogFilesExist());
}
TEST_P(FileNetLogObserverTest,
AddEventsFromMultipleThreadsWithoutStopObserving) {
const size_t kNumThreads = 10;
std::vector<std::unique_ptr<base::Thread>> threads(kNumThreads);
- // Start all the threads. Waiting for them to start is to hopefuly improve
+ // Start all the threads. Waiting for them to start is to hopefully improve
// the odds of hitting interesting races once events start being added.
for (size_t i = 0; i < threads.size(); ++i) {
threads[i] = base::MakeUnique<base::Thread>(
@@ -859,6 +860,9 @@ TEST_P(FileNetLogObserverTest,
// Join all the threads.
threads.clear();
+
+ // The log file doesn't exist since StopObserving() was not called.
+ ASSERT_FALSE(LogFilesExist());
}
} // namespace
« no previous file with comments | « net/log/file_net_log_observer.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698