OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "net/disk_cache/disk_cache_test_util.h" | 5 #include "net/disk_cache/disk_cache_test_util.h" |
6 | 6 |
7 #include "base/files/file.h" | 7 #include "base/files/file.h" |
8 #include "base/files/file_path.h" | 8 #include "base/files/file_path.h" |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/message_loop/message_loop_proxy.h" | 10 #include "base/message_loop/message_loop_proxy.h" |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
52 | 52 |
53 file.SetLength(4 * 1024 * 1024); | 53 file.SetLength(4 * 1024 * 1024); |
54 return true; | 54 return true; |
55 } | 55 } |
56 | 56 |
57 bool DeleteCache(const base::FilePath& path) { | 57 bool DeleteCache(const base::FilePath& path) { |
58 disk_cache::DeleteCache(path, false); | 58 disk_cache::DeleteCache(path, false); |
59 return true; | 59 return true; |
60 } | 60 } |
61 | 61 |
62 bool CheckCacheIntegrity(const base::FilePath& path, bool new_eviction, | 62 bool CheckCacheIntegrity(const base::FilePath& path, |
| 63 bool new_eviction, |
63 uint32 mask) { | 64 uint32 mask) { |
64 scoped_ptr<disk_cache::BackendImpl> cache(new disk_cache::BackendImpl( | 65 scoped_ptr<disk_cache::BackendImpl> cache(new disk_cache::BackendImpl( |
65 path, mask, base::MessageLoopProxy::current().get(), NULL)); | 66 path, mask, base::MessageLoopProxy::current().get(), NULL)); |
66 if (!cache.get()) | 67 if (!cache.get()) |
67 return false; | 68 return false; |
68 if (new_eviction) | 69 if (new_eviction) |
69 cache->SetNewEviction(); | 70 cache->SetNewEviction(); |
70 cache->SetFlags(disk_cache::kNoRandom); | 71 cache->SetFlags(disk_cache::kNoRandom); |
71 if (cache->SyncInit() != net::OK) | 72 if (cache->SyncInit() != net::OK) |
72 return false; | 73 return false; |
(...skipping 14 matching lines...) Expand all Loading... |
87 MessageLoopHelper::~MessageLoopHelper() { | 88 MessageLoopHelper::~MessageLoopHelper() { |
88 } | 89 } |
89 | 90 |
90 bool MessageLoopHelper::WaitUntilCacheIoFinished(int num_callbacks) { | 91 bool MessageLoopHelper::WaitUntilCacheIoFinished(int num_callbacks) { |
91 if (num_callbacks == callbacks_called_) | 92 if (num_callbacks == callbacks_called_) |
92 return true; | 93 return true; |
93 | 94 |
94 ExpectCallbacks(num_callbacks); | 95 ExpectCallbacks(num_callbacks); |
95 // Create a recurrent timer of 50 mS. | 96 // Create a recurrent timer of 50 mS. |
96 if (!timer_.IsRunning()) | 97 if (!timer_.IsRunning()) |
97 timer_.Start(FROM_HERE, TimeDelta::FromMilliseconds(50), this, | 98 timer_.Start(FROM_HERE, |
| 99 TimeDelta::FromMilliseconds(50), |
| 100 this, |
98 &MessageLoopHelper::TimerExpired); | 101 &MessageLoopHelper::TimerExpired); |
99 base::MessageLoop::current()->Run(); | 102 base::MessageLoop::current()->Run(); |
100 return completed_; | 103 return completed_; |
101 } | 104 } |
102 | 105 |
103 // Quits the message loop when all callbacks are called or we've been waiting | 106 // Quits the message loop when all callbacks are called or we've been waiting |
104 // too long for them (2 secs without a callback). | 107 // too long for them (2 secs without a callback). |
105 void MessageLoopHelper::TimerExpired() { | 108 void MessageLoopHelper::TimerExpired() { |
106 CHECK_LE(callbacks_called_, num_callbacks_); | 109 CHECK_LE(callbacks_called_, num_callbacks_); |
107 if (callbacks_called_ == num_callbacks_) { | 110 if (callbacks_called_ == num_callbacks_) { |
108 completed_ = true; | 111 completed_ = true; |
109 base::MessageLoop::current()->Quit(); | 112 base::MessageLoop::current()->Quit(); |
110 } else { | 113 } else { |
111 // Not finished yet. See if we have to abort. | 114 // Not finished yet. See if we have to abort. |
112 if (last_ == callbacks_called_) | 115 if (last_ == callbacks_called_) |
113 num_iterations_++; | 116 num_iterations_++; |
114 else | 117 else |
115 last_ = callbacks_called_; | 118 last_ = callbacks_called_; |
116 if (40 == num_iterations_) | 119 if (40 == num_iterations_) |
117 base::MessageLoop::current()->Quit(); | 120 base::MessageLoop::current()->Quit(); |
118 } | 121 } |
119 } | 122 } |
120 | 123 |
121 // ----------------------------------------------------------------------- | 124 // ----------------------------------------------------------------------- |
122 | 125 |
123 CallbackTest::CallbackTest(MessageLoopHelper* helper, | 126 CallbackTest::CallbackTest(MessageLoopHelper* helper, bool reuse) |
124 bool reuse) | 127 : helper_(helper), reuse_(reuse ? 0 : 1) { |
125 : helper_(helper), | |
126 reuse_(reuse ? 0 : 1) { | |
127 } | 128 } |
128 | 129 |
129 CallbackTest::~CallbackTest() { | 130 CallbackTest::~CallbackTest() { |
130 } | 131 } |
131 | 132 |
132 // On the actual callback, increase the number of tests received and check for | 133 // On the actual callback, increase the number of tests received and check for |
133 // errors (an unexpected test received) | 134 // errors (an unexpected test received) |
134 void CallbackTest::Run(int result) { | 135 void CallbackTest::Run(int result) { |
135 last_result_ = result; | 136 last_result_ = result; |
136 | 137 |
137 if (reuse_) { | 138 if (reuse_) { |
138 DCHECK_EQ(1, reuse_); | 139 DCHECK_EQ(1, reuse_); |
139 if (2 == reuse_) | 140 if (2 == reuse_) |
140 helper_->set_callback_reused_error(true); | 141 helper_->set_callback_reused_error(true); |
141 reuse_++; | 142 reuse_++; |
142 } | 143 } |
143 | 144 |
144 helper_->CallbackWasCalled(); | 145 helper_->CallbackWasCalled(); |
145 } | 146 } |
OLD | NEW |