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

Unified Diff: chromecast/crash/linux/synchronized_minidump_manager_unittest.cc

Issue 2203123003: [Chromecast] Remove usage of nonreentrant functions. (Closed) Base URL: https://chromium.googlesource.com/chromium/src@master
Patch Set: Remove time_t usage Created 4 years, 4 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
Index: chromecast/crash/linux/synchronized_minidump_manager_unittest.cc
diff --git a/chromecast/crash/linux/synchronized_minidump_manager_unittest.cc b/chromecast/crash/linux/synchronized_minidump_manager_unittest.cc
index 5fa5a79b7e00994fd97548ebe26da9c6d45b69e2..c09d2ca36037ddbbfc27d4103af99cf44dc55bbb 100644
--- a/chromecast/crash/linux/synchronized_minidump_manager_unittest.cc
+++ b/chromecast/crash/linux/synchronized_minidump_manager_unittest.cc
@@ -257,7 +257,7 @@ TEST_F(SynchronizedMinidumpManagerTest,
TEST_F(SynchronizedMinidumpManagerTest,
AddEntryToLockFile_SucceedsWithValidEntries) {
// Sample parameters.
- time_t now = time(0);
+ base::Time now = base::Time::Now();
MinidumpParams params;
params.process_name = "process";
@@ -285,30 +285,9 @@ TEST_F(SynchronizedMinidumpManagerTest,
}
TEST_F(SynchronizedMinidumpManagerTest,
- AcquireLockFile_FailsWhenNonBlockingAndFileLocked) {
- ASSERT_TRUE(CreateFiles(lockfile_.value(), metadata_.value()));
- // Lock the lockfile here. Note that the Chromium base::File tools permit
- // multiple locks on the same process to succeed, so we must use POSIX system
- // calls to accomplish this.
- int fd = open(lockfile_.value().c_str(), O_RDWR | O_CREAT, 0660);
- ASSERT_GE(fd, 0);
- ASSERT_EQ(0, flock(fd, LOCK_EX));
-
- SynchronizedMinidumpManagerSimple manager;
- manager.set_non_blocking(true);
- ASSERT_EQ(-1, manager.DoWorkLocked());
- ASSERT_FALSE(manager.work_done());
-
- // Test that the manager was not able to log the crash dump.
- ScopedVector<DumpInfo> dumps;
- ASSERT_TRUE(FetchDumps(lockfile_.value(), &dumps));
- ASSERT_EQ(0u, dumps.size());
-}
-
-TEST_F(SynchronizedMinidumpManagerTest,
AcquireLockFile_WaitsForOtherThreadWhenBlocking) {
// Create some parameters for a minidump.
- time_t now = time(0);
+ base::Time now = base::Time::Now();
MinidumpParams params;
params.process_name = "process";
@@ -337,7 +316,6 @@ TEST_F(SynchronizedMinidumpManagerTest,
SynchronizedMinidumpManagerSimple manager;
manager.SetDumpInfoToWrite(
base::WrapUnique(new DumpInfo("dump", "log", now, params)));
- manager.set_non_blocking(false);
EXPECT_EQ(0, manager.DoWorkLocked());
EXPECT_EQ(0, manager.add_entry_return_code());
@@ -357,41 +335,9 @@ TEST_F(SynchronizedMinidumpManagerTest,
// of all tests in this thread. Figure out how to lock the file more cleanly
// from another process.
TEST_F(SynchronizedMinidumpManagerTest,
- DISABLED_AcquireLockFile_FailsWhenNonBlockingAndLockedFromOtherProcess) {
- // Fork the process.
- pid_t pid = base::ForkWithFlags(0u, nullptr, nullptr);
- if (pid != 0) {
- // The child process should instantiate a manager which immediately grabs
- // the lock, and falls aleep for some period of time, then writes a dump,
- // and finally releases the lock.
- SleepySynchronizedMinidumpManagerSimple sleepy_manager(100);
- ASSERT_EQ(0, sleepy_manager.DoWorkLocked());
- ASSERT_TRUE(sleepy_manager.work_done());
- return;
- }
-
- // Meanwhile, this process should wait brielfy to allow the other thread to
- // grab the lock.
- base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(50));
-
- SynchronizedMinidumpManagerSimple manager;
- manager.set_non_blocking(true);
- ASSERT_EQ(-1, manager.DoWorkLocked());
- ASSERT_FALSE(manager.work_done());
-
- // Test that the manager was not able to log the crash dump.
- ScopedVector<DumpInfo> dumps;
- ASSERT_TRUE(FetchDumps(lockfile_.value(), &dumps));
- ASSERT_EQ(0u, dumps.size());
-}
-
-// TODO(slan): These tests are passing but forking them is creating duplicates
-// of all tests in this thread. Figure out how to lock the file more cleanly
-// from another process.
-TEST_F(SynchronizedMinidumpManagerTest,
DISABLED_AcquireLockFile_WaitsForOtherProcessWhenBlocking) {
// Create some parameters for a minidump.
- time_t now = time(0);
+ base::Time now = base::Time::Now();
MinidumpParams params;
params.process_name = "process";
@@ -421,7 +367,6 @@ TEST_F(SynchronizedMinidumpManagerTest,
SynchronizedMinidumpManagerSimple manager;
manager.SetDumpInfoToWrite(
base::WrapUnique(new DumpInfo("dump", "log", now, params)));
- manager.set_non_blocking(false);
EXPECT_EQ(0, manager.DoWorkLocked());
EXPECT_EQ(0, manager.add_entry_return_code());
@@ -436,7 +381,7 @@ TEST_F(SynchronizedMinidumpManagerTest,
TEST_F(SynchronizedMinidumpManagerTest,
Upload_SucceedsWhenDumpLimitsNotExceeded) {
// Sample parameters.
- time_t now = time(0);
+ base::Time now = base::Time::Now();
MinidumpParams params;
params.process_name = "process";
@@ -452,7 +397,7 @@ TEST_F(SynchronizedMinidumpManagerTest,
TEST_F(SynchronizedMinidumpManagerTest, Upload_FailsWhenTooManyRecentDumps) {
// Sample parameters.
- time_t now = time(0);
+ base::Time now = base::Time::Now();
MinidumpParams params;
params.process_name = "process";
@@ -472,7 +417,7 @@ TEST_F(SynchronizedMinidumpManagerTest, Upload_FailsWhenTooManyRecentDumps) {
TEST_F(SynchronizedMinidumpManagerTest, UploadSucceedsAfterRateLimitPeriodEnd) {
// Sample parameters.
- time_t now = time(0);
+ base::Time now = base::Time::Now();
MinidumpParams params;
params.process_name = "process";
@@ -493,15 +438,16 @@ TEST_F(SynchronizedMinidumpManagerTest, UploadSucceedsAfterRateLimitPeriodEnd) {
ASSERT_FALSE(uploader.can_upload_return_val());
int64_t period = SynchronizedMinidumpManager::kRatelimitPeriodSeconds;
+ time_t now_time_t = now.ToTimeT();
// Half period shouldn't trigger reset
produce_dumps(producer, 1);
- SetRatelimitPeriodStart(metadata_.value(), now - period / 2);
+ SetRatelimitPeriodStart(metadata_.value(), now_time_t - period / 2);
ASSERT_EQ(0, uploader.DoWorkLocked());
ASSERT_FALSE(uploader.can_upload_return_val());
// Set period starting time to trigger a reset
- SetRatelimitPeriodStart(metadata_.value(), now - period);
+ SetRatelimitPeriodStart(metadata_.value(), now_time_t - period);
}
produce_dumps(producer, 1);
@@ -515,7 +461,7 @@ TEST_F(SynchronizedMinidumpManagerTest, HasDumpsWithoutDumps) {
TEST_F(SynchronizedMinidumpManagerTest, HasDumpsWithDumps) {
// Sample parameters.
- time_t now = time(0);
+ base::Time now = base::Time::Now();
MinidumpParams params;
params.process_name = "process";

Powered by Google App Engine
This is Rietveld 408576698