diff options
author | tbansal <tbansal@chromium.org> | 2015-06-01 13:24:18 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-06-01 20:25:21 +0000 |
commit | a1caf96152e70ce6ccaebf3ad8fb770712e30b3d (patch) | |
tree | 6707916bf1f3b5ee94a84ca817049261526a4dbb | |
parent | fdab0b6ab8f795ec7d8cecd8bf696586de2eb7c7 (diff) | |
download | chromium_src-a1caf96152e70ce6ccaebf3ad8fb770712e30b3d.zip chromium_src-a1caf96152e70ce6ccaebf3ad8fb770712e30b3d.tar.gz chromium_src-a1caf96152e70ce6ccaebf3ad8fb770712e30b3d.tar.bz2 |
Fix two NetworkQualityEstimator tests that were failing
on Windows.
Current guess is that timer on Windows is low resolution
(~16 msec).
This can cause request.creation_time to be equal to
last_connection_change_. This was causing following
2 tests to fail on Windows:
(1) NetworkQualityEstimatorTest.TestPeakKbpsFastestRTTUpdates
(2) URLRequestTestHTTP.NetworkQualityEstimator
If the guess is correct, these tests could potentially fail
on other platforms too.
Trying a fix which makes this check less stringent. Now,
if request creation time is exactly equal to time of last
connection change, the request is still used to
estimate the network quality (unlike before, when the
former was required to be strictly larger than the latter).
BUG=492410
Review URL: https://codereview.chromium.org/1153023003
Cr-Commit-Position: refs/heads/master@{#332259}
-rw-r--r-- | net/base/network_quality_estimator.cc | 8 | ||||
-rw-r--r-- | net/base/network_quality_estimator_unittest.cc | 5 | ||||
-rw-r--r-- | net/url_request/url_request_unittest.cc | 4 |
3 files changed, 8 insertions, 9 deletions
diff --git a/net/base/network_quality_estimator.cc b/net/base/network_quality_estimator.cc index e012a99..6415ee6 100644 --- a/net/base/network_quality_estimator.cc +++ b/net/base/network_quality_estimator.cc @@ -6,6 +6,7 @@ #include <string> +#include "base/logging.h" #include "base/metrics/histogram.h" #include "net/base/net_util.h" #include "net/base/network_quality.h" @@ -45,8 +46,10 @@ void NetworkQualityEstimator::NotifyDataReceived(const URLRequest& request, !request.url().SchemeIsHTTPOrHTTPS() || // Verify that response headers are received, so it can be ensured that // response is not cached. - request.response_info().response_time.is_null() || request.was_cached()) + request.response_info().response_time.is_null() || request.was_cached() || + request.creation_time() < last_connection_change_) { return; + } base::TimeTicks now = base::TimeTicks::Now(); base::TimeDelta request_duration = now - request.creation_time(); @@ -62,8 +65,7 @@ void NetworkQualityEstimator::NotifyDataReceived(const URLRequest& request, // Ignore short duration transfers. if (prefilter_bytes_read >= kMinTransferSizeInBytes && request_duration >= - base::TimeDelta::FromMicroseconds(kMinRequestDurationMicroseconds) && - request.creation_time() > last_connection_change_) { + base::TimeDelta::FromMicroseconds(kMinRequestDurationMicroseconds)) { uint64_t kbps = static_cast<uint64_t>(prefilter_bytes_read * 8 * 1000 / request_duration.InMicroseconds()); if (kbps > peak_kbps_since_last_connection_change_) diff --git a/net/base/network_quality_estimator_unittest.cc b/net/base/network_quality_estimator_unittest.cc index 5ec81ab..61a5a9c 100644 --- a/net/base/network_quality_estimator_unittest.cc +++ b/net/base/network_quality_estimator_unittest.cc @@ -5,6 +5,7 @@ #include "net/base/network_quality_estimator.h" #include "base/basictypes.h" +#include "base/logging.h" #include "base/memory/scoped_ptr.h" #include "base/run_loop.h" #include "base/test/histogram_tester.h" @@ -22,9 +23,7 @@ namespace net { // SpawnedTestServer not supported on iOS (see http://crbug.com/148666). #if !defined(OS_IOS) -// TODO(tbansal): Check why this local server test is failing on Windows -// (see http://crbug.com/492410). -TEST(NetworkQualityEstimatorTest, DISABLED_TestPeakKbpsFastestRTTUpdates) { +TEST(NetworkQualityEstimatorTest, TestPeakKbpsFastestRTTUpdates) { SpawnedTestServer test_server_( SpawnedTestServer::TYPE_HTTP, SpawnedTestServer::kLocalhost, base::FilePath(FILE_PATH_LITERAL("net/data/url_request_unittest"))); diff --git a/net/url_request/url_request_unittest.cc b/net/url_request/url_request_unittest.cc index a1cc679..a47ca99 100644 --- a/net/url_request/url_request_unittest.cc +++ b/net/url_request/url_request_unittest.cc @@ -4073,9 +4073,7 @@ TEST_F(URLRequestTestHTTP, GetZippedTest) { } } -// TODO(tbansal): Check why this local server test is failing on Windows -// (see http://crbug.com/492410). -TEST_F(URLRequestTestHTTP, DISABLED_NetworkQualityEstimator) { +TEST_F(URLRequestTestHTTP, NetworkQualityEstimator) { ASSERT_TRUE(test_server_.Start()); // Enable requests to local host to be used for network quality estimation. NetworkQualityEstimator estimator(true); |