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

Side by Side Diff: media/base/buffer_queue_unittest.cc

Issue 155193: BufferQueue class to hide audio data micromanagement from scaling algorithms. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « media/base/buffer_queue.cc ('k') | media/media.gyp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Property Changes:
Added: svn:eol-style
+ LF
OLDNEW
(Empty)
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "base/scoped_ptr.h"
6 #include "base/string_util.h"
7 #include "media/base/buffer_queue.h"
8 #include "media/base/data_buffer.h"
9 #include "testing/gtest/include/gtest/gtest.h"
10
11 namespace media {
12
13 class BufferQueueTest : public testing::Test {
14 protected:
15 BufferQueueTest() {
16 buffer1 = new DataBuffer();
17 data1 = buffer1->GetWritableData(kDataSize);
18
19 buffer2 = new DataBuffer();
20 data2 = buffer2->GetWritableData(kNewDataSize);
21
22 bufferBig = new DataBuffer();
23 dataBig = bufferBig->GetWritableData(2 * (kDataSize + kNewDataSize));
24
25 memcpy(data1, kData, kDataSize);
26 memcpy(data2, kNewData, kNewDataSize);
27 }
28
29 BufferQueue queue_;
30
31 static const char kData[];
32 static const size_t kDataSize;
33 static const char kNewData[];
34 static const size_t kNewDataSize;
35 scoped_refptr<DataBuffer> buffer1;
36 scoped_refptr<DataBuffer> buffer2;
37 scoped_refptr<DataBuffer> bufferBig;
38 uint8* data1;
39 uint8* data2;
40 uint8* dataBig;
41
42 private:
43 DISALLOW_COPY_AND_ASSIGN(BufferQueueTest);
44 };
45
46 const char BufferQueueTest::kData[] = "hello";
47 const size_t BufferQueueTest::kDataSize = arraysize(BufferQueueTest::kData);
48 const char BufferQueueTest::kNewData[] = "chromium";
49 const size_t BufferQueueTest::kNewDataSize =
50 arraysize(BufferQueueTest::kNewData);
51
52 TEST_F(BufferQueueTest, ValidTestData) {
53 ASSERT_TRUE(kNewDataSize > kDataSize);
54 ASSERT_TRUE(buffer1.get());
55 ASSERT_TRUE(data1);
56 ASSERT_TRUE(buffer2.get());
57 ASSERT_TRUE(data2);
58 ASSERT_TRUE(bufferBig.get());
59 ASSERT_TRUE(dataBig);
60 }
61
62 TEST_F(BufferQueueTest, Ctor) {
63 EXPECT_TRUE(queue_.IsEmpty());
64 EXPECT_EQ(0u, queue_.SizeInBytes());
65 }
66
67 TEST_F(BufferQueueTest, Enqueue) {
68 queue_.Enqueue(buffer1.get());
69 EXPECT_FALSE(queue_.IsEmpty());
70 EXPECT_EQ(kDataSize, queue_.SizeInBytes());
71 }
72
73 TEST_F(BufferQueueTest, CopyWithOneBuffer) {
74 queue_.Enqueue(buffer1.get());
75
76 EXPECT_EQ(kDataSize, queue_.Copy(data2, kDataSize));
77 EXPECT_EQ(0, memcmp(data2, kData, kDataSize));
78 }
79
80 TEST_F(BufferQueueTest, Clear) {
81 queue_.Enqueue(buffer1.get());
82
83 queue_.Clear();
84 EXPECT_TRUE(queue_.IsEmpty());
85 EXPECT_EQ(0u, queue_.SizeInBytes());
86 }
87
88 TEST_F(BufferQueueTest, MultipleEnqueues) {
89 queue_.Enqueue(buffer2.get());
90 queue_.Enqueue(buffer1.get());
91 EXPECT_EQ(kDataSize + kNewDataSize, queue_.SizeInBytes());
92 }
93
94 TEST_F(BufferQueueTest, CopyWithMultipleBuffers) {
95 queue_.Enqueue(buffer2.get());
96 queue_.Enqueue(buffer1.get());
97
98 EXPECT_EQ(kDataSize + kNewDataSize,
99 queue_.Copy(dataBig, kDataSize + kNewDataSize));
100 EXPECT_EQ(0, memcmp(dataBig, kNewData, kNewDataSize));
101 dataBig += kNewDataSize;
102 EXPECT_EQ(0, memcmp(dataBig, kData, kDataSize));
103 }
104
105 TEST_F(BufferQueueTest, Consume) {
106 queue_.Enqueue(buffer2.get());
107 queue_.Enqueue(buffer1.get());
108
109 queue_.Consume(kDataSize);
110 EXPECT_EQ(kNewDataSize, queue_.SizeInBytes());
111 }
112
113 TEST_F(BufferQueueTest, CopyFromMiddleOfBuffer) {
114 queue_.Enqueue(buffer2.get());
115 queue_.Enqueue(buffer1.get());
116 queue_.Consume(kDataSize);
117
118 EXPECT_EQ(kNewDataSize, queue_.Copy(dataBig, kNewDataSize));
119 EXPECT_EQ(0, memcmp(dataBig,
120 kNewData + kDataSize,
121 kNewDataSize - kDataSize));
122 dataBig += (kNewDataSize - kDataSize);
123 EXPECT_EQ(0, memcmp(dataBig, kData, kDataSize));
124 }
125
126 } // namespace media
OLDNEW
« no previous file with comments | « media/base/buffer_queue.cc ('k') | media/media.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698