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

Unified Diff: media/blink/multibuffer_unittest.cc

Issue 1399603003: Tie multibuffers to URLs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@media_cache
Patch Set: formatted Created 5 years, 1 month 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 | « media/blink/multibuffer.cc ('k') | media/blink/resource_multibuffer_data_provider.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/blink/multibuffer_unittest.cc
diff --git a/media/blink/multibuffer_unittest.cc b/media/blink/multibuffer_unittest.cc
index 96c8c075fe73ba9add74bf931b52e0ac62220645..4a2a64bccf432b8a5595f872a9e5cb2addfc7b14 100644
--- a/media/blink/multibuffer_unittest.cc
+++ b/media/blink/multibuffer_unittest.cc
@@ -18,27 +18,32 @@ const int kBlockSizeShift = 8;
const size_t kBlockSize = 1UL << kBlockSizeShift;
namespace media {
-class TestMultiBufferDataProvider;
-std::vector<TestMultiBufferDataProvider*> writers;
+class FakeMultiBufferDataProvider;
-class TestMultiBufferDataProvider : public media::MultiBuffer::DataProvider {
+namespace {
+std::vector<FakeMultiBufferDataProvider*> writers;
+} // namespace
+
+class FakeMultiBufferDataProvider : public MultiBuffer::DataProvider {
public:
- TestMultiBufferDataProvider(MultiBufferBlockId pos,
+ FakeMultiBufferDataProvider(MultiBufferBlockId pos,
size_t file_size,
int max_blocks_after_defer,
bool must_read_whole_file,
- media::TestRandom* rnd)
+ MultiBuffer* multibuffer,
+ TestRandom* rnd)
: pos_(pos),
blocks_until_deferred_(1 << 30),
max_blocks_after_defer_(max_blocks_after_defer),
file_size_(file_size),
must_read_whole_file_(must_read_whole_file),
+ multibuffer_(multibuffer),
rnd_(rnd) {
writers.push_back(this);
}
- ~TestMultiBufferDataProvider() override {
+ ~FakeMultiBufferDataProvider() override {
if (must_read_whole_file_) {
CHECK_GE(pos_ * kBlockSize, file_size_);
}
@@ -64,11 +69,6 @@ class TestMultiBufferDataProvider : public media::MultiBuffer::DataProvider {
return ret;
}
- void SetAvailableCallback(const base::Closure& cb) override {
- DCHECK(!Available());
- cb_ = cb;
- }
-
void SetDeferred(bool deferred) override {
if (deferred) {
if (max_blocks_after_defer_ > 0) {
@@ -89,7 +89,7 @@ class TestMultiBufferDataProvider : public media::MultiBuffer::DataProvider {
--blocks_until_deferred_;
bool ret = true;
- scoped_refptr<media::DataBuffer> block = new media::DataBuffer(kBlockSize);
+ scoped_refptr<DataBuffer> block = new DataBuffer(kBlockSize);
size_t x = 0;
size_t byte_pos = (fifo_.size() + pos_) * kBlockSize;
for (x = 0; x < kBlockSize; x++, byte_pos++) {
@@ -104,28 +104,27 @@ class TestMultiBufferDataProvider : public media::MultiBuffer::DataProvider {
fifo_.push_back(DataBuffer::CreateEOSBuffer());
ret = false;
}
- cb_.Run();
+ multibuffer_->OnDataProviderEvent(this);
return ret;
}
private:
- std::deque<scoped_refptr<media::DataBuffer>> fifo_;
+ std::deque<scoped_refptr<DataBuffer>> fifo_;
MultiBufferBlockId pos_;
int32_t blocks_until_deferred_;
int32_t max_blocks_after_defer_;
size_t file_size_;
bool must_read_whole_file_;
- base::Closure cb_;
- media::TestRandom* rnd_;
+ MultiBuffer* multibuffer_;
+ TestRandom* rnd_;
};
-class TestMultiBuffer : public media::MultiBuffer {
+class TestMultiBuffer : public MultiBuffer {
public:
- explicit TestMultiBuffer(
- int32_t shift,
- const scoped_refptr<media::MultiBuffer::GlobalLRU>& lru,
- media::TestRandom* rnd)
- : media::MultiBuffer(shift, lru),
+ explicit TestMultiBuffer(int32_t shift,
+ const scoped_refptr<MultiBuffer::GlobalLRU>& lru,
+ TestRandom* rnd)
+ : MultiBuffer(shift, lru),
range_supported_(false),
create_ok_(true),
max_writers_(10000),
@@ -185,12 +184,14 @@ class TestMultiBuffer : public media::MultiBuffer {
void SetRangeSupported(bool supported) { range_supported_ = supported; }
protected:
- DataProvider* CreateWriter(const MultiBufferBlockId& pos) override {
+ scoped_ptr<DataProvider> CreateWriter(
+ const MultiBufferBlockId& pos) override {
DCHECK(create_ok_);
writers_created_++;
CHECK_LT(writers.size(), max_writers_);
- return new TestMultiBufferDataProvider(
- pos, file_size_, max_blocks_after_defer_, must_read_whole_file_, rnd_);
+ return scoped_ptr<DataProvider>(new FakeMultiBufferDataProvider(
+ pos, file_size_, max_blocks_after_defer_, must_read_whole_file_, this,
+ rnd_));
}
void Prune(size_t max_to_free) override {
// Prune should not cause additional writers to be spawned.
@@ -209,35 +210,34 @@ class TestMultiBuffer : public media::MultiBuffer {
int32_t max_blocks_after_defer_;
bool must_read_whole_file_;
int32_t writers_created_;
- media::TestRandom* rnd_;
+ TestRandom* rnd_;
};
-}
class MultiBufferTest : public testing::Test {
public:
MultiBufferTest()
: rnd_(42),
- lru_(new media::MultiBuffer::GlobalLRU()),
+ lru_(new MultiBuffer::GlobalLRU()),
multibuffer_(kBlockSizeShift, lru_, &rnd_) {}
void Advance() {
- CHECK(media::writers.size());
- media::writers[rnd_.Rand() % media::writers.size()]->Advance();
+ CHECK(writers.size());
+ writers[rnd_.Rand() % writers.size()]->Advance();
}
bool AdvanceAll() {
bool advanced = false;
- for (size_t i = 0; i < media::writers.size(); i++) {
- advanced |= media::writers[i]->Advance();
+ for (size_t i = 0; i < writers.size(); i++) {
+ advanced |= writers[i]->Advance();
}
multibuffer_.CheckLRUState();
return advanced;
}
protected:
- media::TestRandom rnd_;
- scoped_refptr<media::MultiBuffer::GlobalLRU> lru_;
- media::TestMultiBuffer multibuffer_;
+ TestRandom rnd_;
+ scoped_refptr<MultiBuffer::GlobalLRU> lru_;
+ TestMultiBuffer multibuffer_;
base::MessageLoop message_loop_;
};
@@ -247,8 +247,8 @@ TEST_F(MultiBufferTest, ReadAll) {
size_t end = 10000;
multibuffer_.SetFileSize(10000);
multibuffer_.SetMustReadWholeFile(true);
- media::MultiBufferReader reader(&multibuffer_, pos, end,
- base::Callback<void(int64_t, int64_t)>());
+ MultiBufferReader reader(&multibuffer_, pos, end,
+ base::Callback<void(int64_t, int64_t)>());
reader.SetMaxBuffer(2000, 5000);
reader.SetPreload(1000, 1000);
while (pos < end) {
@@ -275,8 +275,8 @@ TEST_F(MultiBufferTest, ReadAllAdvanceFirst) {
size_t end = 10000;
multibuffer_.SetFileSize(10000);
multibuffer_.SetMustReadWholeFile(true);
- media::MultiBufferReader reader(&multibuffer_, pos, end,
- base::Callback<void(int64_t, int64_t)>());
+ MultiBufferReader reader(&multibuffer_, pos, end,
+ base::Callback<void(int64_t, int64_t)>());
reader.SetMaxBuffer(2000, 5000);
reader.SetPreload(1000, 1000);
while (pos < end) {
@@ -305,8 +305,8 @@ TEST_F(MultiBufferTest, ReadAllAdvanceFirst_NeverDefer) {
multibuffer_.SetFileSize(10000);
multibuffer_.SetMaxBlocksAfterDefer(-10000);
multibuffer_.SetRangeSupported(true);
- media::MultiBufferReader reader(&multibuffer_, pos, end,
- base::Callback<void(int64_t, int64_t)>());
+ MultiBufferReader reader(&multibuffer_, pos, end,
+ base::Callback<void(int64_t, int64_t)>());
reader.SetMaxBuffer(2000, 5000);
reader.SetPreload(1000, 1000);
while (pos < end) {
@@ -336,8 +336,8 @@ TEST_F(MultiBufferTest, ReadAllAdvanceFirst_NeverDefer2) {
multibuffer_.SetFileSize(10000);
multibuffer_.SetMustReadWholeFile(true);
multibuffer_.SetMaxBlocksAfterDefer(-10000);
- media::MultiBufferReader reader(&multibuffer_, pos, end,
- base::Callback<void(int64_t, int64_t)>());
+ MultiBufferReader reader(&multibuffer_, pos, end,
+ base::Callback<void(int64_t, int64_t)>());
reader.SetMaxBuffer(2000, 5000);
reader.SetPreload(1000, 1000);
while (pos < end) {
@@ -366,8 +366,8 @@ TEST_F(MultiBufferTest, LRUTest) {
size_t pos = 0;
size_t end = 10000;
multibuffer_.SetFileSize(10000);
- media::MultiBufferReader reader(&multibuffer_, pos, end,
- base::Callback<void(int64_t, int64_t)>());
+ MultiBufferReader reader(&multibuffer_, pos, end,
+ base::Callback<void(int64_t, int64_t)>());
reader.SetPreload(10000, 10000);
// Note, no pinning, all data should end up in LRU.
EXPECT_EQ(current_size, lru_->Size());
@@ -390,8 +390,8 @@ class ReadHelper {
public:
ReadHelper(size_t end,
size_t max_read_size,
- media::MultiBuffer* multibuffer,
- media::TestRandom* rnd)
+ MultiBuffer* multibuffer,
+ TestRandom* rnd)
: pos_(0),
end_(end),
max_read_size_(max_read_size),
@@ -446,8 +446,8 @@ class ReadHelper {
int64_t end_;
int64_t max_read_size_;
int64_t read_size_;
- media::TestRandom* rnd_;
- media::MultiBufferReader reader_;
+ TestRandom* rnd_;
+ MultiBufferReader reader_;
};
TEST_F(MultiBufferTest, RandomTest) {
@@ -462,7 +462,7 @@ TEST_F(MultiBufferTest, RandomTest) {
for (int i = 0; i < 100; i++) {
for (int j = 0; j < 100; j++) {
if (rnd_.Rand() & 1) {
- if (!media::writers.empty())
+ if (!writers.empty())
Advance();
} else {
size_t j = rnd_.Rand() % read_helpers.size();
@@ -493,7 +493,7 @@ TEST_F(MultiBufferTest, RandomTest_RangeSupported) {
for (int i = 0; i < 100; i++) {
for (int j = 0; j < 100; j++) {
if (rnd_.Rand() & 1) {
- if (!media::writers.empty())
+ if (!writers.empty())
Advance();
} else {
size_t j = rnd_.Rand() % read_helpers.size();
@@ -510,3 +510,5 @@ TEST_F(MultiBufferTest, RandomTest_RangeSupported) {
read_helpers.pop_back();
}
}
+
+} // namespace media
« no previous file with comments | « media/blink/multibuffer.cc ('k') | media/blink/resource_multibuffer_data_provider.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698