OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2004 The WebRTC Project Authors. All rights reserved. | 2 * Copyright 2004 The WebRTC Project Authors. All rights reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
269 size_t read_block_, write_block_; | 269 size_t read_block_, write_block_; |
270 }; | 270 }; |
271 | 271 |
272 /////////////////////////////////////////////////////////////////////////////// | 272 /////////////////////////////////////////////////////////////////////////////// |
273 // SocketTestClient | 273 // SocketTestClient |
274 // Creates a simulated client for testing. Works on real and virtual networks. | 274 // Creates a simulated client for testing. Works on real and virtual networks. |
275 /////////////////////////////////////////////////////////////////////////////// | 275 /////////////////////////////////////////////////////////////////////////////// |
276 | 276 |
277 class SocketTestClient : public sigslot::has_slots<> { | 277 class SocketTestClient : public sigslot::has_slots<> { |
278 public: | 278 public: |
279 SocketTestClient() { | 279 SocketTestClient() { Init(nullptr, AF_INET); } |
280 Init(NULL, AF_INET); | 280 SocketTestClient(AsyncSocket* socket) { |
281 } | 281 Init(socket, socket->GetLocalAddress().family()); |
282 SocketTestClient(AsyncSocket* socket) { | |
283 Init(socket, socket->GetLocalAddress().family()); | |
284 } | 282 } |
285 SocketTestClient(const SocketAddress& address) { | 283 SocketTestClient(const SocketAddress& address) { |
286 Init(NULL, address.family()); | 284 Init(nullptr, address.family()); |
287 socket_->Connect(address); | 285 socket_->Connect(address); |
288 } | 286 } |
289 | 287 |
290 AsyncSocket* socket() { return socket_.get(); } | 288 AsyncSocket* socket() { return socket_.get(); } |
291 | 289 |
292 void QueueString(const char* data) { | 290 void QueueString(const char* data) { |
293 QueueData(data, strlen(data)); | 291 QueueData(data, strlen(data)); |
294 } | 292 } |
295 void QueueStringF(const char* format, ...) { | 293 void QueueStringF(const char* format, ...) { |
296 va_list args; | 294 va_list args; |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
401 | 399 |
402 void clear() { | 400 void clear() { |
403 for (size_t i=0; i<clients_.size(); ++i) { | 401 for (size_t i=0; i<clients_.size(); ++i) { |
404 delete clients_[i]; | 402 delete clients_[i]; |
405 } | 403 } |
406 clients_.clear(); | 404 clients_.clear(); |
407 } | 405 } |
408 | 406 |
409 private: | 407 private: |
410 void OnReadEvent(AsyncSocket* socket) { | 408 void OnReadEvent(AsyncSocket* socket) { |
411 AsyncSocket* accepted = | 409 AsyncSocket* accepted = static_cast<AsyncSocket*>(socket_->Accept(nullptr)); |
412 static_cast<AsyncSocket*>(socket_->Accept(NULL)); | |
413 if (!accepted) | 410 if (!accepted) |
414 return; | 411 return; |
415 clients_.push_back(new SocketTestClient(accepted)); | 412 clients_.push_back(new SocketTestClient(accepted)); |
416 } | 413 } |
417 | 414 |
418 std::unique_ptr<AsyncSocket> socket_; | 415 std::unique_ptr<AsyncSocket> socket_; |
419 std::vector<SocketTestClient*> clients_; | 416 std::vector<SocketTestClient*> clients_; |
420 }; | 417 }; |
421 | 418 |
422 /////////////////////////////////////////////////////////////////////////////// | 419 /////////////////////////////////////////////////////////////////////////////// |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
523 | 520 |
524 #define MAYBE_SKIP_SCREENCAST_TEST() \ | 521 #define MAYBE_SKIP_SCREENCAST_TEST() \ |
525 if (!testing::IsScreencastingAvailable()) { \ | 522 if (!testing::IsScreencastingAvailable()) { \ |
526 LOG(LS_WARNING) << "Skipping test, since it doesn't have the requisite " \ | 523 LOG(LS_WARNING) << "Skipping test, since it doesn't have the requisite " \ |
527 << "X environment for screen capture."; \ | 524 << "X environment for screen capture."; \ |
528 return; \ | 525 return; \ |
529 } \ | 526 } \ |
530 | 527 |
531 #if defined(WEBRTC_LINUX) && !defined(WEBRTC_ANDROID) | 528 #if defined(WEBRTC_LINUX) && !defined(WEBRTC_ANDROID) |
532 struct XDisplay { | 529 struct XDisplay { |
533 XDisplay() : display_(XOpenDisplay(NULL)) { } | 530 XDisplay() : display_(XOpenDisplay(nullptr)) {} |
534 ~XDisplay() { if (display_) XCloseDisplay(display_); } | 531 ~XDisplay() { if (display_) XCloseDisplay(display_); } |
535 bool IsValid() const { return display_ != NULL; } | 532 bool IsValid() const { return display_ != nullptr; } |
536 operator Display*() { return display_; } | 533 operator Display*() { return display_; } |
537 private: | 534 private: |
538 Display* display_; | 535 Display* display_; |
539 }; | 536 }; |
540 #endif | 537 #endif |
541 | 538 |
542 // Returns true if screencasting is available. When false, anything that uses | 539 // Returns true if screencasting is available. When false, anything that uses |
543 // screencasting features may fail. | 540 // screencasting features may fail. |
544 inline bool IsScreencastingAvailable() { | 541 inline bool IsScreencastingAvailable() { |
545 #if defined(WEBRTC_LINUX) && !defined(WEBRTC_ANDROID) | 542 #if defined(WEBRTC_LINUX) && !defined(WEBRTC_ANDROID) |
(...skipping 11 matching lines...) Expand all Loading... |
557 << minor_version; | 554 << minor_version; |
558 LOG(LS_WARNING) << "XRandr is not supported or is too old (pre 1.3)."; | 555 LOG(LS_WARNING) << "XRandr is not supported or is too old (pre 1.3)."; |
559 return false; | 556 return false; |
560 } | 557 } |
561 #endif | 558 #endif |
562 return true; | 559 return true; |
563 } | 560 } |
564 } // namespace testing | 561 } // namespace testing |
565 | 562 |
566 #endif // WEBRTC_BASE_TESTUTILS_H__ | 563 #endif // WEBRTC_BASE_TESTUTILS_H__ |
OLD | NEW |