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

Side by Side Diff: remoting/protocol/message_decoder_unittest.cc

Issue 4136010: Cleanups in the video encoding decoding code. Reenable VP8. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed arm build Created 10 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « remoting/protocol/host_message_dispatcher.cc ('k') | remoting/remoting.gyp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 <string> 5 #include <string>
6 6
7 #include "base/scoped_ptr.h" 7 #include "base/scoped_ptr.h"
8 #include "base/stl_util-inl.h" 8 #include "base/stl_util-inl.h"
9 #include "net/base/io_buffer.h" 9 #include "net/base/io_buffer.h"
10 #include "remoting/base/multiple_array_input_stream.h" 10 #include "remoting/base/multiple_array_input_stream.h"
(...skipping 23 matching lines...) Expand all
34 34
35 // The first message is InitClient. 35 // The first message is InitClient.
36 ChromotingHostMessage msg; 36 ChromotingHostMessage msg;
37 msg.mutable_init_client()->set_width(kWidth); 37 msg.mutable_init_client()->set_width(kWidth);
38 msg.mutable_init_client()->set_height(kHeight); 38 msg.mutable_init_client()->set_height(kHeight);
39 AppendMessage(msg, &encoded_data); 39 AppendMessage(msg, &encoded_data);
40 msg.Clear(); 40 msg.Clear();
41 41
42 // Then append 10 update sequences to the data. 42 // Then append 10 update sequences to the data.
43 for (int i = 0; i < 10; ++i) { 43 for (int i = 0; i < 10; ++i) {
44 msg.mutable_begin_update_stream(); 44 msg.mutable_video_packet()->set_sequence_number(0);
45 AppendMessage(msg, &encoded_data); 45 msg.mutable_video_packet()->set_data(kTestData);
46 msg.Clear();
47
48 msg.mutable_update_stream_packet()->mutable_rect_data()->
49 set_sequence_number(0);
50 msg.mutable_update_stream_packet()->mutable_rect_data()->
51 set_data(kTestData);
52 AppendMessage(msg, &encoded_data);
53 msg.Clear();
54
55 msg.mutable_end_update_stream();
56 AppendMessage(msg, &encoded_data); 46 AppendMessage(msg, &encoded_data);
57 msg.Clear(); 47 msg.Clear();
58 } 48 }
59 49
60 *size = encoded_data.length(); 50 *size = encoded_data.length();
61 *buffer = new uint8[*size]; 51 *buffer = new uint8[*size];
62 memcpy(*buffer, encoded_data.c_str(), *size); 52 memcpy(*buffer, encoded_data.c_str(), *size);
63 } 53 }
64 54
65 void SimulateReadSequence(const int read_sequence[], int sequence_size) { 55 void SimulateReadSequence(const int read_sequence[], int sequence_size) {
(...skipping 17 matching lines...) Expand all
83 int read = std::min(size - i, read_sequence[i % sequence_size]); 73 int read = std::min(size - i, read_sequence[i % sequence_size]);
84 74
85 // And then prepare an IOBuffer for feeding it. 75 // And then prepare an IOBuffer for feeding it.
86 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(read)); 76 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(read));
87 memcpy(buffer->data(), test_data + i, read); 77 memcpy(buffer->data(), test_data + i, read);
88 decoder.ParseMessages(buffer, read, &message_list); 78 decoder.ParseMessages(buffer, read, &message_list);
89 i += read; 79 i += read;
90 } 80 }
91 81
92 // Then verify the decoded messages. 82 // Then verify the decoded messages.
93 EXPECT_EQ(31u, message_list.size()); 83 EXPECT_EQ(11u, message_list.size());
94 EXPECT_TRUE(message_list.front()->has_init_client()); 84 EXPECT_TRUE(message_list.front()->has_init_client());
95 delete message_list.front(); 85 delete message_list.front();
96 message_list.pop_front(); 86 message_list.pop_front();
97 87
98 int index = 0;
99 for (std::list<ChromotingHostMessage*>::iterator it = 88 for (std::list<ChromotingHostMessage*>::iterator it =
100 message_list.begin(); 89 message_list.begin();
101 it != message_list.end(); ++it) { 90 it != message_list.end(); ++it) {
102 ChromotingHostMessage* message = *it; 91 ChromotingHostMessage* message = *it;
103 int type = index % 3; 92 // Partial update stream.
104 ++index; 93 EXPECT_TRUE(message->has_video_packet());
105 if (type == 0) { 94 EXPECT_EQ(kTestData,
106 // Begin update stream. 95 message->video_packet().data().data());
107 EXPECT_TRUE(message->has_begin_update_stream());
108 } else if (type == 1) {
109 // Partial update stream.
110 EXPECT_TRUE(message->has_update_stream_packet());
111 EXPECT_EQ(kTestData,
112 message->update_stream_packet().rect_data().data());
113 } else if (type == 2) {
114 // End update stream.
115 EXPECT_TRUE(message->has_end_update_stream());
116 }
117 } 96 }
118 STLDeleteElements(&message_list); 97 STLDeleteElements(&message_list);
119 } 98 }
120 99
121 TEST(MessageDecoderTest, SmallReads) { 100 TEST(MessageDecoderTest, SmallReads) {
122 const int kReads[] = {1, 2, 3, 1}; 101 const int kReads[] = {1, 2, 3, 1};
123 SimulateReadSequence(kReads, arraysize(kReads)); 102 SimulateReadSequence(kReads, arraysize(kReads));
124 } 103 }
125 104
126 TEST(MessageDecoderTest, LargeReads) { 105 TEST(MessageDecoderTest, LargeReads) {
127 const int kReads[] = {50, 50, 5}; 106 const int kReads[] = {50, 50, 5};
128 SimulateReadSequence(kReads, arraysize(kReads)); 107 SimulateReadSequence(kReads, arraysize(kReads));
129 } 108 }
130 109
131 TEST(MessageDecoderTest, EmptyReads) { 110 TEST(MessageDecoderTest, EmptyReads) {
132 const int kReads[] = {4, 0, 50, 0}; 111 const int kReads[] = {4, 0, 50, 0};
133 SimulateReadSequence(kReads, arraysize(kReads)); 112 SimulateReadSequence(kReads, arraysize(kReads));
134 } 113 }
135 114
136 } // namespace remoting 115 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/protocol/host_message_dispatcher.cc ('k') | remoting/remoting.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698