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

Side by Side Diff: talk/app/webrtc/statscollector_unittest.cc

Issue 1362503003: Use suffixed {uint,int}{8,16,32,64}_t types. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: google::int32 Created 5 years, 3 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
OLDNEW
1 /* 1 /*
2 * libjingle 2 * libjingle
3 * Copyright 2014 Google Inc. 3 * Copyright 2014 Google Inc.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met: 6 * modification, are permitted provided that the following conditions are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright notice, 8 * 1. Redistributions of source code must retain the above copyright notice,
9 * this list of conditions and the following disclaimer. 9 * this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright notice, 10 * 2. Redistributions in binary form must reproduce the above copyright notice,
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 } // namespace cricket 66 } // namespace cricket
67 67
68 namespace webrtc { 68 namespace webrtc {
69 69
70 // Error return values 70 // Error return values
71 const char kNotFound[] = "NOT FOUND"; 71 const char kNotFound[] = "NOT FOUND";
72 72
73 // Constant names for track identification. 73 // Constant names for track identification.
74 const char kLocalTrackId[] = "local_track_id"; 74 const char kLocalTrackId[] = "local_track_id";
75 const char kRemoteTrackId[] = "remote_track_id"; 75 const char kRemoteTrackId[] = "remote_track_id";
76 const uint32 kSsrcOfTrack = 1234; 76 const uint32_t kSsrcOfTrack = 1234;
77 77
78 class MockWebRtcSession : public webrtc::WebRtcSession { 78 class MockWebRtcSession : public webrtc::WebRtcSession {
79 public: 79 public:
80 explicit MockWebRtcSession(cricket::ChannelManager* channel_manager) 80 explicit MockWebRtcSession(cricket::ChannelManager* channel_manager)
81 : WebRtcSession(channel_manager, rtc::Thread::Current(), 81 : WebRtcSession(channel_manager, rtc::Thread::Current(),
82 rtc::Thread::Current(), NULL, NULL) { 82 rtc::Thread::Current(), NULL, NULL) {
83 } 83 }
84 MOCK_METHOD0(voice_channel, cricket::VoiceChannel*()); 84 MOCK_METHOD0(voice_channel, cricket::VoiceChannel*());
85 MOCK_METHOD0(video_channel, cricket::VideoChannel*()); 85 MOCK_METHOD0(video_channel, cricket::VideoChannel*());
86 MOCK_CONST_METHOD0(mediastream_signaling, const MediaStreamSignaling*()); 86 MOCK_CONST_METHOD0(mediastream_signaling, const MediaStreamSignaling*());
87 // Libjingle uses "local" for a outgoing track, and "remote" for a incoming 87 // Libjingle uses "local" for a outgoing track, and "remote" for a incoming
88 // track. 88 // track.
89 MOCK_METHOD2(GetLocalTrackIdBySsrc, bool(uint32, std::string*)); 89 MOCK_METHOD2(GetLocalTrackIdBySsrc, bool(uint32_t, std::string*));
90 MOCK_METHOD2(GetRemoteTrackIdBySsrc, bool(uint32, std::string*)); 90 MOCK_METHOD2(GetRemoteTrackIdBySsrc, bool(uint32_t, std::string*));
91 MOCK_METHOD1(GetTransportStats, bool(cricket::SessionStats*)); 91 MOCK_METHOD1(GetTransportStats, bool(cricket::SessionStats*));
92 MOCK_METHOD1(GetTransport, cricket::Transport*(const std::string&)); 92 MOCK_METHOD1(GetTransport, cricket::Transport*(const std::string&));
93 }; 93 };
94 94
95 class MockVideoMediaChannel : public cricket::FakeVideoMediaChannel { 95 class MockVideoMediaChannel : public cricket::FakeVideoMediaChannel {
96 public: 96 public:
97 MockVideoMediaChannel() : 97 MockVideoMediaChannel() :
98 cricket::FakeVideoMediaChannel(NULL, cricket::VideoOptions()) {} 98 cricket::FakeVideoMediaChannel(NULL, cricket::VideoOptions()) {}
99 MOCK_METHOD1(GetStats, bool(cricket::VideoMediaInfo*)); 99 MOCK_METHOD1(GetStats, bool(cricket::VideoMediaInfo*));
100 }; 100 };
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
284 284
285 void VerifyVoiceReceiverInfoReport( 285 void VerifyVoiceReceiverInfoReport(
286 const StatsReport* report, 286 const StatsReport* report,
287 const cricket::VoiceReceiverInfo& info) { 287 const cricket::VoiceReceiverInfo& info) {
288 std::string value_in_report; 288 std::string value_in_report;
289 EXPECT_TRUE(GetValue( 289 EXPECT_TRUE(GetValue(
290 report, StatsReport::kStatsValueNameAudioOutputLevel, &value_in_report)); 290 report, StatsReport::kStatsValueNameAudioOutputLevel, &value_in_report));
291 EXPECT_EQ(rtc::ToString<int>(info.audio_level), value_in_report); 291 EXPECT_EQ(rtc::ToString<int>(info.audio_level), value_in_report);
292 EXPECT_TRUE(GetValue( 292 EXPECT_TRUE(GetValue(
293 report, StatsReport::kStatsValueNameBytesReceived, &value_in_report)); 293 report, StatsReport::kStatsValueNameBytesReceived, &value_in_report));
294 EXPECT_EQ(rtc::ToString<int64>(info.bytes_rcvd), value_in_report); 294 EXPECT_EQ(rtc::ToString<int64_t>(info.bytes_rcvd), value_in_report);
295 EXPECT_TRUE(GetValue( 295 EXPECT_TRUE(GetValue(
296 report, StatsReport::kStatsValueNameJitterReceived, &value_in_report)); 296 report, StatsReport::kStatsValueNameJitterReceived, &value_in_report));
297 EXPECT_EQ(rtc::ToString<int>(info.jitter_ms), value_in_report); 297 EXPECT_EQ(rtc::ToString<int>(info.jitter_ms), value_in_report);
298 EXPECT_TRUE(GetValue( 298 EXPECT_TRUE(GetValue(
299 report, StatsReport::kStatsValueNameJitterBufferMs, &value_in_report)); 299 report, StatsReport::kStatsValueNameJitterBufferMs, &value_in_report));
300 EXPECT_EQ(rtc::ToString<int>(info.jitter_buffer_ms), value_in_report); 300 EXPECT_EQ(rtc::ToString<int>(info.jitter_buffer_ms), value_in_report);
301 EXPECT_TRUE(GetValue( 301 EXPECT_TRUE(GetValue(
302 report, StatsReport::kStatsValueNamePreferredJitterBufferMs, 302 report, StatsReport::kStatsValueNamePreferredJitterBufferMs,
303 &value_in_report)); 303 &value_in_report));
304 EXPECT_EQ(rtc::ToString<int>(info.jitter_buffer_preferred_ms), 304 EXPECT_EQ(rtc::ToString<int>(info.jitter_buffer_preferred_ms),
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
350 350
351 351
352 void VerifyVoiceSenderInfoReport(const StatsReport* report, 352 void VerifyVoiceSenderInfoReport(const StatsReport* report,
353 const cricket::VoiceSenderInfo& sinfo) { 353 const cricket::VoiceSenderInfo& sinfo) {
354 std::string value_in_report; 354 std::string value_in_report;
355 EXPECT_TRUE(GetValue( 355 EXPECT_TRUE(GetValue(
356 report, StatsReport::kStatsValueNameCodecName, &value_in_report)); 356 report, StatsReport::kStatsValueNameCodecName, &value_in_report));
357 EXPECT_EQ(sinfo.codec_name, value_in_report); 357 EXPECT_EQ(sinfo.codec_name, value_in_report);
358 EXPECT_TRUE(GetValue( 358 EXPECT_TRUE(GetValue(
359 report, StatsReport::kStatsValueNameBytesSent, &value_in_report)); 359 report, StatsReport::kStatsValueNameBytesSent, &value_in_report));
360 EXPECT_EQ(rtc::ToString<int64>(sinfo.bytes_sent), value_in_report); 360 EXPECT_EQ(rtc::ToString<int64_t>(sinfo.bytes_sent), value_in_report);
361 EXPECT_TRUE(GetValue( 361 EXPECT_TRUE(GetValue(
362 report, StatsReport::kStatsValueNamePacketsSent, &value_in_report)); 362 report, StatsReport::kStatsValueNamePacketsSent, &value_in_report));
363 EXPECT_EQ(rtc::ToString<int>(sinfo.packets_sent), value_in_report); 363 EXPECT_EQ(rtc::ToString<int>(sinfo.packets_sent), value_in_report);
364 EXPECT_TRUE(GetValue( 364 EXPECT_TRUE(GetValue(
365 report, StatsReport::kStatsValueNamePacketsLost, &value_in_report)); 365 report, StatsReport::kStatsValueNamePacketsLost, &value_in_report));
366 EXPECT_EQ(rtc::ToString<int>(sinfo.packets_lost), value_in_report); 366 EXPECT_EQ(rtc::ToString<int>(sinfo.packets_lost), value_in_report);
367 EXPECT_TRUE(GetValue( 367 EXPECT_TRUE(GetValue(
368 report, StatsReport::kStatsValueNameRtt, &value_in_report)); 368 report, StatsReport::kStatsValueNameRtt, &value_in_report));
369 EXPECT_EQ(rtc::ToString<int>(sinfo.rtt_ms), value_in_report); 369 EXPECT_EQ(rtc::ToString<int>(sinfo.rtt_ms), value_in_report);
370 EXPECT_TRUE(GetValue( 370 EXPECT_TRUE(GetValue(
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
595 // Verify the existence of the track report. 595 // Verify the existence of the track report.
596 const StatsReport* report = FindNthReportByType( 596 const StatsReport* report = FindNthReportByType(
597 *reports, StatsReport::kStatsReportTypeSsrc, 1); 597 *reports, StatsReport::kStatsReportTypeSsrc, 1);
598 EXPECT_FALSE(report == NULL); 598 EXPECT_FALSE(report == NULL);
599 EXPECT_EQ(stats->GetTimeNow(), report->timestamp()); 599 EXPECT_EQ(stats->GetTimeNow(), report->timestamp());
600 std::string track_id = ExtractSsrcStatsValue( 600 std::string track_id = ExtractSsrcStatsValue(
601 *reports, StatsReport::kStatsValueNameTrackId); 601 *reports, StatsReport::kStatsValueNameTrackId);
602 EXPECT_EQ(audio_track->id(), track_id); 602 EXPECT_EQ(audio_track->id(), track_id);
603 std::string ssrc_id = ExtractSsrcStatsValue( 603 std::string ssrc_id = ExtractSsrcStatsValue(
604 *reports, StatsReport::kStatsValueNameSsrc); 604 *reports, StatsReport::kStatsValueNameSsrc);
605 EXPECT_EQ(rtc::ToString<uint32>(kSsrcOfTrack), ssrc_id); 605 EXPECT_EQ(rtc::ToString<uint32_t>(kSsrcOfTrack), ssrc_id);
606 606
607 // Verifies the values in the track report. 607 // Verifies the values in the track report.
608 if (voice_sender_info) { 608 if (voice_sender_info) {
609 UpdateVoiceSenderInfoFromAudioTrack(audio_track, voice_sender_info); 609 UpdateVoiceSenderInfoFromAudioTrack(audio_track, voice_sender_info);
610 VerifyVoiceSenderInfoReport(report, *voice_sender_info); 610 VerifyVoiceSenderInfoReport(report, *voice_sender_info);
611 } 611 }
612 if (voice_receiver_info) { 612 if (voice_receiver_info) {
613 VerifyVoiceReceiverInfoReport(report, *voice_receiver_info); 613 VerifyVoiceReceiverInfoReport(report, *voice_receiver_info);
614 } 614 }
615 615
616 // Verify we get the same result by passing a track to GetStats(). 616 // Verify we get the same result by passing a track to GetStats().
617 StatsReports track_reports; // returned values. 617 StatsReports track_reports; // returned values.
618 stats->GetStats(audio_track, &track_reports); 618 stats->GetStats(audio_track, &track_reports);
619 const StatsReport* track_report = FindNthReportByType( 619 const StatsReport* track_report = FindNthReportByType(
620 track_reports, StatsReport::kStatsReportTypeSsrc, 1); 620 track_reports, StatsReport::kStatsReportTypeSsrc, 1);
621 EXPECT_TRUE(track_report); 621 EXPECT_TRUE(track_report);
622 EXPECT_EQ(stats->GetTimeNow(), track_report->timestamp()); 622 EXPECT_EQ(stats->GetTimeNow(), track_report->timestamp());
623 track_id = ExtractSsrcStatsValue(track_reports, 623 track_id = ExtractSsrcStatsValue(track_reports,
624 StatsReport::kStatsValueNameTrackId); 624 StatsReport::kStatsValueNameTrackId);
625 EXPECT_EQ(audio_track->id(), track_id); 625 EXPECT_EQ(audio_track->id(), track_id);
626 ssrc_id = ExtractSsrcStatsValue(track_reports, 626 ssrc_id = ExtractSsrcStatsValue(track_reports,
627 StatsReport::kStatsValueNameSsrc); 627 StatsReport::kStatsValueNameSsrc);
628 EXPECT_EQ(rtc::ToString<uint32>(kSsrcOfTrack), ssrc_id); 628 EXPECT_EQ(rtc::ToString<uint32_t>(kSsrcOfTrack), ssrc_id);
629 if (voice_sender_info) 629 if (voice_sender_info)
630 VerifyVoiceSenderInfoReport(track_report, *voice_sender_info); 630 VerifyVoiceSenderInfoReport(track_report, *voice_sender_info);
631 if (voice_receiver_info) 631 if (voice_receiver_info)
632 VerifyVoiceReceiverInfoReport(track_report, *voice_receiver_info); 632 VerifyVoiceReceiverInfoReport(track_report, *voice_receiver_info);
633 } 633 }
634 634
635 void TestCertificateReports(const rtc::FakeSSLCertificate& local_cert, 635 void TestCertificateReports(const rtc::FakeSSLCertificate& local_cert,
636 const std::vector<std::string>& local_ders, 636 const std::vector<std::string>& local_ders,
637 const rtc::FakeSSLCertificate& remote_cert, 637 const rtc::FakeSSLCertificate& remote_cert,
638 const std::vector<std::string>& remote_ders) { 638 const std::vector<std::string>& remote_ders) {
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
767 767
768 StatsReport::Id reportId = StatsReport::NewTypedIntId( 768 StatsReport::Id reportId = StatsReport::NewTypedIntId(
769 StatsReport::kStatsReportTypeDataChannel, id); 769 StatsReport::kStatsReportTypeDataChannel, id);
770 770
771 EXPECT_TRUE(reportId->Equals(report->id())); 771 EXPECT_TRUE(reportId->Equals(report->id()));
772 772
773 EXPECT_EQ(stats.GetTimeNow(), report->timestamp()); 773 EXPECT_EQ(stats.GetTimeNow(), report->timestamp());
774 EXPECT_EQ(label, ExtractStatsValue(StatsReport::kStatsReportTypeDataChannel, 774 EXPECT_EQ(label, ExtractStatsValue(StatsReport::kStatsReportTypeDataChannel,
775 reports, 775 reports,
776 StatsReport::kStatsValueNameLabel)); 776 StatsReport::kStatsValueNameLabel));
777 EXPECT_EQ(rtc::ToString<int64>(id), 777 EXPECT_EQ(rtc::ToString<int64_t>(id),
778 ExtractStatsValue(StatsReport::kStatsReportTypeDataChannel, 778 ExtractStatsValue(StatsReport::kStatsReportTypeDataChannel, reports,
779 reports,
780 StatsReport::kStatsValueNameDataChannelId)); 779 StatsReport::kStatsValueNameDataChannelId));
781 EXPECT_EQ(state, ExtractStatsValue(StatsReport::kStatsReportTypeDataChannel, 780 EXPECT_EQ(state, ExtractStatsValue(StatsReport::kStatsReportTypeDataChannel,
782 reports, 781 reports,
783 StatsReport::kStatsValueNameState)); 782 StatsReport::kStatsValueNameState));
784 EXPECT_EQ("", ExtractStatsValue(StatsReport::kStatsReportTypeDataChannel, 783 EXPECT_EQ("", ExtractStatsValue(StatsReport::kStatsReportTypeDataChannel,
785 reports, 784 reports,
786 StatsReport::kStatsValueNameProtocol)); 785 StatsReport::kStatsValueNameProtocol));
787 } 786 }
788 787
789 // This test verifies that 64-bit counters are passed successfully. 788 // This test verifies that 64-bit counters are passed successfully.
790 TEST_F(StatsCollectorTest, BytesCounterHandles64Bits) { 789 TEST_F(StatsCollectorTest, BytesCounterHandles64Bits) {
791 StatsCollectorForTest stats(&session_); 790 StatsCollectorForTest stats(&session_);
792 791
793 const char kVideoChannelName[] = "video"; 792 const char kVideoChannelName[] = "video";
794 793
795 InitSessionStats(kVideoChannelName); 794 InitSessionStats(kVideoChannelName);
796 EXPECT_CALL(session_, GetTransportStats(_)) 795 EXPECT_CALL(session_, GetTransportStats(_))
797 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), 796 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_),
798 Return(true))); 797 Return(true)));
799 EXPECT_CALL(session_, GetTransport(_)) 798 EXPECT_CALL(session_, GetTransport(_))
800 .WillRepeatedly(Return(static_cast<cricket::Transport*>(NULL))); 799 .WillRepeatedly(Return(static_cast<cricket::Transport*>(NULL)));
801 800
802 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); 801 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel();
803 cricket::VideoChannel video_channel(rtc::Thread::Current(), 802 cricket::VideoChannel video_channel(rtc::Thread::Current(),
804 media_channel, NULL, kVideoChannelName, false); 803 media_channel, NULL, kVideoChannelName, false);
805 StatsReports reports; // returned values. 804 StatsReports reports; // returned values.
806 cricket::VideoSenderInfo video_sender_info; 805 cricket::VideoSenderInfo video_sender_info;
807 cricket::VideoMediaInfo stats_read; 806 cricket::VideoMediaInfo stats_read;
808 // The number of bytes must be larger than 0xFFFFFFFF for this test. 807 // The number of bytes must be larger than 0xFFFFFFFF for this test.
809 const int64 kBytesSent = 12345678901234LL; 808 const int64_t kBytesSent = 12345678901234LL;
810 const std::string kBytesSentString("12345678901234"); 809 const std::string kBytesSentString("12345678901234");
811 810
812 AddOutgoingVideoTrackStats(); 811 AddOutgoingVideoTrackStats();
813 stats.AddStream(stream_); 812 stats.AddStream(stream_);
814 813
815 // Construct a stats value to read. 814 // Construct a stats value to read.
816 video_sender_info.add_ssrc(1234); 815 video_sender_info.add_ssrc(1234);
817 video_sender_info.bytes_sent = kBytesSent; 816 video_sender_info.bytes_sent = kBytesSent;
818 stats_read.senders.push_back(video_sender_info); 817 stats_read.senders.push_back(video_sender_info);
819 818
(...skipping 24 matching lines...) Expand all
844 843
845 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); 844 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel();
846 cricket::VideoChannel video_channel(rtc::Thread::Current(), 845 cricket::VideoChannel video_channel(rtc::Thread::Current(),
847 media_channel, NULL, kVideoChannelName, false); 846 media_channel, NULL, kVideoChannelName, false);
848 847
849 StatsReports reports; // returned values. 848 StatsReports reports; // returned values.
850 cricket::VideoSenderInfo video_sender_info; 849 cricket::VideoSenderInfo video_sender_info;
851 cricket::VideoMediaInfo stats_read; 850 cricket::VideoMediaInfo stats_read;
852 // Set up an SSRC just to test that we get both kinds of stats back: SSRC and 851 // Set up an SSRC just to test that we get both kinds of stats back: SSRC and
853 // BWE. 852 // BWE.
854 const int64 kBytesSent = 12345678901234LL; 853 const int64_t kBytesSent = 12345678901234LL;
855 const std::string kBytesSentString("12345678901234"); 854 const std::string kBytesSentString("12345678901234");
856 855
857 AddOutgoingVideoTrackStats(); 856 AddOutgoingVideoTrackStats();
858 stats.AddStream(stream_); 857 stats.AddStream(stream_);
859 858
860 // Construct a stats value to read. 859 // Construct a stats value to read.
861 video_sender_info.add_ssrc(1234); 860 video_sender_info.add_ssrc(1234);
862 video_sender_info.bytes_sent = kBytesSent; 861 video_sender_info.bytes_sent = kBytesSent;
863 stats_read.senders.push_back(video_sender_info); 862 stats_read.senders.push_back(video_sender_info);
864 cricket::BandwidthEstimationInfo bwe; 863 cricket::BandwidthEstimationInfo bwe;
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
956 955
957 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); 956 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel();
958 cricket::VideoChannel video_channel(rtc::Thread::Current(), 957 cricket::VideoChannel video_channel(rtc::Thread::Current(),
959 media_channel, NULL, kVideoChannelName, false); 958 media_channel, NULL, kVideoChannelName, false);
960 AddOutgoingVideoTrackStats(); 959 AddOutgoingVideoTrackStats();
961 stats.AddStream(stream_); 960 stats.AddStream(stream_);
962 961
963 // Constructs an ssrc stats update. 962 // Constructs an ssrc stats update.
964 cricket::VideoSenderInfo video_sender_info; 963 cricket::VideoSenderInfo video_sender_info;
965 cricket::VideoMediaInfo stats_read; 964 cricket::VideoMediaInfo stats_read;
966 const int64 kBytesSent = 12345678901234LL; 965 const int64_t kBytesSent = 12345678901234LL;
967 966
968 // Construct a stats value to read. 967 // Construct a stats value to read.
969 video_sender_info.add_ssrc(1234); 968 video_sender_info.add_ssrc(1234);
970 video_sender_info.bytes_sent = kBytesSent; 969 video_sender_info.bytes_sent = kBytesSent;
971 stats_read.senders.push_back(video_sender_info); 970 stats_read.senders.push_back(video_sender_info);
972 971
973 EXPECT_CALL(session_, video_channel()).WillRepeatedly(Return(&video_channel)); 972 EXPECT_CALL(session_, video_channel()).WillRepeatedly(Return(&video_channel));
974 EXPECT_CALL(session_, voice_channel()).WillRepeatedly(ReturnNull()); 973 EXPECT_CALL(session_, voice_channel()).WillRepeatedly(ReturnNull());
975 EXPECT_CALL(*media_channel, GetStats(_)) 974 EXPECT_CALL(*media_channel, GetStats(_))
976 .WillOnce(DoAll(SetArgPointee<0>(stats_read), 975 .WillOnce(DoAll(SetArgPointee<0>(stats_read),
(...skipping 15 matching lines...) Expand all
992 // |reports| should contain at least one session report, one track report, 991 // |reports| should contain at least one session report, one track report,
993 // and one ssrc report. 992 // and one ssrc report.
994 EXPECT_LE((size_t)3, reports.size()); 993 EXPECT_LE((size_t)3, reports.size());
995 track_report = FindNthReportByType( 994 track_report = FindNthReportByType(
996 reports, StatsReport::kStatsReportTypeTrack, 1); 995 reports, StatsReport::kStatsReportTypeTrack, 1);
997 EXPECT_TRUE(track_report); 996 EXPECT_TRUE(track_report);
998 EXPECT_EQ(stats.GetTimeNow(), track_report->timestamp()); 997 EXPECT_EQ(stats.GetTimeNow(), track_report->timestamp());
999 998
1000 std::string ssrc_id = ExtractSsrcStatsValue( 999 std::string ssrc_id = ExtractSsrcStatsValue(
1001 reports, StatsReport::kStatsValueNameSsrc); 1000 reports, StatsReport::kStatsValueNameSsrc);
1002 EXPECT_EQ(rtc::ToString<uint32>(kSsrcOfTrack), ssrc_id); 1001 EXPECT_EQ(rtc::ToString<uint32_t>(kSsrcOfTrack), ssrc_id);
1003 1002
1004 std::string track_id = ExtractSsrcStatsValue( 1003 std::string track_id = ExtractSsrcStatsValue(
1005 reports, StatsReport::kStatsValueNameTrackId); 1004 reports, StatsReport::kStatsValueNameTrackId);
1006 EXPECT_EQ(kLocalTrackId, track_id); 1005 EXPECT_EQ(kLocalTrackId, track_id);
1007 } 1006 }
1008 1007
1009 // This test verifies that an SSRC object has the identifier of a Transport 1008 // This test verifies that an SSRC object has the identifier of a Transport
1010 // stats object, and that this transport stats object exists in stats. 1009 // stats object, and that this transport stats object exists in stats.
1011 TEST_F(StatsCollectorTest, TransportObjectLinkedFromSsrcObject) { 1010 TEST_F(StatsCollectorTest, TransportObjectLinkedFromSsrcObject) {
1012 StatsCollectorForTest stats(&session_); 1011 StatsCollectorForTest stats(&session_);
1013 1012
1014 // Ignore unused callback (logspam). 1013 // Ignore unused callback (logspam).
1015 EXPECT_CALL(session_, GetTransport(_)) 1014 EXPECT_CALL(session_, GetTransport(_))
1016 .WillRepeatedly(Return(static_cast<cricket::Transport*>(NULL))); 1015 .WillRepeatedly(Return(static_cast<cricket::Transport*>(NULL)));
1017 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); 1016 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel();
1018 // The content_name known by the video channel. 1017 // The content_name known by the video channel.
1019 const std::string kVcName("vcname"); 1018 const std::string kVcName("vcname");
1020 cricket::VideoChannel video_channel(rtc::Thread::Current(), 1019 cricket::VideoChannel video_channel(rtc::Thread::Current(),
1021 media_channel, NULL, kVcName, false); 1020 media_channel, NULL, kVcName, false);
1022 AddOutgoingVideoTrackStats(); 1021 AddOutgoingVideoTrackStats();
1023 stats.AddStream(stream_); 1022 stats.AddStream(stream_);
1024 1023
1025 // Constructs an ssrc stats update. 1024 // Constructs an ssrc stats update.
1026 cricket::VideoSenderInfo video_sender_info; 1025 cricket::VideoSenderInfo video_sender_info;
1027 cricket::VideoMediaInfo stats_read; 1026 cricket::VideoMediaInfo stats_read;
1028 const int64 kBytesSent = 12345678901234LL; 1027 const int64_t kBytesSent = 12345678901234LL;
1029 1028
1030 // Construct a stats value to read. 1029 // Construct a stats value to read.
1031 video_sender_info.add_ssrc(1234); 1030 video_sender_info.add_ssrc(1234);
1032 video_sender_info.bytes_sent = kBytesSent; 1031 video_sender_info.bytes_sent = kBytesSent;
1033 stats_read.senders.push_back(video_sender_info); 1032 stats_read.senders.push_back(video_sender_info);
1034 1033
1035 EXPECT_CALL(session_, video_channel()).WillRepeatedly(Return(&video_channel)); 1034 EXPECT_CALL(session_, video_channel()).WillRepeatedly(Return(&video_channel));
1036 EXPECT_CALL(session_, voice_channel()).WillRepeatedly(ReturnNull()); 1035 EXPECT_CALL(session_, voice_channel()).WillRepeatedly(ReturnNull());
1037 EXPECT_CALL(*media_channel, GetStats(_)) 1036 EXPECT_CALL(*media_channel, GetStats(_))
1038 .WillRepeatedly(DoAll(SetArgPointee<0>(stats_read), 1037 .WillRepeatedly(DoAll(SetArgPointee<0>(stats_read),
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
1155 1154
1156 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); 1155 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel();
1157 cricket::VideoChannel video_channel(rtc::Thread::Current(), 1156 cricket::VideoChannel video_channel(rtc::Thread::Current(),
1158 media_channel, NULL, kVideoChannelName, false); 1157 media_channel, NULL, kVideoChannelName, false);
1159 AddIncomingVideoTrackStats(); 1158 AddIncomingVideoTrackStats();
1160 stats.AddStream(stream_); 1159 stats.AddStream(stream_);
1161 1160
1162 // Constructs an ssrc stats update. 1161 // Constructs an ssrc stats update.
1163 cricket::VideoReceiverInfo video_receiver_info; 1162 cricket::VideoReceiverInfo video_receiver_info;
1164 cricket::VideoMediaInfo stats_read; 1163 cricket::VideoMediaInfo stats_read;
1165 const int64 kNumOfPacketsConcealed = 54321; 1164 const int64_t kNumOfPacketsConcealed = 54321;
1166 1165
1167 // Construct a stats value to read. 1166 // Construct a stats value to read.
1168 video_receiver_info.add_ssrc(1234); 1167 video_receiver_info.add_ssrc(1234);
1169 video_receiver_info.packets_concealed = kNumOfPacketsConcealed; 1168 video_receiver_info.packets_concealed = kNumOfPacketsConcealed;
1170 stats_read.receivers.push_back(video_receiver_info); 1169 stats_read.receivers.push_back(video_receiver_info);
1171 1170
1172 EXPECT_CALL(session_, video_channel()).WillRepeatedly(Return(&video_channel)); 1171 EXPECT_CALL(session_, video_channel()).WillRepeatedly(Return(&video_channel));
1173 EXPECT_CALL(session_, voice_channel()).WillRepeatedly(ReturnNull()); 1172 EXPECT_CALL(session_, voice_channel()).WillRepeatedly(ReturnNull());
1174 EXPECT_CALL(*media_channel, GetStats(_)) 1173 EXPECT_CALL(*media_channel, GetStats(_))
1175 .WillOnce(DoAll(SetArgPointee<0>(stats_read), 1174 .WillOnce(DoAll(SetArgPointee<0>(stats_read),
1176 Return(true))); 1175 Return(true)));
1177 1176
1178 stats.UpdateStats(PeerConnectionInterface::kStatsOutputLevelStandard); 1177 stats.UpdateStats(PeerConnectionInterface::kStatsOutputLevelStandard);
1179 StatsReports reports; 1178 StatsReports reports;
1180 stats.GetStats(NULL, &reports); 1179 stats.GetStats(NULL, &reports);
1181 // |reports| should contain at least one session report, one track report, 1180 // |reports| should contain at least one session report, one track report,
1182 // and one ssrc report. 1181 // and one ssrc report.
1183 EXPECT_LE(static_cast<size_t>(3), reports.size()); 1182 EXPECT_LE(static_cast<size_t>(3), reports.size());
1184 const StatsReport* track_report = FindNthReportByType( 1183 const StatsReport* track_report = FindNthReportByType(
1185 reports, StatsReport::kStatsReportTypeTrack, 1); 1184 reports, StatsReport::kStatsReportTypeTrack, 1);
1186 EXPECT_TRUE(track_report); 1185 EXPECT_TRUE(track_report);
1187 EXPECT_EQ(stats.GetTimeNow(), track_report->timestamp()); 1186 EXPECT_EQ(stats.GetTimeNow(), track_report->timestamp());
1188 1187
1189 std::string ssrc_id = ExtractSsrcStatsValue( 1188 std::string ssrc_id = ExtractSsrcStatsValue(
1190 reports, StatsReport::kStatsValueNameSsrc); 1189 reports, StatsReport::kStatsValueNameSsrc);
1191 EXPECT_EQ(rtc::ToString<uint32>(kSsrcOfTrack), ssrc_id); 1190 EXPECT_EQ(rtc::ToString<uint32_t>(kSsrcOfTrack), ssrc_id);
1192 1191
1193 std::string track_id = ExtractSsrcStatsValue( 1192 std::string track_id = ExtractSsrcStatsValue(
1194 reports, StatsReport::kStatsValueNameTrackId); 1193 reports, StatsReport::kStatsValueNameTrackId);
1195 EXPECT_EQ(kRemoteTrackId, track_id); 1194 EXPECT_EQ(kRemoteTrackId, track_id);
1196 } 1195 }
1197 1196
1198 // This test verifies the Ice Candidate report should contain the correct 1197 // This test verifies the Ice Candidate report should contain the correct
1199 // information from local/remote candidates. 1198 // information from local/remote candidates.
1200 TEST_F(StatsCollectorTest, IceCandidateReport) { 1199 TEST_F(StatsCollectorTest, IceCandidateReport) {
1201 StatsCollectorForTest stats(&session_); 1200 StatsCollectorForTest stats(&session_);
1202 1201
1203 StatsReports reports; // returned values. 1202 StatsReports reports; // returned values.
1204 1203
1205 const int local_port = 2000; 1204 const int local_port = 2000;
1206 const char local_ip[] = "192.168.0.1"; 1205 const char local_ip[] = "192.168.0.1";
1207 const int remote_port = 2001; 1206 const int remote_port = 2001;
1208 const char remote_ip[] = "192.168.0.2"; 1207 const char remote_ip[] = "192.168.0.2";
1209 1208
1210 rtc::SocketAddress local_address(local_ip, local_port); 1209 rtc::SocketAddress local_address(local_ip, local_port);
1211 rtc::SocketAddress remote_address(remote_ip, remote_port); 1210 rtc::SocketAddress remote_address(remote_ip, remote_port);
1212 rtc::AdapterType network_type = rtc::ADAPTER_TYPE_ETHERNET; 1211 rtc::AdapterType network_type = rtc::ADAPTER_TYPE_ETHERNET;
1213 uint32 priority = 1000; 1212 uint32_t priority = 1000;
1214 1213
1215 cricket::Candidate c; 1214 cricket::Candidate c;
1216 ASSERT(c.id().length() > 0); 1215 ASSERT(c.id().length() > 0);
1217 c.set_type(cricket::LOCAL_PORT_TYPE); 1216 c.set_type(cricket::LOCAL_PORT_TYPE);
1218 c.set_protocol(cricket::UDP_PROTOCOL_NAME); 1217 c.set_protocol(cricket::UDP_PROTOCOL_NAME);
1219 c.set_address(local_address); 1218 c.set_address(local_address);
1220 c.set_priority(priority); 1219 c.set_priority(priority);
1221 c.set_network_type(network_type); 1220 c.set_network_type(network_type);
1222 std::string report_id = AddCandidateReport(&stats, c, true)->id()->ToString(); 1221 std::string report_id = AddCandidateReport(&stats, c, true)->id()->ToString();
1223 EXPECT_EQ("Cand-" + c.id(), report_id); 1222 EXPECT_EQ("Cand-" + c.id(), report_id);
(...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after
1558 // The report will exist since we don't remove them in RemoveStream(). 1557 // The report will exist since we don't remove them in RemoveStream().
1559 const StatsReport* report = FindNthReportByType( 1558 const StatsReport* report = FindNthReportByType(
1560 reports, StatsReport::kStatsReportTypeSsrc, 1); 1559 reports, StatsReport::kStatsReportTypeSsrc, 1);
1561 EXPECT_FALSE(report == NULL); 1560 EXPECT_FALSE(report == NULL);
1562 EXPECT_EQ(stats.GetTimeNow(), report->timestamp()); 1561 EXPECT_EQ(stats.GetTimeNow(), report->timestamp());
1563 std::string track_id = ExtractSsrcStatsValue( 1562 std::string track_id = ExtractSsrcStatsValue(
1564 reports, StatsReport::kStatsValueNameTrackId); 1563 reports, StatsReport::kStatsValueNameTrackId);
1565 EXPECT_EQ(kLocalTrackId, track_id); 1564 EXPECT_EQ(kLocalTrackId, track_id);
1566 std::string ssrc_id = ExtractSsrcStatsValue( 1565 std::string ssrc_id = ExtractSsrcStatsValue(
1567 reports, StatsReport::kStatsValueNameSsrc); 1566 reports, StatsReport::kStatsValueNameSsrc);
1568 EXPECT_EQ(rtc::ToString<uint32>(kSsrcOfTrack), ssrc_id); 1567 EXPECT_EQ(rtc::ToString<uint32_t>(kSsrcOfTrack), ssrc_id);
1569 1568
1570 // Verifies the values in the track report, no value will be changed by the 1569 // Verifies the values in the track report, no value will be changed by the
1571 // AudioTrackInterface::GetSignalValue() and 1570 // AudioTrackInterface::GetSignalValue() and
1572 // AudioProcessorInterface::AudioProcessorStats::GetStats(); 1571 // AudioProcessorInterface::AudioProcessorStats::GetStats();
1573 VerifyVoiceSenderInfoReport(report, voice_sender_info); 1572 VerifyVoiceSenderInfoReport(report, voice_sender_info);
1574 } 1573 }
1575 1574
1576 // This test verifies that when ongoing and incoming audio tracks are using 1575 // This test verifies that when ongoing and incoming audio tracks are using
1577 // the same ssrc, they populate stats reports correctly. 1576 // the same ssrc, they populate stats reports correctly.
1578 TEST_F(StatsCollectorTest, LocalAndRemoteTracksWithSameSsrc) { 1577 TEST_F(StatsCollectorTest, LocalAndRemoteTracksWithSameSsrc) {
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
1703 cricket::VoiceSenderInfo new_voice_sender_info; 1702 cricket::VoiceSenderInfo new_voice_sender_info;
1704 InitVoiceSenderInfo(&new_voice_sender_info); 1703 InitVoiceSenderInfo(&new_voice_sender_info);
1705 cricket::VoiceMediaInfo new_stats_read; 1704 cricket::VoiceMediaInfo new_stats_read;
1706 reports.clear(); 1705 reports.clear();
1707 SetupAndVerifyAudioTrackStats( 1706 SetupAndVerifyAudioTrackStats(
1708 new_audio_track.get(), stream_.get(), &stats, &voice_channel, kVcName, 1707 new_audio_track.get(), stream_.get(), &stats, &voice_channel, kVcName,
1709 media_channel, &new_voice_sender_info, NULL, &new_stats_read, &reports); 1708 media_channel, &new_voice_sender_info, NULL, &new_stats_read, &reports);
1710 } 1709 }
1711 1710
1712 } // namespace webrtc 1711 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698