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

Side by Side Diff: tools/android/forwarder2/command.cc

Issue 11269036: Support HTTP test-server based net unit tests on Android. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix Clang build + sync Created 8 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "tools/android/forwarder2/command.h" 5 #include "tools/android/forwarder2/command.h"
6 6
7 #include <errno.h> 7 #include <errno.h>
8 #include <stdio.h> 8 #include <stdio.h>
9 #include <stdlib.h> 9 #include <stdlib.h>
10 #include <string.h> 10 #include <string.h>
11 11
12 #include "base/logging.h" 12 #include "base/logging.h"
13 #include "base/safe_strerror_posix.h"
13 #include "base/string_number_conversions.h" 14 #include "base/string_number_conversions.h"
14 #include "base/string_piece.h" 15 #include "base/string_piece.h"
15 #include "tools/android/forwarder2/socket.h" 16 #include "tools/android/forwarder2/socket.h"
16 17
17 using base::StringPiece; 18 using base::StringPiece;
18 19
19 namespace { 20 namespace {
20 21
21 22
22 // Command format: 23 // Command format:
(...skipping 16 matching lines...) Expand all
39 40
40 namespace forwarder2 { 41 namespace forwarder2 {
41 42
42 bool ReadCommand(Socket* socket, 43 bool ReadCommand(Socket* socket,
43 int* port_out, 44 int* port_out,
44 command::Type* command_type_out) { 45 command::Type* command_type_out) {
45 char command_buffer[kCommandStringSize + 1]; 46 char command_buffer[kCommandStringSize + 1];
46 // To make logging easier. 47 // To make logging easier.
47 command_buffer[kCommandStringSize] = '\0'; 48 command_buffer[kCommandStringSize] = '\0';
48 49
49 if (socket->ReadNumBytes(command_buffer, kCommandStringSize) != 50 int bytes_read = socket->ReadNumBytes(command_buffer, kCommandStringSize);
50 kCommandStringSize) { 51 if (bytes_read != kCommandStringSize) {
51 LOG(ERROR) << "Not enough data received from the socket."; 52 if (bytes_read < 0)
53 LOG(ERROR) << "Read() error: " << safe_strerror(errno);
54 else if (!bytes_read)
55 LOG(ERROR) << "Read() error, endpoint was unexpectedly closed.";
56 else
57 LOG(ERROR) << "Read() error, not enough data received from the socket.";
52 return false; 58 return false;
53 } 59 }
54 60
55 StringPiece port_str(command_buffer, kPortStringSize); 61 StringPiece port_str(command_buffer, kPortStringSize);
56 if (!StringToInt(port_str, port_out)) { 62 if (!StringToInt(port_str, port_out)) {
57 LOG(ERROR) << "Could not parse the command port string: " 63 LOG(ERROR) << "Could not parse the command port string: "
58 << port_str; 64 << port_str;
59 return false; 65 return false;
60 } 66 }
61 67
(...skipping 19 matching lines...) Expand all
81 87
82 bool ReceivedCommand(command::Type command, Socket* socket) { 88 bool ReceivedCommand(command::Type command, Socket* socket) {
83 int port; 89 int port;
84 command::Type received_command; 90 command::Type received_command;
85 if (!ReadCommand(socket, &port, &received_command)) 91 if (!ReadCommand(socket, &port, &received_command))
86 return false; 92 return false;
87 return received_command == command; 93 return received_command == command;
88 } 94 }
89 95
90 } // namespace forwarder 96 } // namespace forwarder
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698