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

Side by Side Diff: net/nqe/network_quality_estimator_unittest.cc

Issue 2911473002: Expose transport RTT estimate from Network Quality Estimator (NQE) (Closed)
Patch Set: ryansturm comment Created 3 years, 6 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
« no previous file with comments | « net/nqe/network_quality_estimator.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "net/nqe/network_quality_estimator.h" 5 #include "net/nqe/network_quality_estimator.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <limits> 10 #include <limits>
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
217 request->SetLoadFlags(request->load_flags() | LOAD_MAIN_FRAME_DEPRECATED); 217 request->SetLoadFlags(request->load_flags() | LOAD_MAIN_FRAME_DEPRECATED);
218 request->Start(); 218 request->Start();
219 base::RunLoop().Run(); 219 base::RunLoop().Run();
220 220
221 // Both RTT and downstream throughput should be updated. 221 // Both RTT and downstream throughput should be updated.
222 base::TimeDelta http_rtt; 222 base::TimeDelta http_rtt;
223 EXPECT_TRUE(estimator.GetRecentHttpRTT(base::TimeTicks(), &http_rtt)); 223 EXPECT_TRUE(estimator.GetRecentHttpRTT(base::TimeTicks(), &http_rtt));
224 EXPECT_TRUE( 224 EXPECT_TRUE(
225 estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps)); 225 estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps));
226 base::TimeDelta transport_rtt; 226 base::TimeDelta transport_rtt;
227 EXPECT_FALSE(estimator.GetTransportRTT());
227 EXPECT_FALSE( 228 EXPECT_FALSE(
228 estimator.GetRecentTransportRTT(base::TimeTicks(), &transport_rtt)); 229 estimator.GetRecentTransportRTT(base::TimeTicks(), &transport_rtt));
229 230
230 // Verify the contents of the net log. 231 // Verify the contents of the net log.
231 EXPECT_LE( 232 EXPECT_LE(
232 2, estimator.GetEntriesCount(NetLogEventType::NETWORK_QUALITY_CHANGED)); 233 2, estimator.GetEntriesCount(NetLogEventType::NETWORK_QUALITY_CHANGED));
233 EXPECT_EQ(http_rtt.InMilliseconds(), 234 EXPECT_EQ(http_rtt.InMilliseconds(),
234 estimator.GetNetLogLastIntegerValue( 235 estimator.GetNetLogLastIntegerValue(
235 NetLogEventType::NETWORK_QUALITY_CHANGED, "http_rtt_ms")); 236 NetLogEventType::NETWORK_QUALITY_CHANGED, "http_rtt_ms"));
236 EXPECT_EQ(-1, 237 EXPECT_EQ(-1,
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
394 395
395 base::RunLoop().RunUntilIdle(); 396 base::RunLoop().RunUntilIdle();
396 397
397 // Both RTT and downstream throughput should be updated. 398 // Both RTT and downstream throughput should be updated.
398 EXPECT_TRUE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt)); 399 EXPECT_TRUE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt));
399 EXPECT_TRUE( 400 EXPECT_TRUE(
400 estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps)); 401 estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps));
401 EXPECT_NE(EFFECTIVE_CONNECTION_TYPE_UNKNOWN, 402 EXPECT_NE(EFFECTIVE_CONNECTION_TYPE_UNKNOWN,
402 estimator.GetEffectiveConnectionType()); 403 estimator.GetEffectiveConnectionType());
403 EXPECT_FALSE(estimator.GetRecentTransportRTT(base::TimeTicks(), &rtt)); 404 EXPECT_FALSE(estimator.GetRecentTransportRTT(base::TimeTicks(), &rtt));
405 EXPECT_FALSE(estimator.GetTransportRTT());
404 406
405 histogram_tester.ExpectBucketCount("NQE.CachedNetworkQualityAvailable", false, 407 histogram_tester.ExpectBucketCount("NQE.CachedNetworkQualityAvailable", false,
406 1); 408 1);
407 409
408 // Add the observers before changing the network type. 410 // Add the observers before changing the network type.
409 TestEffectiveConnectionTypeObserver observer; 411 TestEffectiveConnectionTypeObserver observer;
410 estimator.AddEffectiveConnectionTypeObserver(&observer); 412 estimator.AddEffectiveConnectionTypeObserver(&observer);
411 TestRTTObserver rtt_observer; 413 TestRTTObserver rtt_observer;
412 estimator.AddRTTObserver(&rtt_observer); 414 estimator.AddRTTObserver(&rtt_observer);
413 TestThroughputObserver throughput_observer; 415 TestThroughputObserver throughput_observer;
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
500 502
501 base::RunLoop().RunUntilIdle(); 503 base::RunLoop().RunUntilIdle();
502 504
503 // Both RTT and downstream throughput should be updated. 505 // Both RTT and downstream throughput should be updated.
504 EXPECT_TRUE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt)); 506 EXPECT_TRUE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt));
505 EXPECT_TRUE( 507 EXPECT_TRUE(
506 estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps)); 508 estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps));
507 EXPECT_NE(EFFECTIVE_CONNECTION_TYPE_UNKNOWN, 509 EXPECT_NE(EFFECTIVE_CONNECTION_TYPE_UNKNOWN,
508 estimator.GetEffectiveConnectionType()); 510 estimator.GetEffectiveConnectionType());
509 EXPECT_FALSE(estimator.GetRecentTransportRTT(base::TimeTicks(), &rtt)); 511 EXPECT_FALSE(estimator.GetRecentTransportRTT(base::TimeTicks(), &rtt));
512 EXPECT_FALSE(estimator.GetTransportRTT());
510 513
511 histogram_tester.ExpectTotalCount("NQE.CachedNetworkQualityAvailable", 0); 514 histogram_tester.ExpectTotalCount("NQE.CachedNetworkQualityAvailable", 0);
512 515
513 // Add the observers before changing the network type. 516 // Add the observers before changing the network type.
514 TestRTTObserver rtt_observer; 517 TestRTTObserver rtt_observer;
515 estimator.AddRTTObserver(&rtt_observer); 518 estimator.AddRTTObserver(&rtt_observer);
516 TestThroughputObserver throughput_observer; 519 TestThroughputObserver throughput_observer;
517 estimator.AddThroughputObserver(&throughput_observer); 520 estimator.AddThroughputObserver(&throughput_observer);
518 521
519 estimator.SimulateNetworkChange( 522 estimator.SimulateNetworkChange(
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
684 histogram_tester.ExpectTotalCount("NQE.Kbps.ObservationSource", 1); 687 histogram_tester.ExpectTotalCount("NQE.Kbps.ObservationSource", 1);
685 688
686 base::TimeDelta rtt; 689 base::TimeDelta rtt;
687 int32_t kbps; 690 int32_t kbps;
688 691
689 // Default estimates should be available. 692 // Default estimates should be available.
690 EXPECT_TRUE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt)); 693 EXPECT_TRUE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt));
691 EXPECT_EQ(base::TimeDelta::FromMilliseconds(115), rtt); 694 EXPECT_EQ(base::TimeDelta::FromMilliseconds(115), rtt);
692 EXPECT_TRUE(estimator.GetRecentTransportRTT(base::TimeTicks(), &rtt)); 695 EXPECT_TRUE(estimator.GetRecentTransportRTT(base::TimeTicks(), &rtt));
693 EXPECT_EQ(base::TimeDelta::FromMilliseconds(55), rtt); 696 EXPECT_EQ(base::TimeDelta::FromMilliseconds(55), rtt);
697 EXPECT_EQ(rtt, estimator.GetTransportRTT().value());
694 EXPECT_TRUE( 698 EXPECT_TRUE(
695 estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps)); 699 estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps));
696 EXPECT_EQ(1961, kbps); 700 EXPECT_EQ(1961, kbps);
697 701
698 estimator.AddEffectiveConnectionTypeObserver( 702 estimator.AddEffectiveConnectionTypeObserver(
699 &effective_connection_type_observer); 703 &effective_connection_type_observer);
700 estimator.AddRTTAndThroughputEstimatesObserver( 704 estimator.AddRTTAndThroughputEstimatesObserver(
701 &rtt_throughput_estimates_observer); 705 &rtt_throughput_estimates_observer);
702 estimator.AddRTTObserver(&rtt_observer); 706 estimator.AddRTTObserver(&rtt_observer);
703 estimator.AddThroughputObserver(&throughput_observer); 707 estimator.AddThroughputObserver(&throughput_observer);
704 708
705 // Simulate network change to 3G. Default estimates should be available. 709 // Simulate network change to 3G. Default estimates should be available.
706 estimator.SimulateNetworkChange( 710 estimator.SimulateNetworkChange(
707 NetworkChangeNotifier::ConnectionType::CONNECTION_3G, "test-3"); 711 NetworkChangeNotifier::ConnectionType::CONNECTION_3G, "test-3");
708 EXPECT_TRUE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt)); 712 EXPECT_TRUE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt));
709 // Taken from network_quality_estimator_params.cc. 713 // Taken from network_quality_estimator_params.cc.
710 EXPECT_EQ(base::TimeDelta::FromMilliseconds(272), rtt); 714 EXPECT_EQ(base::TimeDelta::FromMilliseconds(272), rtt);
711 EXPECT_TRUE(estimator.GetRecentTransportRTT(base::TimeTicks(), &rtt)); 715 EXPECT_TRUE(estimator.GetRecentTransportRTT(base::TimeTicks(), &rtt));
712 EXPECT_EQ(base::TimeDelta::FromMilliseconds(209), rtt); 716 EXPECT_EQ(base::TimeDelta::FromMilliseconds(209), rtt);
717 EXPECT_EQ(rtt, estimator.GetTransportRTT());
713 EXPECT_TRUE( 718 EXPECT_TRUE(
714 estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps)); 719 estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps));
715 EXPECT_EQ(749, kbps); 720 EXPECT_EQ(749, kbps);
716 721
717 EXPECT_NE(EFFECTIVE_CONNECTION_TYPE_UNKNOWN, 722 EXPECT_NE(EFFECTIVE_CONNECTION_TYPE_UNKNOWN,
718 estimator.GetEffectiveConnectionType()); 723 estimator.GetEffectiveConnectionType());
719 EXPECT_EQ( 724 EXPECT_EQ(
720 1U, 725 1U,
721 effective_connection_type_observer.effective_connection_types().size()); 726 effective_connection_type_observer.effective_connection_types().size());
722 EXPECT_NE( 727 EXPECT_NE(
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
778 true /* add_default_platform_observations */, 783 true /* add_default_platform_observations */,
779 base::MakeUnique<BoundTestNetLog>()); 784 base::MakeUnique<BoundTestNetLog>());
780 785
781 base::TimeDelta rtt; 786 base::TimeDelta rtt;
782 int32_t kbps; 787 int32_t kbps;
783 788
784 EXPECT_TRUE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt)); 789 EXPECT_TRUE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt));
785 EXPECT_EQ(base::TimeDelta::FromMilliseconds(1000), rtt); 790 EXPECT_EQ(base::TimeDelta::FromMilliseconds(1000), rtt);
786 EXPECT_TRUE(estimator.GetRecentTransportRTT(base::TimeTicks(), &rtt)); 791 EXPECT_TRUE(estimator.GetRecentTransportRTT(base::TimeTicks(), &rtt));
787 EXPECT_EQ(base::TimeDelta::FromMilliseconds(500), rtt); 792 EXPECT_EQ(base::TimeDelta::FromMilliseconds(500), rtt);
793 EXPECT_EQ(rtt, estimator.GetTransportRTT().value());
788 EXPECT_TRUE( 794 EXPECT_TRUE(
789 estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps)); 795 estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps));
790 EXPECT_EQ(100, kbps); 796 EXPECT_EQ(100, kbps);
791 797
792 // Simulate network change to Wi-Fi. 798 // Simulate network change to Wi-Fi.
793 estimator.SimulateNetworkChange( 799 estimator.SimulateNetworkChange(
794 NetworkChangeNotifier::ConnectionType::CONNECTION_WIFI, "test-1"); 800 NetworkChangeNotifier::ConnectionType::CONNECTION_WIFI, "test-1");
795 EXPECT_TRUE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt)); 801 EXPECT_TRUE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt));
796 EXPECT_EQ(base::TimeDelta::FromMilliseconds(2000), rtt); 802 EXPECT_EQ(base::TimeDelta::FromMilliseconds(2000), rtt);
797 EXPECT_TRUE(estimator.GetRecentTransportRTT(base::TimeTicks(), &rtt)); 803 EXPECT_TRUE(estimator.GetRecentTransportRTT(base::TimeTicks(), &rtt));
798 EXPECT_EQ(base::TimeDelta::FromMilliseconds(1000), rtt); 804 EXPECT_EQ(base::TimeDelta::FromMilliseconds(1000), rtt);
805 EXPECT_EQ(rtt, estimator.GetTransportRTT().value());
799 EXPECT_TRUE( 806 EXPECT_TRUE(
800 estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps)); 807 estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps));
801 EXPECT_EQ(200, kbps); 808 EXPECT_EQ(200, kbps);
802 809
803 // Peak network quality should not be affected by the network quality 810 // Peak network quality should not be affected by the network quality
804 // estimator field trial. 811 // estimator field trial.
805 EXPECT_EQ(nqe::internal::InvalidRTT(), 812 EXPECT_EQ(nqe::internal::InvalidRTT(),
806 estimator.peak_network_quality_.http_rtt()); 813 estimator.peak_network_quality_.http_rtt());
807 EXPECT_EQ(nqe::internal::kInvalidThroughput, 814 EXPECT_EQ(nqe::internal::kInvalidThroughput,
808 estimator.peak_network_quality_.downstream_throughput_kbps()); 815 estimator.peak_network_quality_.downstream_throughput_kbps());
809 816
810 // Simulate network change to 2G. Only the Kbps default estimate should be 817 // Simulate network change to 2G. Only the Kbps default estimate should be
811 // available. 818 // available.
812 estimator.SimulateNetworkChange( 819 estimator.SimulateNetworkChange(
813 NetworkChangeNotifier::ConnectionType::CONNECTION_2G, "test-2"); 820 NetworkChangeNotifier::ConnectionType::CONNECTION_2G, "test-2");
814 EXPECT_TRUE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt)); 821 EXPECT_TRUE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt));
815 // Taken from network_quality_estimator_params.cc. 822 // Taken from network_quality_estimator_params.cc.
816 EXPECT_EQ(base::TimeDelta::FromMilliseconds(1726), rtt); 823 EXPECT_EQ(base::TimeDelta::FromMilliseconds(1726), rtt);
817 EXPECT_TRUE(estimator.GetRecentTransportRTT(base::TimeTicks(), &rtt)); 824 EXPECT_TRUE(estimator.GetRecentTransportRTT(base::TimeTicks(), &rtt));
818 EXPECT_EQ(base::TimeDelta::FromMilliseconds(1531), rtt); 825 EXPECT_EQ(base::TimeDelta::FromMilliseconds(1531), rtt);
826 EXPECT_EQ(rtt, estimator.GetTransportRTT().value());
819 EXPECT_TRUE( 827 EXPECT_TRUE(
820 estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps)); 828 estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps));
821 EXPECT_EQ(300, kbps); 829 EXPECT_EQ(300, kbps);
822 830
823 // Simulate network change to 3G. Default estimates should be available. 831 // Simulate network change to 3G. Default estimates should be available.
824 estimator.SimulateNetworkChange( 832 estimator.SimulateNetworkChange(
825 NetworkChangeNotifier::ConnectionType::CONNECTION_3G, "test-3"); 833 NetworkChangeNotifier::ConnectionType::CONNECTION_3G, "test-3");
826 EXPECT_TRUE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt)); 834 EXPECT_TRUE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt));
827 EXPECT_EQ(base::TimeDelta::FromMilliseconds(272), rtt); 835 EXPECT_EQ(base::TimeDelta::FromMilliseconds(272), rtt);
828 EXPECT_TRUE(estimator.GetRecentTransportRTT(base::TimeTicks(), &rtt)); 836 EXPECT_TRUE(estimator.GetRecentTransportRTT(base::TimeTicks(), &rtt));
829 EXPECT_EQ(base::TimeDelta::FromMilliseconds(209), rtt); 837 EXPECT_EQ(base::TimeDelta::FromMilliseconds(209), rtt);
838 EXPECT_EQ(rtt, estimator.GetTransportRTT().value());
830 EXPECT_TRUE( 839 EXPECT_TRUE(
831 estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps)); 840 estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps));
832 EXPECT_EQ(749, kbps); 841 EXPECT_EQ(749, kbps);
833 } 842 }
834 843
835 TEST(NetworkQualityEstimatorTest, ObtainAlgorithmToUseFromParams) { 844 TEST(NetworkQualityEstimatorTest, ObtainAlgorithmToUseFromParams) {
836 const struct { 845 const struct {
837 bool set_variation_param; 846 bool set_variation_param;
838 std::string algorithm; 847 std::string algorithm;
839 NetworkQualityEstimator::EffectiveConnectionTypeAlgorithm 848 NetworkQualityEstimator::EffectiveConnectionTypeAlgorithm
(...skipping 678 matching lines...) Expand 10 before | Expand all | Expand 10 after
1518 std::unique_ptr<ExternalEstimateProvider> external_estimate_provider( 1527 std::unique_ptr<ExternalEstimateProvider> external_estimate_provider(
1519 test_external_estimate_provider); 1528 test_external_estimate_provider);
1520 TestNetworkQualityEstimator estimator(std::map<std::string, std::string>(), 1529 TestNetworkQualityEstimator estimator(std::map<std::string, std::string>(),
1521 std::move(external_estimate_provider)); 1530 std::move(external_estimate_provider));
1522 estimator.SimulateNetworkChange(net::NetworkChangeNotifier::CONNECTION_WIFI, 1531 estimator.SimulateNetworkChange(net::NetworkChangeNotifier::CONNECTION_WIFI,
1523 "test"); 1532 "test");
1524 base::TimeDelta rtt; 1533 base::TimeDelta rtt;
1525 int32_t kbps; 1534 int32_t kbps;
1526 EXPECT_TRUE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt)); 1535 EXPECT_TRUE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt));
1527 EXPECT_FALSE(estimator.GetRecentTransportRTT(base::TimeTicks(), &rtt)); 1536 EXPECT_FALSE(estimator.GetRecentTransportRTT(base::TimeTicks(), &rtt));
1537 EXPECT_FALSE(estimator.GetTransportRTT());
1528 EXPECT_TRUE( 1538 EXPECT_TRUE(
1529 estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps)); 1539 estimator.GetRecentDownlinkThroughputKbps(base::TimeTicks(), &kbps));
1530 1540
1531 histogram_tester.ExpectTotalCount("NQE.ExternalEstimateProviderStatus", 5); 1541 histogram_tester.ExpectTotalCount("NQE.ExternalEstimateProviderStatus", 5);
1532 1542
1533 histogram_tester.ExpectBucketCount( 1543 histogram_tester.ExpectBucketCount(
1534 "NQE.ExternalEstimateProviderStatus", 1544 "NQE.ExternalEstimateProviderStatus",
1535 1 /* EXTERNAL_ESTIMATE_PROVIDER_STATUS_AVAILABLE */, 1); 1545 1 /* EXTERNAL_ESTIMATE_PROVIDER_STATUS_AVAILABLE */, 1);
1536 histogram_tester.ExpectBucketCount( 1546 histogram_tester.ExpectBucketCount(
1537 "NQE.ExternalEstimateProviderStatus", 1547 "NQE.ExternalEstimateProviderStatus",
(...skipping 614 matching lines...) Expand 10 before | Expand all | Expand 10 after
2152 // |estimator| should be notified of TCP RTT observations. 2162 // |estimator| should be notified of TCP RTT observations.
2153 params->socket_performance_watcher_factory = 2163 params->socket_performance_watcher_factory =
2154 estimator.GetSocketPerformanceWatcherFactory(); 2164 estimator.GetSocketPerformanceWatcherFactory();
2155 context.set_http_network_session_params(std::move(params)); 2165 context.set_http_network_session_params(std::move(params));
2156 context.Init(); 2166 context.Init();
2157 2167
2158 EXPECT_EQ(0U, rtt_observer.observations().size()); 2168 EXPECT_EQ(0U, rtt_observer.observations().size());
2159 base::TimeDelta rtt; 2169 base::TimeDelta rtt;
2160 EXPECT_TRUE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt)); 2170 EXPECT_TRUE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt));
2161 EXPECT_TRUE(estimator.GetRecentTransportRTT(base::TimeTicks(), &rtt)); 2171 EXPECT_TRUE(estimator.GetRecentTransportRTT(base::TimeTicks(), &rtt));
2172 EXPECT_EQ(rtt, estimator.GetTransportRTT().value());
2162 2173
2163 // Send two requests. Verify that the completion of each request generates at 2174 // Send two requests. Verify that the completion of each request generates at
2164 // least one TCP RTT observation. 2175 // least one TCP RTT observation.
2165 const size_t num_requests = 2; 2176 const size_t num_requests = 2;
2166 for (size_t i = 0; i < num_requests; ++i) { 2177 for (size_t i = 0; i < num_requests; ++i) {
2167 size_t before_count_tcp_rtt_observations = 0; 2178 size_t before_count_tcp_rtt_observations = 0;
2168 for (const auto& observation : rtt_observer.observations()) { 2179 for (const auto& observation : rtt_observer.observations()) {
2169 if (observation.source == NETWORK_QUALITY_OBSERVATION_SOURCE_TCP) 2180 if (observation.source == NETWORK_QUALITY_OBSERVATION_SOURCE_TCP)
2170 ++before_count_tcp_rtt_observations; 2181 ++before_count_tcp_rtt_observations;
2171 } 2182 }
(...skipping 11 matching lines...) Expand all
2183 ++after_count_tcp_rtt_observations; 2194 ++after_count_tcp_rtt_observations;
2184 } 2195 }
2185 // At least one notification should be received per socket performance 2196 // At least one notification should be received per socket performance
2186 // watcher. 2197 // watcher.
2187 EXPECT_LE(1U, after_count_tcp_rtt_observations - 2198 EXPECT_LE(1U, after_count_tcp_rtt_observations -
2188 before_count_tcp_rtt_observations) 2199 before_count_tcp_rtt_observations)
2189 << i; 2200 << i;
2190 } 2201 }
2191 EXPECT_TRUE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt)); 2202 EXPECT_TRUE(estimator.GetRecentHttpRTT(base::TimeTicks(), &rtt));
2192 EXPECT_TRUE(estimator.GetRecentTransportRTT(base::TimeTicks(), &rtt)); 2203 EXPECT_TRUE(estimator.GetRecentTransportRTT(base::TimeTicks(), &rtt));
2204 EXPECT_EQ(rtt, estimator.GetTransportRTT().value());
2193 2205
2194 estimator.SimulateNetworkChange( 2206 estimator.SimulateNetworkChange(
2195 NetworkChangeNotifier::ConnectionType::CONNECTION_WIFI, "test-1"); 2207 NetworkChangeNotifier::ConnectionType::CONNECTION_WIFI, "test-1");
2196 histogram_tester.ExpectTotalCount("NQE.TransportRTT.Percentile50.2G", 1); 2208 histogram_tester.ExpectTotalCount("NQE.TransportRTT.Percentile50.2G", 1);
2197 histogram_tester.ExpectBucketCount("NQE.TransportRTT.Percentile50.2G", 2209 histogram_tester.ExpectBucketCount("NQE.TransportRTT.Percentile50.2G",
2198 rtt.InMilliseconds(), 1); 2210 rtt.InMilliseconds(), 1);
2199 histogram_tester.ExpectTotalCount("NQE.TransportRTT.Percentile10.2G", 1); 2211 histogram_tester.ExpectTotalCount("NQE.TransportRTT.Percentile10.2G", 1);
2200 histogram_tester.ExpectTotalCount("NQE.TransportRTT.Percentile50.2G", 1); 2212 histogram_tester.ExpectTotalCount("NQE.TransportRTT.Percentile50.2G", 1);
2201 histogram_tester.ExpectTotalCount("NQE.TransportRTT.Percentile90.2G", 1); 2213 histogram_tester.ExpectTotalCount("NQE.TransportRTT.Percentile90.2G", 1);
2202 histogram_tester.ExpectTotalCount("NQE.TransportRTT.Percentile100.2G", 1); 2214 histogram_tester.ExpectTotalCount("NQE.TransportRTT.Percentile100.2G", 1);
(...skipping 876 matching lines...) Expand 10 before | Expand all | Expand 10 after
3079 3091
3080 // Cleanup. 3092 // Cleanup.
3081 estimator.RemoveRTTObserver(&rtt_observer); 3093 estimator.RemoveRTTObserver(&rtt_observer);
3082 estimator.RemoveThroughputObserver(&throughput_observer); 3094 estimator.RemoveThroughputObserver(&throughput_observer);
3083 estimator.RemoveRTTAndThroughputEstimatesObserver(&rtt_throughput_observer); 3095 estimator.RemoveRTTAndThroughputEstimatesObserver(&rtt_throughput_observer);
3084 estimator.RemoveEffectiveConnectionTypeObserver( 3096 estimator.RemoveEffectiveConnectionTypeObserver(
3085 &effective_connection_type_observer); 3097 &effective_connection_type_observer);
3086 } 3098 }
3087 3099
3088 } // namespace net 3100 } // namespace net
OLDNEW
« no previous file with comments | « net/nqe/network_quality_estimator.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698