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

Side by Side Diff: webrtc/pc/rtcstatscollector_unittest.cc

Issue 2675943002: RTCInboundRTPStreamStats.qpSum collected. (Closed)
Patch Set: Removed set timestamp, moved default testing so that a test case could be removed Created 3 years, 10 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 * Copyright 2016 The WebRTC project authors. All Rights Reserved. 2 * Copyright 2016 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 1714 matching lines...) Expand 10 before | Expand all | Expand 10 after
1725 expected_audio.transport_id = "RTCTransport_TransportName_" + 1725 expected_audio.transport_id = "RTCTransport_TransportName_" +
1726 rtc::ToString<>(cricket::ICE_CANDIDATE_COMPONENT_RTP); 1726 rtc::ToString<>(cricket::ICE_CANDIDATE_COMPONENT_RTP);
1727 expected_audio.codec_id = "RTCCodec_InboundAudio_42"; 1727 expected_audio.codec_id = "RTCCodec_InboundAudio_42";
1728 expected_audio.packets_received = 2; 1728 expected_audio.packets_received = 2;
1729 expected_audio.bytes_received = 3; 1729 expected_audio.bytes_received = 3;
1730 expected_audio.packets_lost = 42; 1730 expected_audio.packets_lost = 42;
1731 expected_audio.jitter = 4.5; 1731 expected_audio.jitter = 4.5;
1732 expected_audio.fraction_lost = 5.5; 1732 expected_audio.fraction_lost = 5.5;
1733 1733
1734 ASSERT_TRUE(report->Get(expected_audio.id())); 1734 ASSERT_TRUE(report->Get(expected_audio.id()));
1735 const RTCInboundRTPStreamStats& audio = report->Get( 1735 EXPECT_EQ(
1736 expected_audio.id())->cast_to<RTCInboundRTPStreamStats>(); 1736 report->Get(expected_audio.id())->cast_to<RTCInboundRTPStreamStats>(),
1737 EXPECT_EQ(audio, expected_audio); 1737 expected_audio);
1738
1739 EXPECT_TRUE(report->Get(*expected_audio.track_id)); 1738 EXPECT_TRUE(report->Get(*expected_audio.track_id));
1740 EXPECT_TRUE(report->Get(*expected_audio.transport_id)); 1739 EXPECT_TRUE(report->Get(*expected_audio.transport_id));
1741 EXPECT_TRUE(report->Get(*expected_audio.codec_id)); 1740 EXPECT_TRUE(report->Get(*expected_audio.codec_id));
1742 } 1741 }
1743 1742
1744 TEST_F(RTCStatsCollectorTest, CollectRTCInboundRTPStreamStats_Video) { 1743 TEST_F(RTCStatsCollectorTest, CollectRTCInboundRTPStreamStats_Video) {
1745 MockVideoMediaChannel* video_media_channel = new MockVideoMediaChannel(); 1744 MockVideoMediaChannel* video_media_channel = new MockVideoMediaChannel();
1746 cricket::VideoChannel video_channel( 1745 cricket::VideoChannel video_channel(
1747 test_->worker_thread(), test_->network_thread(), 1746 test_->worker_thread(), test_->network_thread(),
1748 test_->signaling_thread(), video_media_channel, "VideoContentName", 1747 test_->signaling_thread(), video_media_channel, "VideoContentName",
(...skipping 10 matching lines...) Expand all
1759 video_media_info.receivers[0].local_stats[0].ssrc = 1; 1758 video_media_info.receivers[0].local_stats[0].ssrc = 1;
1760 video_media_info.receivers[0].packets_rcvd = 2; 1759 video_media_info.receivers[0].packets_rcvd = 2;
1761 video_media_info.receivers[0].packets_lost = 42; 1760 video_media_info.receivers[0].packets_lost = 42;
1762 video_media_info.receivers[0].bytes_rcvd = 3; 1761 video_media_info.receivers[0].bytes_rcvd = 3;
1763 video_media_info.receivers[0].fraction_lost = 4.5f; 1762 video_media_info.receivers[0].fraction_lost = 4.5f;
1764 video_media_info.receivers[0].codec_payload_type = rtc::Optional<int>(42); 1763 video_media_info.receivers[0].codec_payload_type = rtc::Optional<int>(42);
1765 video_media_info.receivers[0].firs_sent = 5; 1764 video_media_info.receivers[0].firs_sent = 5;
1766 video_media_info.receivers[0].plis_sent = 6; 1765 video_media_info.receivers[0].plis_sent = 6;
1767 video_media_info.receivers[0].nacks_sent = 7; 1766 video_media_info.receivers[0].nacks_sent = 7;
1768 video_media_info.receivers[0].frames_decoded = 8; 1767 video_media_info.receivers[0].frames_decoded = 8;
1768 video_media_info.receivers[0].qp_sum = rtc::Optional<uint64_t>();
1769 1769
1770 RtpCodecParameters codec_parameters; 1770 RtpCodecParameters codec_parameters;
1771 codec_parameters.payload_type = 42; 1771 codec_parameters.payload_type = 42;
1772 codec_parameters.mime_type = "dummy"; 1772 codec_parameters.mime_type = "dummy";
1773 codec_parameters.clock_rate = 0; 1773 codec_parameters.clock_rate = 0;
1774 video_media_info.receive_codecs.insert( 1774 video_media_info.receive_codecs.insert(
1775 std::make_pair(codec_parameters.payload_type, codec_parameters)); 1775 std::make_pair(codec_parameters.payload_type, codec_parameters));
1776 1776
1777 EXPECT_CALL(*video_media_channel, GetStats(_)) 1777 EXPECT_CALL(*video_media_channel, GetStats(_))
1778 .WillOnce(DoAll(SetArgPointee<0>(video_media_info), Return(true))); 1778 .WillOnce(DoAll(SetArgPointee<0>(video_media_info), Return(true)));
(...skipping 29 matching lines...) Expand all
1808 rtc::ToString<>(cricket::ICE_CANDIDATE_COMPONENT_RTP); 1808 rtc::ToString<>(cricket::ICE_CANDIDATE_COMPONENT_RTP);
1809 expected_video.codec_id = "RTCCodec_InboundVideo_42"; 1809 expected_video.codec_id = "RTCCodec_InboundVideo_42";
1810 expected_video.fir_count = 5; 1810 expected_video.fir_count = 5;
1811 expected_video.pli_count = 6; 1811 expected_video.pli_count = 6;
1812 expected_video.nack_count = 7; 1812 expected_video.nack_count = 7;
1813 expected_video.packets_received = 2; 1813 expected_video.packets_received = 2;
1814 expected_video.bytes_received = 3; 1814 expected_video.bytes_received = 3;
1815 expected_video.packets_lost = 42; 1815 expected_video.packets_lost = 42;
1816 expected_video.fraction_lost = 4.5; 1816 expected_video.fraction_lost = 4.5;
1817 expected_video.frames_decoded = 8; 1817 expected_video.frames_decoded = 8;
1818 // |expected_video.qp_sum| should be undefined.
1818 1819
1819 ASSERT_TRUE(report->Get(expected_video.id())); 1820 ASSERT_TRUE(report->Get(expected_video.id()));
1820 const RTCInboundRTPStreamStats& video = report->Get( 1821 EXPECT_EQ(
1821 expected_video.id())->cast_to<RTCInboundRTPStreamStats>(); 1822 report->Get(expected_video.id())->cast_to<RTCInboundRTPStreamStats>(),
1822 EXPECT_EQ(video, expected_video); 1823 expected_video);
1823 1824
1825 // Set previously undefined values and "GetStats" again.
1826 video_media_info.receivers[0].qp_sum = rtc::Optional<uint64_t>(9);
1827 expected_video.qp_sum = 9;
1828
1829 EXPECT_CALL(*video_media_channel, GetStats(_))
1830 .WillOnce(DoAll(SetArgPointee<0>(video_media_info), Return(true)));
1831 collector_->ClearCachedStatsReport();
1832 report = GetStatsReport();
1833
1834 ASSERT_TRUE(report->Get(expected_video.id()));
1835 EXPECT_EQ(
1836 report->Get(expected_video.id())->cast_to<RTCInboundRTPStreamStats>(),
1837 expected_video);
1824 EXPECT_TRUE(report->Get(*expected_video.track_id)); 1838 EXPECT_TRUE(report->Get(*expected_video.track_id));
1825 EXPECT_TRUE(report->Get(*expected_video.transport_id)); 1839 EXPECT_TRUE(report->Get(*expected_video.transport_id));
1826 EXPECT_TRUE(report->Get(*video.codec_id)); 1840 EXPECT_TRUE(report->Get(*expected_video.codec_id));
1827 } 1841 }
1828 1842
1829 TEST_F(RTCStatsCollectorTest, CollectRTCOutboundRTPStreamStats_Audio) { 1843 TEST_F(RTCStatsCollectorTest, CollectRTCOutboundRTPStreamStats_Audio) {
1830 MockVoiceMediaChannel* voice_media_channel = new MockVoiceMediaChannel(); 1844 MockVoiceMediaChannel* voice_media_channel = new MockVoiceMediaChannel();
1831 cricket::VoiceChannel voice_channel( 1845 cricket::VoiceChannel voice_channel(
1832 test_->worker_thread(), test_->network_thread(), 1846 test_->worker_thread(), test_->network_thread(),
1833 test_->signaling_thread(), test_->media_engine(), voice_media_channel, 1847 test_->signaling_thread(), test_->media_engine(), voice_media_channel,
1834 "VoiceContentName", kDefaultRtcpMuxRequired, kDefaultSrtpRequired); 1848 "VoiceContentName", kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
1835 1849
1836 test_->SetupLocalTrackAndSender( 1850 test_->SetupLocalTrackAndSender(
1837 cricket::MEDIA_TYPE_AUDIO, "LocalAudioTrackID", 1); 1851 cricket::MEDIA_TYPE_AUDIO, "LocalAudioTrackID", 1);
1838 1852
1839 cricket::VoiceMediaInfo voice_media_info; 1853 cricket::VoiceMediaInfo voice_media_info;
1840 1854
1841 voice_media_info.senders.push_back(cricket::VoiceSenderInfo()); 1855 voice_media_info.senders.push_back(cricket::VoiceSenderInfo());
1842 voice_media_info.senders[0].local_stats.push_back(cricket::SsrcSenderInfo()); 1856 voice_media_info.senders[0].local_stats.push_back(cricket::SsrcSenderInfo());
1843 voice_media_info.senders[0].local_stats[0].ssrc = 1; 1857 voice_media_info.senders[0].local_stats[0].ssrc = 1;
1844 voice_media_info.senders[0].packets_sent = 2; 1858 voice_media_info.senders[0].packets_sent = 2;
1845 voice_media_info.senders[0].bytes_sent = 3; 1859 voice_media_info.senders[0].bytes_sent = 3;
1846 voice_media_info.senders[0].rtt_ms = 4500; 1860 voice_media_info.senders[0].rtt_ms = -1;
1847 voice_media_info.senders[0].codec_payload_type = rtc::Optional<int>(42); 1861 voice_media_info.senders[0].codec_payload_type = rtc::Optional<int>(42);
1848 1862
1849 RtpCodecParameters codec_parameters; 1863 RtpCodecParameters codec_parameters;
1850 codec_parameters.payload_type = 42; 1864 codec_parameters.payload_type = 42;
1851 codec_parameters.mime_type = "dummy"; 1865 codec_parameters.mime_type = "dummy";
1852 codec_parameters.clock_rate = 0; 1866 codec_parameters.clock_rate = 0;
1853 voice_media_info.send_codecs.insert( 1867 voice_media_info.send_codecs.insert(
1854 std::make_pair(codec_parameters.payload_type, codec_parameters)); 1868 std::make_pair(codec_parameters.payload_type, codec_parameters));
1855 1869
1856 EXPECT_CALL(*voice_media_channel, GetStats(_)) 1870 EXPECT_CALL(*voice_media_channel, GetStats(_))
(...skipping 24 matching lines...) Expand all
1881 expected_audio.ssrc = "1"; 1895 expected_audio.ssrc = "1";
1882 expected_audio.is_remote = false; 1896 expected_audio.is_remote = false;
1883 expected_audio.media_type = "audio"; 1897 expected_audio.media_type = "audio";
1884 expected_audio.track_id = 1898 expected_audio.track_id =
1885 "RTCMediaStreamTrack_local_audio_LocalAudioTrackID_1"; 1899 "RTCMediaStreamTrack_local_audio_LocalAudioTrackID_1";
1886 expected_audio.transport_id = "RTCTransport_TransportName_" + 1900 expected_audio.transport_id = "RTCTransport_TransportName_" +
1887 rtc::ToString<>(cricket::ICE_CANDIDATE_COMPONENT_RTP); 1901 rtc::ToString<>(cricket::ICE_CANDIDATE_COMPONENT_RTP);
1888 expected_audio.codec_id = "RTCCodec_OutboundAudio_42"; 1902 expected_audio.codec_id = "RTCCodec_OutboundAudio_42";
1889 expected_audio.packets_sent = 2; 1903 expected_audio.packets_sent = 2;
1890 expected_audio.bytes_sent = 3; 1904 expected_audio.bytes_sent = 3;
1905 // |expected_audio.round_trip_time| should be undefined.
1906
1907 ASSERT_TRUE(report->Get(expected_audio.id()));
1908 EXPECT_EQ(
1909 report->Get(expected_audio.id())->cast_to<RTCOutboundRTPStreamStats>(),
1910 expected_audio);
1911
1912 // Set previously undefined values and "GetStats" again.
1913 voice_media_info.senders[0].rtt_ms = 4500;
hta-webrtc 2017/02/07 12:19:41 Is this an unrelated change that has snuck in, doe
hbos 2017/02/07 15:37:04 This is from me testing default and non-default va
1891 expected_audio.round_trip_time = 4.5; 1914 expected_audio.round_trip_time = 4.5;
1892 1915
1916 EXPECT_CALL(*voice_media_channel, GetStats(_))
1917 .WillOnce(DoAll(SetArgPointee<0>(voice_media_info), Return(true)));
1918 collector_->ClearCachedStatsReport();
1919 report = GetStatsReport();
1920
1893 ASSERT_TRUE(report->Get(expected_audio.id())); 1921 ASSERT_TRUE(report->Get(expected_audio.id()));
1894 const RTCOutboundRTPStreamStats& audio = report->Get( 1922 EXPECT_EQ(
1895 expected_audio.id())->cast_to<RTCOutboundRTPStreamStats>(); 1923 report->Get(expected_audio.id())->cast_to<RTCOutboundRTPStreamStats>(),
1896 EXPECT_EQ(audio, expected_audio); 1924 expected_audio);
1897
1898 EXPECT_TRUE(report->Get(*expected_audio.track_id)); 1925 EXPECT_TRUE(report->Get(*expected_audio.track_id));
1899 EXPECT_TRUE(report->Get(*expected_audio.transport_id)); 1926 EXPECT_TRUE(report->Get(*expected_audio.transport_id));
1900 EXPECT_TRUE(report->Get(*expected_audio.codec_id)); 1927 EXPECT_TRUE(report->Get(*expected_audio.codec_id));
1901 } 1928 }
1902 1929
1903 TEST_F(RTCStatsCollectorTest, CollectRTCOutboundRTPStreamStats_Video) { 1930 TEST_F(RTCStatsCollectorTest, CollectRTCOutboundRTPStreamStats_Video) {
1904 MockVideoMediaChannel* video_media_channel = new MockVideoMediaChannel(); 1931 MockVideoMediaChannel* video_media_channel = new MockVideoMediaChannel();
1905 cricket::VideoChannel video_channel( 1932 cricket::VideoChannel video_channel(
1906 test_->worker_thread(), test_->network_thread(), 1933 test_->worker_thread(), test_->network_thread(),
1907 test_->signaling_thread(), video_media_channel, "VideoContentName", 1934 test_->signaling_thread(), video_media_channel, "VideoContentName",
1908 kDefaultRtcpMuxRequired, kDefaultSrtpRequired); 1935 kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
1909 1936
1910 test_->SetupLocalTrackAndSender( 1937 test_->SetupLocalTrackAndSender(
1911 cricket::MEDIA_TYPE_VIDEO, "LocalVideoTrackID", 1); 1938 cricket::MEDIA_TYPE_VIDEO, "LocalVideoTrackID", 1);
1912 1939
1913 cricket::VideoMediaInfo video_media_info; 1940 cricket::VideoMediaInfo video_media_info;
1914 1941
1915 video_media_info.senders.push_back(cricket::VideoSenderInfo()); 1942 video_media_info.senders.push_back(cricket::VideoSenderInfo());
1916 video_media_info.senders[0].local_stats.push_back(cricket::SsrcSenderInfo()); 1943 video_media_info.senders[0].local_stats.push_back(cricket::SsrcSenderInfo());
1917 video_media_info.senders[0].local_stats[0].ssrc = 1; 1944 video_media_info.senders[0].local_stats[0].ssrc = 1;
1918 video_media_info.senders[0].firs_rcvd = 2; 1945 video_media_info.senders[0].firs_rcvd = 2;
1919 video_media_info.senders[0].plis_rcvd = 3; 1946 video_media_info.senders[0].plis_rcvd = 3;
1920 video_media_info.senders[0].nacks_rcvd = 4; 1947 video_media_info.senders[0].nacks_rcvd = 4;
1921 video_media_info.senders[0].packets_sent = 5; 1948 video_media_info.senders[0].packets_sent = 5;
1922 video_media_info.senders[0].bytes_sent = 6; 1949 video_media_info.senders[0].bytes_sent = 6;
1923 video_media_info.senders[0].rtt_ms = 7500; 1950 video_media_info.senders[0].rtt_ms = -1;
1924 video_media_info.senders[0].codec_payload_type = rtc::Optional<int>(42); 1951 video_media_info.senders[0].codec_payload_type = rtc::Optional<int>(42);
1925 video_media_info.senders[0].frames_encoded = 8; 1952 video_media_info.senders[0].frames_encoded = 8;
1926 video_media_info.senders[0].qp_sum = rtc::Optional<uint64_t>(16); 1953 video_media_info.senders[0].qp_sum = rtc::Optional<uint64_t>();
1927 1954
1928 RtpCodecParameters codec_parameters; 1955 RtpCodecParameters codec_parameters;
1929 codec_parameters.payload_type = 42; 1956 codec_parameters.payload_type = 42;
1930 codec_parameters.mime_type = "dummy"; 1957 codec_parameters.mime_type = "dummy";
1931 codec_parameters.clock_rate = 0; 1958 codec_parameters.clock_rate = 0;
1932 video_media_info.send_codecs.insert( 1959 video_media_info.send_codecs.insert(
1933 std::make_pair(codec_parameters.payload_type, codec_parameters)); 1960 std::make_pair(codec_parameters.payload_type, codec_parameters));
1934 1961
1935 EXPECT_CALL(*video_media_channel, GetStats(_)) 1962 EXPECT_CALL(*video_media_channel, GetStats(_))
1936 .WillOnce(DoAll(SetArgPointee<0>(video_media_info), Return(true))); 1963 .WillOnce(DoAll(SetArgPointee<0>(video_media_info), Return(true)));
(...skipping 26 matching lines...) Expand all
1963 expected_video.track_id = 1990 expected_video.track_id =
1964 "RTCMediaStreamTrack_local_video_LocalVideoTrackID_1"; 1991 "RTCMediaStreamTrack_local_video_LocalVideoTrackID_1";
1965 expected_video.transport_id = "RTCTransport_TransportName_" + 1992 expected_video.transport_id = "RTCTransport_TransportName_" +
1966 rtc::ToString<>(cricket::ICE_CANDIDATE_COMPONENT_RTP); 1993 rtc::ToString<>(cricket::ICE_CANDIDATE_COMPONENT_RTP);
1967 expected_video.codec_id = "RTCCodec_OutboundVideo_42"; 1994 expected_video.codec_id = "RTCCodec_OutboundVideo_42";
1968 expected_video.fir_count = 2; 1995 expected_video.fir_count = 2;
1969 expected_video.pli_count = 3; 1996 expected_video.pli_count = 3;
1970 expected_video.nack_count = 4; 1997 expected_video.nack_count = 4;
1971 expected_video.packets_sent = 5; 1998 expected_video.packets_sent = 5;
1972 expected_video.bytes_sent = 6; 1999 expected_video.bytes_sent = 6;
1973 expected_video.round_trip_time = 7.5;
1974 expected_video.frames_encoded = 8; 2000 expected_video.frames_encoded = 8;
1975 expected_video.qp_sum = 16; 2001 // |expected_video.round_trip_time| and |expected_video.qp_sum| should be
2002 // undefined.
1976 2003
1977 ASSERT_TRUE(report->Get(expected_video.id())); 2004 ASSERT_TRUE(report->Get(expected_video.id()));
1978 const RTCOutboundRTPStreamStats& video = report->Get( 2005 EXPECT_EQ(
1979 expected_video.id())->cast_to<RTCOutboundRTPStreamStats>(); 2006 report->Get(expected_video.id())->cast_to<RTCOutboundRTPStreamStats>(),
1980 EXPECT_EQ(video, expected_video); 2007 expected_video);
1981 2008
2009 // Set previously undefined values and "GetStats" again.
2010 video_media_info.senders[0].rtt_ms = 7500;
2011 video_media_info.senders[0].qp_sum = rtc::Optional<uint64_t>(9);
2012 expected_video.round_trip_time = 7.5;
2013 expected_video.qp_sum = 9;
2014
2015 EXPECT_CALL(*video_media_channel, GetStats(_))
2016 .WillOnce(DoAll(SetArgPointee<0>(video_media_info), Return(true)));
2017 collector_->ClearCachedStatsReport();
2018 report = GetStatsReport();
2019
2020 ASSERT_TRUE(report->Get(expected_video.id()));
2021 EXPECT_EQ(
2022 report->Get(expected_video.id())->cast_to<RTCOutboundRTPStreamStats>(),
2023 expected_video);
2024
2025 ASSERT_TRUE(report->Get(expected_video.id()));
2026 EXPECT_EQ(
2027 report->Get(expected_video.id())->cast_to<RTCOutboundRTPStreamStats>(),
2028 expected_video);
1982 EXPECT_TRUE(report->Get(*expected_video.track_id)); 2029 EXPECT_TRUE(report->Get(*expected_video.track_id));
1983 EXPECT_TRUE(report->Get(*expected_video.transport_id)); 2030 EXPECT_TRUE(report->Get(*expected_video.transport_id));
1984 EXPECT_TRUE(report->Get(*expected_video.codec_id)); 2031 EXPECT_TRUE(report->Get(*expected_video.codec_id));
1985 } 2032 }
1986 2033
1987 TEST_F(RTCStatsCollectorTest, CollectRTCOutboundRTPStreamStats_Default) {
1988 MockVoiceMediaChannel* voice_media_channel = new MockVoiceMediaChannel();
1989 cricket::VoiceChannel voice_channel(
1990 test_->worker_thread(), test_->network_thread(),
1991 test_->signaling_thread(), test_->media_engine(), voice_media_channel,
1992 "VoiceContentName", kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
1993 MockVideoMediaChannel* video_media_channel = new MockVideoMediaChannel();
1994 cricket::VideoChannel video_channel(
1995 test_->worker_thread(), test_->network_thread(),
1996 test_->signaling_thread(), video_media_channel, "VideoContentName",
1997 kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
1998
1999 cricket::VoiceMediaInfo voice_media_info;
2000 voice_media_info.senders.push_back(cricket::VoiceSenderInfo());
2001 voice_media_info.senders[0].local_stats.push_back(cricket::SsrcSenderInfo());
2002 voice_media_info.senders[0].local_stats[0].ssrc = 1;
2003 voice_media_info.senders[0].packets_sent = 2;
2004 voice_media_info.senders[0].bytes_sent = 3;
2005 voice_media_info.senders[0].rtt_ms = -1;
2006 voice_media_info.senders[0].codec_payload_type = rtc::Optional<int>(42);
2007
2008 cricket::VideoMediaInfo video_media_info;
2009 video_media_info.senders.push_back(cricket::VideoSenderInfo());
2010 video_media_info.senders[0].local_stats.push_back(cricket::SsrcSenderInfo());
2011 video_media_info.senders[0].local_stats[0].ssrc = 1;
2012 video_media_info.senders[0].firs_rcvd = 2;
2013 video_media_info.senders[0].plis_rcvd = 3;
2014 video_media_info.senders[0].nacks_rcvd = 4;
2015 video_media_info.senders[0].packets_sent = 5;
2016 video_media_info.senders[0].bytes_sent = 6;
2017 video_media_info.senders[0].rtt_ms = -1;
2018 video_media_info.senders[0].codec_payload_type = rtc::Optional<int>(42);
2019 video_media_info.senders[0].frames_encoded = 7;
2020
2021 EXPECT_CALL(*voice_media_channel, GetStats(_))
2022 .WillOnce(DoAll(SetArgPointee<0>(voice_media_info), Return(true)));
2023 EXPECT_CALL(*video_media_channel, GetStats(_))
2024 .WillOnce(DoAll(SetArgPointee<0>(video_media_info), Return(true)));
2025
2026 SessionStats session_stats;
2027 session_stats.proxy_to_transport["VoiceContentName"] = "TransportName";
2028 session_stats.proxy_to_transport["VideoContentName"] = "TransportName";
2029 session_stats.transport_stats["TransportName"].transport_name =
2030 "TransportName";
2031
2032 // Make sure the associated |RTCTransportStats| is created.
2033 cricket::TransportChannelStats channel_stats;
2034 channel_stats.component = cricket::ICE_CANDIDATE_COMPONENT_RTP;
2035 session_stats.transport_stats["TransportName"].channel_stats.push_back(
2036 channel_stats);
2037
2038 EXPECT_CALL(test_->session(), GetStats(_)).WillRepeatedly(Invoke(
2039 [&session_stats](const ChannelNamePairs&) {
2040 return std::unique_ptr<SessionStats>(new SessionStats(session_stats));
2041 }));
2042 EXPECT_CALL(test_->session(), voice_channel())
2043 .WillRepeatedly(Return(&voice_channel));
2044 EXPECT_CALL(test_->session(), video_channel())
2045 .WillRepeatedly(Return(&video_channel));
2046
2047 rtc::scoped_refptr<const RTCStatsReport> report = GetStatsReport();
2048
2049 RTCOutboundRTPStreamStats expected_audio(
2050 "RTCOutboundRTPAudioStream_1", report->timestamp_us());
2051 expected_audio.ssrc = "1";
2052 expected_audio.is_remote = false;
2053 expected_audio.media_type = "audio";
2054 expected_audio.transport_id = "RTCTransport_TransportName_" +
2055 rtc::ToString<>(cricket::ICE_CANDIDATE_COMPONENT_RTP);
2056 expected_audio.codec_id = "RTCCodec_OutboundAudio_42";
2057 expected_audio.packets_sent = 2;
2058 expected_audio.bytes_sent = 3;
2059 // |expected_audio.round_trip_time| should be undefined.
2060
2061 ASSERT_TRUE(report->Get(expected_audio.id()));
2062 const RTCOutboundRTPStreamStats& audio = report->Get(
2063 expected_audio.id())->cast_to<RTCOutboundRTPStreamStats>();
2064 EXPECT_EQ(audio, expected_audio);
2065
2066 RTCOutboundRTPStreamStats expected_video(
2067 "RTCOutboundRTPVideoStream_1", report->timestamp_us());
2068 expected_video.ssrc = "1";
2069 expected_video.is_remote = false;
2070 expected_video.media_type = "video";
2071 expected_video.transport_id = "RTCTransport_TransportName_" +
2072 rtc::ToString<>(cricket::ICE_CANDIDATE_COMPONENT_RTP);
2073 expected_video.codec_id = "RTCCodec_OutboundVideo_42";
2074 expected_video.fir_count = 2;
2075 expected_video.pli_count = 3;
2076 expected_video.nack_count = 4;
2077 expected_video.packets_sent = 5;
2078 expected_video.bytes_sent = 6;
2079 expected_video.frames_encoded = 7;
2080 // |expected_video.round_trip_time| should be undefined.
2081 // |expected_video.qp_sum| should be undefined.
2082
2083 ASSERT_TRUE(report->Get(expected_video.id()));
2084 const RTCOutboundRTPStreamStats& video = report->Get(
2085 expected_video.id())->cast_to<RTCOutboundRTPStreamStats>();
2086 EXPECT_EQ(video, expected_video);
2087 }
2088
2089 TEST_F(RTCStatsCollectorTest, CollectRTCTransportStats) { 2034 TEST_F(RTCStatsCollectorTest, CollectRTCTransportStats) {
2090 std::unique_ptr<cricket::Candidate> rtp_local_candidate = CreateFakeCandidate( 2035 std::unique_ptr<cricket::Candidate> rtp_local_candidate = CreateFakeCandidate(
2091 "42.42.42.42", 42, "protocol", cricket::LOCAL_PORT_TYPE, 42); 2036 "42.42.42.42", 42, "protocol", cricket::LOCAL_PORT_TYPE, 42);
2092 std::unique_ptr<cricket::Candidate> rtp_remote_candidate = 2037 std::unique_ptr<cricket::Candidate> rtp_remote_candidate =
2093 CreateFakeCandidate("42.42.42.42", 42, "protocol", 2038 CreateFakeCandidate("42.42.42.42", 42, "protocol",
2094 cricket::LOCAL_PORT_TYPE, 42); 2039 cricket::LOCAL_PORT_TYPE, 42);
2095 std::unique_ptr<cricket::Candidate> rtcp_local_candidate = 2040 std::unique_ptr<cricket::Candidate> rtcp_local_candidate =
2096 CreateFakeCandidate("42.42.42.42", 42, "protocol", 2041 CreateFakeCandidate("42.42.42.42", 42, "protocol",
2097 cricket::LOCAL_PORT_TYPE, 42); 2042 cricket::LOCAL_PORT_TYPE, 42);
2098 std::unique_ptr<cricket::Candidate> rtcp_remote_candidate = 2043 std::unique_ptr<cricket::Candidate> rtcp_remote_candidate =
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
2257 rtc::scoped_refptr<FakeRTCStatsCollector> collector_; 2202 rtc::scoped_refptr<FakeRTCStatsCollector> collector_;
2258 }; 2203 };
2259 2204
2260 TEST_F(RTCStatsCollectorTestWithFakeCollector, ThreadUsageAndResultsMerging) { 2205 TEST_F(RTCStatsCollectorTestWithFakeCollector, ThreadUsageAndResultsMerging) {
2261 collector_->VerifyThreadUsageAndResultsMerging(); 2206 collector_->VerifyThreadUsageAndResultsMerging();
2262 } 2207 }
2263 2208
2264 } // namespace 2209 } // namespace
2265 2210
2266 } // namespace webrtc 2211 } // namespace webrtc
OLDNEW
« webrtc/pc/rtcstats_integrationtest.cc ('K') | « webrtc/pc/rtcstatscollector.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698