summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortbansal <tbansal@chromium.org>2015-06-01 13:24:18 -0700
committerCommit bot <commit-bot@chromium.org>2015-06-01 20:25:21 +0000
commita1caf96152e70ce6ccaebf3ad8fb770712e30b3d (patch)
tree6707916bf1f3b5ee94a84ca817049261526a4dbb
parentfdab0b6ab8f795ec7d8cecd8bf696586de2eb7c7 (diff)
downloadchromium_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.cc8
-rw-r--r--net/base/network_quality_estimator_unittest.cc5
-rw-r--r--net/url_request/url_request_unittest.cc4
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);