summaryrefslogtreecommitdiffstats
path: root/net/disk_cache
diff options
context:
space:
mode:
authorrvargas@google.com <rvargas@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-29 18:58:37 +0000
committerrvargas@google.com <rvargas@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-29 18:58:37 +0000
commit05f8087de3f9aecb476983fe2db85fd19e48650e (patch)
tree7558839b846774c4f9b7248e7ad0ecb31726c898 /net/disk_cache
parentd53e403f3380ffa77b87114fa803a7f533d4abdd (diff)
downloadchromium_src-05f8087de3f9aecb476983fe2db85fd19e48650e.zip
chromium_src-05f8087de3f9aecb476983fe2db85fd19e48650e.tar.gz
chromium_src-05f8087de3f9aecb476983fe2db85fd19e48650e.tar.bz2
Disk cache: Wait until time actually moves forward, to
avoid a possible issue with the high resolution timer going back due to clock skew. BUG=133052 TEST=none Review URL: https://chromiumcodereview.appspot.com/10684007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@144944 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/disk_cache')
-rw-r--r--net/disk_cache/backend_unittest.cc14
-rw-r--r--net/disk_cache/disk_cache_test_base.cc9
-rw-r--r--net/disk_cache/disk_cache_test_base.h6
-rw-r--r--net/disk_cache/entry_unittest.cc8
4 files changed, 22 insertions, 15 deletions
diff --git a/net/disk_cache/backend_unittest.cc b/net/disk_cache/backend_unittest.cc
index fd62ca3..78a5777 100644
--- a/net/disk_cache/backend_unittest.cc
+++ b/net/disk_cache/backend_unittest.cc
@@ -28,8 +28,6 @@
using base::Time;
-static const int kDiskDelayMs = 20;
-
// Tests that can run with different types of caches.
class DiskCacheBackendTest : public DiskCacheTestWithCache {
protected:
@@ -1047,7 +1045,7 @@ void DiskCacheBackendTest::BackendEnumerations2() {
FlushQueueForTest();
// Make sure that the timestamp is not the same.
- base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(kDiskDelayMs));
+ AddDelay();
ASSERT_EQ(net::OK, OpenEntry(second, &entry1));
void* iter = NULL;
ASSERT_EQ(net::OK, OpenNextEntry(&iter, &entry2));
@@ -1223,7 +1221,7 @@ void DiskCacheBackendTest::BackendDoomRecent() {
entry->Close();
FlushQueueForTest();
- base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(kDiskDelayMs));
+ AddDelay();
Time middle = Time::Now();
ASSERT_EQ(net::OK, CreateEntry("third", &entry));
@@ -1232,7 +1230,7 @@ void DiskCacheBackendTest::BackendDoomRecent() {
entry->Close();
FlushQueueForTest();
- base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(kDiskDelayMs));
+ AddDelay();
Time final = Time::Now();
ASSERT_EQ(4, cache_->GetEntryCount());
@@ -1268,7 +1266,7 @@ void DiskCacheBackendTest::BackendDoomBetween() {
entry->Close();
FlushQueueForTest();
- base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(kDiskDelayMs));
+ AddDelay();
Time middle_start = Time::Now();
ASSERT_EQ(net::OK, CreateEntry("second", &entry));
@@ -1277,7 +1275,7 @@ void DiskCacheBackendTest::BackendDoomBetween() {
entry->Close();
FlushQueueForTest();
- base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(kDiskDelayMs));
+ AddDelay();
Time middle_end = Time::Now();
ASSERT_EQ(net::OK, CreateEntry("fourth", &entry));
@@ -1286,7 +1284,7 @@ void DiskCacheBackendTest::BackendDoomBetween() {
entry->Close();
FlushQueueForTest();
- base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(kDiskDelayMs));
+ AddDelay();
Time final = Time::Now();
ASSERT_EQ(4, cache_->GetEntryCount());
diff --git a/net/disk_cache/disk_cache_test_base.cc b/net/disk_cache/disk_cache_test_base.cc
index a2bf2a2..5ed2f90 100644
--- a/net/disk_cache/disk_cache_test_base.cc
+++ b/net/disk_cache/disk_cache_test_base.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -213,6 +213,13 @@ void DiskCacheTestWithCache::TrimDeletedListForTest(bool empty) {
empty));
}
+void DiskCacheTestWithCache::AddDelay() {
+ base::Time initial = base::Time::Now();
+ while (base::Time::Now() <= initial) {
+ base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(1));
+ };
+}
+
void DiskCacheTestWithCache::TearDown() {
MessageLoop::current()->RunAllPending();
delete cache_;
diff --git a/net/disk_cache/disk_cache_test_base.h b/net/disk_cache/disk_cache_test_base.h
index ed3d8bd..1d621d3 100644
--- a/net/disk_cache/disk_cache_test_base.h
+++ b/net/disk_cache/disk_cache_test_base.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -130,6 +130,10 @@ class DiskCacheTestWithCache : public DiskCacheTest {
// true, the whole list is deleted.
void TrimDeletedListForTest(bool empty);
+ // Makes sure that some time passes before continuing the test. Time::Now()
+ // before and after this method will not be the same.
+ void AddDelay();
+
// DiskCacheTest:
virtual void TearDown() OVERRIDE;
diff --git a/net/disk_cache/entry_unittest.cc b/net/disk_cache/entry_unittest.cc
index 1094f06..fd9cff7 100644
--- a/net/disk_cache/entry_unittest.cc
+++ b/net/disk_cache/entry_unittest.cc
@@ -22,8 +22,6 @@
using base::Time;
-static const int kDiskDelayMs = 20;
-
// Tests that can run with different types of caches.
class DiskCacheEntryTest : public DiskCacheTestWithCache {
public:
@@ -655,7 +653,7 @@ void DiskCacheEntryTest::GetTimes() {
EXPECT_TRUE(entry->GetLastModified() >= t1);
EXPECT_TRUE(entry->GetLastModified() == entry->GetLastUsed());
- base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(kDiskDelayMs));
+ AddDelay();
Time t2 = Time::Now();
EXPECT_TRUE(t2 > t1);
EXPECT_EQ(0, WriteData(entry, 0, 200, NULL, 0, false));
@@ -666,7 +664,7 @@ void DiskCacheEntryTest::GetTimes() {
}
EXPECT_TRUE(entry->GetLastModified() == entry->GetLastUsed());
- base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(kDiskDelayMs));
+ AddDelay();
Time t3 = Time::Now();
EXPECT_TRUE(t3 > t2);
const int kSize = 200;
@@ -1308,7 +1306,7 @@ void DiskCacheEntryTest::DoomedEntry() {
FlushQueueForTest();
EXPECT_EQ(0, cache_->GetEntryCount());
Time initial = Time::Now();
- base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(kDiskDelayMs));
+ AddDelay();
const int kSize1 = 2000;
const int kSize2 = 2000;