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

Unified Diff: chrome/browser/net/passive_log_collector_unittest.cc

Issue 2363003: Rework the logging for sockets/connectjobs.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/net/passive_log_collector.cc ('k') | chrome/service/net/service_url_request_context.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/net/passive_log_collector_unittest.cc
===================================================================
--- chrome/browser/net/passive_log_collector_unittest.cc (revision 48758)
+++ chrome/browser/net/passive_log_collector_unittest.cc (working copy)
@@ -14,6 +14,7 @@
typedef PassiveLogCollector::RequestTracker RequestTracker;
typedef PassiveLogCollector::RequestInfoList RequestInfoList;
+typedef PassiveLogCollector::SocketTracker SocketTracker;
using net::NetLog;
const NetLog::SourceType kSourceType = NetLog::SOURCE_NONE;
@@ -65,14 +66,33 @@
entry.params.get())->value();
}
+bool OrderBySourceID(const PassiveLogCollector::RequestInfo& a,
+ const PassiveLogCollector::RequestInfo& b) {
+ return a.source_id < b.source_id;
+}
+
+RequestInfoList GetLiveRequests(
+ const PassiveLogCollector::RequestTrackerBase& tracker) {
+ RequestInfoList result = tracker.GetAllDeadOrAliveRequests(true);
+ std::sort(result.begin(), result.end(), &OrderBySourceID);
+ return result;
+}
+
+RequestInfoList GetDeadRequests(
+ const PassiveLogCollector::RequestTrackerBase& tracker) {
+ RequestInfoList result = tracker.GetAllDeadOrAliveRequests(false);
+ std::sort(result.begin(), result.end(), &OrderBySourceID);
+ return result;
+}
+
static const int kMaxNumLoadLogEntries = 1;
} // namespace
TEST(RequestTrackerTest, BasicBounded) {
- RequestTracker tracker(NULL, NULL);
- EXPECT_EQ(0u, tracker.GetLiveRequests().size());
- EXPECT_EQ(0u, tracker.GetRecentlyDeceased().size());
+ RequestTracker tracker(NULL);
+ EXPECT_EQ(0u, GetLiveRequests(tracker).size());
+ EXPECT_EQ(0u, GetDeadRequests(tracker).size());
tracker.OnAddEntry(MakeStartLogEntry(1));
tracker.OnAddEntry(MakeStartLogEntry(2));
@@ -80,7 +100,7 @@
tracker.OnAddEntry(MakeStartLogEntry(4));
tracker.OnAddEntry(MakeStartLogEntry(5));
- RequestInfoList live_reqs = tracker.GetLiveRequests();
+ RequestInfoList live_reqs = GetLiveRequests(tracker);
ASSERT_EQ(5u, live_reqs.size());
EXPECT_EQ("http://req1/", live_reqs[0].GetURL());
@@ -93,9 +113,9 @@
tracker.OnAddEntry(MakeEndLogEntry(5));
tracker.OnAddEntry(MakeEndLogEntry(3));
- ASSERT_EQ(3u, tracker.GetRecentlyDeceased().size());
+ ASSERT_EQ(3u, GetDeadRequests(tracker).size());
- live_reqs = tracker.GetLiveRequests();
+ live_reqs = GetLiveRequests(tracker);
ASSERT_EQ(2u, live_reqs.size());
EXPECT_EQ("http://req2/", live_reqs[0].GetURL());
@@ -103,9 +123,9 @@
}
TEST(RequestTrackerTest, GraveyardBounded) {
- RequestTracker tracker(NULL, NULL);
- EXPECT_EQ(0u, tracker.GetLiveRequests().size());
- EXPECT_EQ(0u, tracker.GetRecentlyDeceased().size());
+ RequestTracker tracker(NULL);
+ EXPECT_EQ(0u, GetLiveRequests(tracker).size());
+ EXPECT_EQ(0u, GetDeadRequests(tracker).size());
// Add twice as many requests as will fit in the graveyard.
for (size_t i = 0; i < RequestTracker::kMaxGraveyardSize * 2; ++i) {
@@ -113,9 +133,11 @@
tracker.OnAddEntry(MakeEndLogEntry(i));
}
+ EXPECT_EQ(0u, GetLiveRequests(tracker).size());
+
// Check that only the last |kMaxGraveyardSize| requests are in-memory.
- RequestInfoList recent_reqs = tracker.GetRecentlyDeceased();
+ RequestInfoList recent_reqs = GetDeadRequests(tracker);
ASSERT_EQ(RequestTracker::kMaxGraveyardSize, recent_reqs.size());
@@ -129,7 +151,7 @@
// Check that we exclude "chrome://" URLs from being saved into the recent
// requests list (graveyard).
TEST(RequestTrackerTest, GraveyardIsFiltered) {
- RequestTracker tracker(NULL, NULL);
+ RequestTracker tracker(NULL);
// This will be excluded.
std::string url1 = "chrome://dontcare/";
@@ -146,846 +168,186 @@
tracker.OnAddEntry(MakeStartLogEntryWithURL(3, url3));
tracker.OnAddEntry(MakeEndLogEntry(3));
- ASSERT_EQ(2u, tracker.GetRecentlyDeceased().size());
- EXPECT_EQ(url2, tracker.GetRecentlyDeceased()[0].GetURL());
- EXPECT_EQ(url3, tracker.GetRecentlyDeceased()[1].GetURL());
+ ASSERT_EQ(2u, GetDeadRequests(tracker).size());
+ EXPECT_EQ(url2, GetDeadRequests(tracker)[0].GetURL());
+ EXPECT_EQ(url3, GetDeadRequests(tracker)[1].GetURL());
}
-TEST(PassiveLogCollectorTest, BasicConnectJobAssociation) {
- PassiveLogCollector log;
+TEST(SpdySessionTracker, MovesToGraveyard) {
+ PassiveLogCollector::SpdySessionTracker tracker;
+ EXPECT_EQ(0u, GetLiveRequests(tracker).size());
+ EXPECT_EQ(0u, GetDeadRequests(tracker).size());
- RequestInfoList requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(0u, requests.size());
+ PassiveLogCollector::Entry begin(
+ 0u,
+ NetLog::TYPE_SPDY_SESSION,
+ base::TimeTicks(),
+ NetLog::Source(NetLog::SOURCE_SPDY_SESSION, 1),
+ NetLog::PHASE_BEGIN,
+ NULL);
- AddStartURLRequestEntries(&log, 10);
- AddStartURLRequestEntries(&log, 20);
+ tracker.OnAddEntry(begin);
+ EXPECT_EQ(1u, GetLiveRequests(tracker).size());
+ EXPECT_EQ(0u, GetDeadRequests(tracker).size());
- requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(2u, requests.size());
+ PassiveLogCollector::Entry end(
+ 0u,
+ NetLog::TYPE_SPDY_SESSION,
+ base::TimeTicks(),
+ NetLog::Source(NetLog::SOURCE_SPDY_SESSION, 1),
+ NetLog::PHASE_END,
+ NULL);
- EXPECT_EQ(10u, requests[0].source_id);
- EXPECT_EQ(2u, requests[0].entries.size());
- EXPECT_EQ(20u, requests[1].source_id);
- EXPECT_EQ(2u, requests[1].entries.size());
-
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_ID , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10),
- NetLog::PHASE_BEGIN, new net::NetLogIntegerParameter("x", 11));
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 11),
- NetLog::PHASE_BEGIN, NULL);
-
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_ID , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_URL_REQUEST, 20),
- NetLog::PHASE_BEGIN, new net::NetLogIntegerParameter("x", 21));
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 21),
- NetLog::PHASE_BEGIN, NULL);
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 21),
- NetLog::PHASE_END, NULL);
-
- requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(2u, requests.size());
-
- EXPECT_EQ(4u, requests[0].entries.size());
- EXPECT_EQ(5u, requests[1].entries.size());
-
- AddEndURLRequestEntries(&log, 10);
- AddEndURLRequestEntries(&log, 20);
-
- requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(0u, requests.size());
-
- requests = log.url_request_tracker()->GetRecentlyDeceased();
- EXPECT_EQ(2u, requests.size());
- EXPECT_EQ(5u, requests[0].entries.size());
- EXPECT_EQ(6u, requests[1].entries.size());
+ tracker.OnAddEntry(end);
+ EXPECT_EQ(0u, GetLiveRequests(tracker).size());
+ EXPECT_EQ(1u, GetDeadRequests(tracker).size());
}
-TEST(PassiveLogCollectorTest, BasicSocketAssociation) {
+// Test that when a SOURCE_SOCKET is connected to a SOURCE_URL_REQUEST
+// (via the TYPE_SOCKET_POOL_BOUND_TO_SOCKET event), it holds a reference
+// to the SOURCE_SOCKET preventing it from getting deleted as long as the
+// SOURCE_URL_REQUEST is still around.
+TEST(PassiveLogCollectorTest, HoldReferenceToDependentSource) {
PassiveLogCollector log;
- RequestInfoList requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(0u, requests.size());
+ EXPECT_EQ(0u, GetLiveRequests(log.url_request_tracker_).size());
+ EXPECT_EQ(0u, GetLiveRequests(log.socket_tracker_).size());
- AddStartURLRequestEntries(&log, 10);
- AddStartURLRequestEntries(&log, 20);
+ uint32 next_id = 0;
+ NetLog::Source socket_source(NetLog::SOURCE_SOCKET, next_id++);
+ NetLog::Source url_request_source(NetLog::SOURCE_URL_REQUEST, next_id++);
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_ID , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10),
- NetLog::PHASE_BEGIN, new net::NetLogIntegerParameter("x", 11));
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 11),
- NetLog::PHASE_BEGIN, NULL);
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 11),
- NetLog::PHASE_END, NULL);
+ // Start a SOURCE_SOCKET.
+ log.OnAddEntry(NetLog::TYPE_SOCKET_ALIVE,
+ base::TimeTicks(),
+ socket_source,
+ NetLog::PHASE_BEGIN,
+ NULL);
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_ID , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_URL_REQUEST, 20),
- NetLog::PHASE_BEGIN, new net::NetLogIntegerParameter("x", 21));
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 21),
- NetLog::PHASE_BEGIN, NULL);
- log.OnAddEntry(NetLog::TYPE_TCP_CONNECT , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 21),
- NetLog::PHASE_NONE, NULL);
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 21),
- NetLog::PHASE_END, NULL);
+ EXPECT_EQ(0u, GetLiveRequests(log.url_request_tracker_).size());
+ EXPECT_EQ(1u, GetLiveRequests(log.socket_tracker_).size());
- requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(2u, requests.size());
+ // Start a SOURCE_URL_REQUEST.
+ log.OnAddEntry(NetLog::TYPE_REQUEST_ALIVE,
+ base::TimeTicks(),
+ url_request_source,
+ NetLog::PHASE_BEGIN,
+ NULL);
- EXPECT_EQ(5u, requests[0].entries.size());
- EXPECT_EQ(6u, requests[1].entries.size());
+ // Check that there is no association between the SOURCE_URL_REQUEST and the
+ // SOURCE_SOCKET yet.
+ ASSERT_EQ(1u, GetLiveRequests(log.url_request_tracker_).size());
+ {
+ PassiveLogCollector::RequestInfo info =
+ GetLiveRequests(log.url_request_tracker_)[0];
+ EXPECT_EQ(0, info.reference_count);
+ EXPECT_EQ(0u, info.dependencies.size());
+ }
+ ASSERT_EQ(1u, GetLiveRequests(log.socket_tracker_).size());
+ {
+ PassiveLogCollector::RequestInfo info =
+ GetLiveRequests(log.socket_tracker_)[0];
+ EXPECT_EQ(0, info.reference_count);
+ EXPECT_EQ(0u, info.dependencies.size());
+ }
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_ID , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10),
- NetLog::PHASE_END, new net::NetLogIntegerParameter("x", 11));
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_ID , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_URL_REQUEST, 20),
- NetLog::PHASE_END, new net::NetLogIntegerParameter("x", 21));
+ // Associate the SOURCE_SOCKET with the SOURCE_URL_REQUEST.
+ log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_BOUND_TO_SOCKET,
+ base::TimeTicks(),
+ url_request_source,
+ NetLog::PHASE_NONE,
+ new net::NetLogSourceParameter("x", socket_source));
- requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(2u, requests.size());
+ // Check that an associate was made -- the SOURCE_URL_REQUEST should have
+ // added a reference to the SOURCE_SOCKET.
+ ASSERT_EQ(1u, GetLiveRequests(log.url_request_tracker_).size());
+ {
+ PassiveLogCollector::RequestInfo info =
+ GetLiveRequests(log.url_request_tracker_)[0];
+ EXPECT_EQ(0, info.reference_count);
+ EXPECT_EQ(1u, info.dependencies.size());
+ EXPECT_EQ(socket_source.id, info.dependencies[0].id);
+ }
+ ASSERT_EQ(1u, GetLiveRequests(log.socket_tracker_).size());
+ {
+ PassiveLogCollector::RequestInfo info =
+ GetLiveRequests(log.socket_tracker_)[0];
+ EXPECT_EQ(1, info.reference_count);
+ EXPECT_EQ(0u, info.dependencies.size());
+ }
- EXPECT_EQ(6u, requests[0].entries.size());
- EXPECT_EQ(7u, requests[1].entries.size());
+ // Now end both |source_socket| and |source_url_request|. This sends them
+ // to deletion queue, and they will be deleted once space runs out.
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_SOCKET_ID , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10),
- NetLog::PHASE_END, new net::NetLogIntegerParameter("x", 15));
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_SOCKET_ID , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_URL_REQUEST, 20),
- NetLog::PHASE_END, new net::NetLogIntegerParameter("x", 25));
+ log.OnAddEntry(NetLog::TYPE_REQUEST_ALIVE,
+ base::TimeTicks(),
+ url_request_source,
+ NetLog::PHASE_END,
+ NULL);
- log.OnAddEntry(NetLog::TYPE_SOCKS_CONNECT , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SOCKET, 15),
- NetLog::PHASE_NONE, NULL);
- log.OnAddEntry(NetLog::TYPE_SSL_CONNECT , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SOCKET, 25),
- NetLog::PHASE_BEGIN, NULL);
- log.OnAddEntry(NetLog::TYPE_SSL_CONNECT , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SOCKET, 25),
- NetLog::PHASE_END, NULL);
+ log.OnAddEntry(NetLog::TYPE_SOCKET_ALIVE,
+ base::TimeTicks(),
+ socket_source,
+ NetLog::PHASE_END,
+ NULL);
- requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(2u, requests.size());
+ // Verify that both sources are in fact dead, and that |source_url_request|
+ // still holds a reference to |source_socket|.
+ ASSERT_EQ(0u, GetLiveRequests(log.url_request_tracker_).size());
+ ASSERT_EQ(1u, GetDeadRequests(log.url_request_tracker_).size());
+ {
+ PassiveLogCollector::RequestInfo info =
+ GetDeadRequests(log.url_request_tracker_)[0];
+ EXPECT_EQ(0, info.reference_count);
+ EXPECT_EQ(1u, info.dependencies.size());
+ EXPECT_EQ(socket_source.id, info.dependencies[0].id);
+ }
+ EXPECT_EQ(0u, GetLiveRequests(log.socket_tracker_).size());
+ ASSERT_EQ(1u, GetDeadRequests(log.socket_tracker_).size());
+ {
+ PassiveLogCollector::RequestInfo info =
+ GetDeadRequests(log.socket_tracker_)[0];
+ EXPECT_EQ(1, info.reference_count);
+ EXPECT_EQ(0u, info.dependencies.size());
+ }
- EXPECT_EQ(8u, requests[0].entries.size());
- EXPECT_EQ(10u, requests[1].entries.size());
+ // Cycle through a bunch of SOURCE_SOCKET -- if it were not referenced, this
+ // loop will have deleted it.
+ for (size_t i = 0; i < SocketTracker::kMaxGraveyardSize; ++i) {
+ log.OnAddEntry(NetLog::TYPE_SOCKET_ALIVE,
+ base::TimeTicks(),
+ NetLog::Source(NetLog::SOURCE_SOCKET, next_id++),
+ NetLog::PHASE_END,
+ NULL);
+ }
- AddEndURLRequestEntries(&log, 10);
- AddEndURLRequestEntries(&log, 20);
+ EXPECT_EQ(0u, GetLiveRequests(log.socket_tracker_).size());
+ ASSERT_EQ(SocketTracker::kMaxGraveyardSize + 1,
+ GetDeadRequests(log.socket_tracker_).size());
+ {
+ PassiveLogCollector::RequestInfo info =
+ GetDeadRequests(log.socket_tracker_)[0];
+ EXPECT_EQ(socket_source.id, info.source_id);
+ EXPECT_EQ(1, info.reference_count);
+ EXPECT_EQ(0u, info.dependencies.size());
+ }
- log.OnAddEntry(NetLog::TYPE_TCP_SOCKET_DONE , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SOCKET, 15),
- NetLog::PHASE_NONE, NULL);
- log.OnAddEntry(NetLog::TYPE_TCP_SOCKET_DONE , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SOCKET, 25),
- NetLog::PHASE_NONE, NULL);
+ // Cycle through a bunch of SOURCE_URL_REQUEST -- this will cause
+ // |source_url_request| to be freed, which in turn should release the final
+ // reference to |source_socket| cause it to be freed as well.
+ for (size_t i = 0; i < RequestTracker::kMaxGraveyardSize; ++i) {
+ log.OnAddEntry(NetLog::TYPE_REQUEST_ALIVE,
+ base::TimeTicks(),
+ NetLog::Source(NetLog::SOURCE_URL_REQUEST, next_id++),
+ NetLog::PHASE_END,
+ NULL);
+ }
- requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(0u, requests.size());
+ EXPECT_EQ(0u, GetLiveRequests(log.url_request_tracker_).size());
+ EXPECT_EQ(RequestTracker::kMaxGraveyardSize,
+ GetDeadRequests(log.url_request_tracker_).size());
- requests = log.url_request_tracker()->GetRecentlyDeceased();
- EXPECT_EQ(2u, requests.size());
- EXPECT_EQ(9u, requests[0].entries.size());
- EXPECT_EQ(11u, requests[1].entries.size());
+ EXPECT_EQ(0u, GetLiveRequests(log.socket_tracker_).size());
+ EXPECT_EQ(SocketTracker::kMaxGraveyardSize,
+ GetDeadRequests(log.socket_tracker_).size());
}
-
-TEST(PassiveLogCollectorTest, IdleSocketAssociation) {
- PassiveLogCollector log;
-
- RequestInfoList requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(0u, requests.size());
-
- AddStartURLRequestEntries(&log, 10);
- AddStartURLRequestEntries(&log, 20);
- log.OnAddEntry(NetLog::TYPE_INIT_PROXY_RESOLVER , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_URL_REQUEST, 20),
- NetLog::PHASE_NONE, NULL);
-
- requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(2u, requests.size());
-
- EXPECT_EQ(2u, requests[0].entries.size());
- EXPECT_EQ(3u, requests[1].entries.size());
-
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_SOCKET_ID , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10),
- NetLog::PHASE_END, new net::NetLogIntegerParameter("x", 15));
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_SOCKET_ID , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_URL_REQUEST, 20),
- NetLog::PHASE_END, new net::NetLogIntegerParameter("x", 25));
-
- log.OnAddEntry(NetLog::TYPE_SOCKS_CONNECT , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SOCKET, 15),
- NetLog::PHASE_NONE, NULL);
- log.OnAddEntry(NetLog::TYPE_SSL_CONNECT , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SOCKET, 25),
- NetLog::PHASE_BEGIN, NULL);
- log.OnAddEntry(NetLog::TYPE_SSL_CONNECT , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SOCKET, 25),
- NetLog::PHASE_END, NULL);
-
- requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(2u, requests.size());
-
- EXPECT_EQ(4u, requests[0].entries.size());
- EXPECT_EQ(6u, requests[1].entries.size());
-
- AddEndURLRequestEntries(&log, 10);
- AddEndURLRequestEntries(&log, 20);
-
- log.OnAddEntry(NetLog::TYPE_TCP_SOCKET_DONE , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SOCKET, 15),
- NetLog::PHASE_NONE, NULL);
- log.OnAddEntry(NetLog::TYPE_TCP_SOCKET_DONE , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SOCKET, 25),
- NetLog::PHASE_NONE, NULL);
-
- requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(0u, requests.size());
-
- requests = log.url_request_tracker()->GetRecentlyDeceased();
- EXPECT_EQ(2u, requests.size());
- EXPECT_EQ(5u, requests[0].entries.size());
- EXPECT_EQ(7u, requests[1].entries.size());
-}
-
-TEST(PassiveLogCollectorTest, IdleAssociateAfterConnectJobStarted) {
- PassiveLogCollector log;
-
- RequestInfoList requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(0u, requests.size());
-
- AddStartURLRequestEntries(&log, 10);
- AddStartURLRequestEntries(&log, 20);
-
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_ID , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10),
- NetLog::PHASE_BEGIN, new net::NetLogIntegerParameter("x", 11));
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 11),
- NetLog::PHASE_BEGIN, NULL);
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 11),
- NetLog::PHASE_END, NULL);
-
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_ID , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_URL_REQUEST, 20),
- NetLog::PHASE_BEGIN, new net::NetLogIntegerParameter("x", 21));
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 21),
- NetLog::PHASE_BEGIN, NULL);
- log.OnAddEntry(NetLog::TYPE_TCP_CONNECT , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 21),
- NetLog::PHASE_NONE, NULL);
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 21),
- NetLog::PHASE_END, NULL);
-
- requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(2u, requests.size());
-
- EXPECT_EQ(5u, requests[0].entries.size());
- EXPECT_EQ(6u, requests[1].entries.size());
-
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_SOCKET_ID , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10),
- NetLog::PHASE_END, new net::NetLogIntegerParameter("x", 15));
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_SOCKET_ID , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_URL_REQUEST, 20),
- NetLog::PHASE_END, new net::NetLogIntegerParameter("x", 25));
-
- log.OnAddEntry(NetLog::TYPE_SOCKS_CONNECT , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SOCKET, 15),
- NetLog::PHASE_NONE, NULL);
- log.OnAddEntry(NetLog::TYPE_SSL_CONNECT , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SOCKET, 25),
- NetLog::PHASE_BEGIN, NULL);
- log.OnAddEntry(NetLog::TYPE_SSL_CONNECT , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SOCKET, 25),
- NetLog::PHASE_END, NULL);
-
- requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(2u, requests.size());
-
- EXPECT_EQ(5u, requests[0].entries.size());
- EXPECT_EQ(6u, requests[1].entries.size());
-
- AddEndURLRequestEntries(&log, 10);
- AddEndURLRequestEntries(&log, 20);
-
- log.OnAddEntry(NetLog::TYPE_TCP_SOCKET_DONE , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SOCKET, 15),
- NetLog::PHASE_NONE, NULL);
- log.OnAddEntry(NetLog::TYPE_TCP_SOCKET_DONE , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SOCKET, 25),
- NetLog::PHASE_NONE, NULL);
-
- requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(0u, requests.size());
-
- requests = log.url_request_tracker()->GetRecentlyDeceased();
- EXPECT_EQ(2u, requests.size());
- EXPECT_EQ(6u, requests[0].entries.size());
- EXPECT_EQ(7u, requests[1].entries.size());
-}
-
-TEST(PassiveLogCollectorTest, LateBindDifferentConnectJob) {
- PassiveLogCollector log;
-
- RequestInfoList requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(0u, requests.size());
-
- AddStartURLRequestEntries(&log, 10);
- AddStartURLRequestEntries(&log, 20);
-
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_ID , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10),
- NetLog::PHASE_BEGIN, new net::NetLogIntegerParameter("x", 11));
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 11),
- NetLog::PHASE_BEGIN, NULL);
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 11),
- NetLog::PHASE_END, NULL);
-
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_ID , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_URL_REQUEST, 20),
- NetLog::PHASE_BEGIN, new net::NetLogIntegerParameter("x", 21));
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 21),
- NetLog::PHASE_BEGIN, NULL);
- log.OnAddEntry(NetLog::TYPE_TCP_CONNECT , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 21),
- NetLog::PHASE_NONE, NULL);
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 21),
- NetLog::PHASE_END, NULL);
-
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 31),
- NetLog::PHASE_BEGIN, NULL);
- log.OnAddEntry(NetLog::TYPE_TCP_CONNECT , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 31),
- NetLog::PHASE_BEGIN, NULL);
- log.OnAddEntry(NetLog::TYPE_TCP_CONNECT , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 31),
- NetLog::PHASE_END, NULL);
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 31),
- NetLog::PHASE_END, NULL);
-
- requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(2u, requests.size());
-
- EXPECT_EQ(5u, requests[0].entries.size());
- EXPECT_EQ(6u, requests[1].entries.size());
-
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_ID , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10),
- NetLog::PHASE_END, new net::NetLogIntegerParameter("x", 21));
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_ID , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_URL_REQUEST, 20),
- NetLog::PHASE_END, new net::NetLogIntegerParameter("x", 31));
-
- requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(2u, requests.size());
-
- EXPECT_EQ(7u, requests[0].entries.size());
- EXPECT_EQ(8u, requests[1].entries.size());
-
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_SOCKET_ID , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10),
- NetLog::PHASE_END, new net::NetLogIntegerParameter("x", 15));
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_SOCKET_ID , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_URL_REQUEST, 20),
- NetLog::PHASE_END, new net::NetLogIntegerParameter("x", 25));
-
- log.OnAddEntry(NetLog::TYPE_SOCKS_CONNECT , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SOCKET, 15),
- NetLog::PHASE_NONE, NULL);
- log.OnAddEntry(NetLog::TYPE_SSL_CONNECT , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SOCKET, 25),
- NetLog::PHASE_BEGIN, NULL);
- log.OnAddEntry(NetLog::TYPE_SSL_CONNECT , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SOCKET, 25),
- NetLog::PHASE_END, NULL);
-
- requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(2u, requests.size());
-
- EXPECT_EQ(9u, requests[0].entries.size());
- EXPECT_EQ(11u, requests[1].entries.size());
-
- AddEndURLRequestEntries(&log, 10);
- AddEndURLRequestEntries(&log, 20);
-
- log.OnAddEntry(NetLog::TYPE_TCP_SOCKET_DONE , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SOCKET, 15),
- NetLog::PHASE_NONE, NULL);
- log.OnAddEntry(NetLog::TYPE_TCP_SOCKET_DONE , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SOCKET, 25),
- NetLog::PHASE_NONE, NULL);
-
- requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(0u, requests.size());
-
- requests = log.url_request_tracker()->GetRecentlyDeceased();
- EXPECT_EQ(2u, requests.size());
- EXPECT_EQ(10u, requests[0].entries.size());
- EXPECT_EQ(12u, requests[1].entries.size());
-}
-
-TEST(PassiveLogCollectorTest, LateBindPendingConnectJob) {
- PassiveLogCollector log;
-
- RequestInfoList requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(0u, requests.size());
-
- AddStartURLRequestEntries(&log, 10);
- AddStartURLRequestEntries(&log, 20);
-
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 11),
- NetLog::PHASE_BEGIN, NULL);
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 11),
- NetLog::PHASE_END, NULL);
-
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 21),
- NetLog::PHASE_BEGIN, NULL);
- log.OnAddEntry(NetLog::TYPE_TCP_CONNECT , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 21),
- NetLog::PHASE_NONE, NULL);
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 21),
- NetLog::PHASE_END, NULL);
-
- requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(2u, requests.size());
-
- EXPECT_EQ(2u, requests[0].entries.size());
- EXPECT_EQ(2u, requests[1].entries.size());
-
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_ID , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10),
- NetLog::PHASE_END, new net::NetLogIntegerParameter("x", 11));
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_ID , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_URL_REQUEST, 20),
- NetLog::PHASE_END, new net::NetLogIntegerParameter("x", 21));
-
- requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(2u, requests.size());
-
- EXPECT_EQ(5u, requests[0].entries.size());
- EXPECT_EQ(6u, requests[1].entries.size());
-
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_SOCKET_ID , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10),
- NetLog::PHASE_END, new net::NetLogIntegerParameter("x", 15));
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_SOCKET_ID , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_URL_REQUEST, 20),
- NetLog::PHASE_END, new net::NetLogIntegerParameter("x", 25));
-
- log.OnAddEntry(NetLog::TYPE_SOCKS_CONNECT , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SOCKET, 15),
- NetLog::PHASE_NONE, NULL);
- log.OnAddEntry(NetLog::TYPE_SSL_CONNECT , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SOCKET, 25),
- NetLog::PHASE_BEGIN, NULL);
- log.OnAddEntry(NetLog::TYPE_SSL_CONNECT , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SOCKET, 25),
- NetLog::PHASE_END, NULL);
-
- requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(2u, requests.size());
-
- EXPECT_EQ(7u, requests[0].entries.size());
- EXPECT_EQ(9u, requests[1].entries.size());
-
- AddEndURLRequestEntries(&log, 10);
- AddEndURLRequestEntries(&log, 20);
-
- log.OnAddEntry(NetLog::TYPE_TCP_SOCKET_DONE , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SOCKET, 15),
- NetLog::PHASE_NONE, NULL);
- log.OnAddEntry(NetLog::TYPE_TCP_SOCKET_DONE , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SOCKET, 25),
- NetLog::PHASE_NONE, NULL);
-
- requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(0u, requests.size());
-
- requests = log.url_request_tracker()->GetRecentlyDeceased();
- EXPECT_EQ(2u, requests.size());
- EXPECT_EQ(8u, requests[0].entries.size());
- EXPECT_EQ(10u, requests[1].entries.size());
-}
-
-TEST(PassiveLogCollectorTest, ReconnectToIdleSocket) {
- PassiveLogCollector log;
-
- RequestInfoList requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(0u, requests.size());
-
- AddStartURLRequestEntries(&log, 10);
-
- // Initial socket.
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_SOCKET_ID , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10),
- NetLog::PHASE_END, new net::NetLogIntegerParameter("x", 15));
- log.OnAddEntry(NetLog::TYPE_SOCKS_CONNECT , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SOCKET, 15),
- NetLog::PHASE_NONE, NULL);
-
- requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(1u, requests.size());
- EXPECT_EQ(4u, requests[0].entries.size());
-
- // Reconnect.
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_SOCKET_ID , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10),
- NetLog::PHASE_END, new net::NetLogIntegerParameter("x", 17));
- log.OnAddEntry(NetLog::TYPE_SOCKS_CONNECT , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SOCKET, 17),
- NetLog::PHASE_NONE, NULL);
-
- requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(1u, requests.size());
- EXPECT_EQ(6u, requests[0].entries.size());
-
- AddEndURLRequestEntries(&log, 10);
-
- log.OnAddEntry(NetLog::TYPE_TCP_SOCKET_DONE , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SOCKET, 15),
- NetLog::PHASE_NONE, NULL);
-
- requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(0u, requests.size());
-
- requests = log.url_request_tracker()->GetRecentlyDeceased();
- EXPECT_EQ(1u, requests.size());
- EXPECT_EQ(7u, requests[0].entries.size());
-}
-
-TEST(PassiveLogCollectorTest, ReconnectToLateBoundSocket) {
- PassiveLogCollector log;
-
- RequestInfoList requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(0u, requests.size());
-
- AddStartURLRequestEntries(&log, 10);
-
- // Initial socket.
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_SOCKET_ID , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10),
- NetLog::PHASE_END, new net::NetLogIntegerParameter("x", 15));
- log.OnAddEntry(NetLog::TYPE_SOCKS_CONNECT , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SOCKET, 15),
- NetLog::PHASE_NONE, NULL);
-
- requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(1u, requests.size());
- EXPECT_EQ(4u, requests[0].entries.size());
-
- // Now reconnect.
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_ID , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10),
- NetLog::PHASE_BEGIN, new net::NetLogIntegerParameter("x", 11));
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 11),
- NetLog::PHASE_BEGIN, NULL);
-
- requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(1u, requests.size());
- EXPECT_EQ(6u, requests[0].entries.size());
-
- // But we get late bound to an idle socket.
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_SOCKET_ID , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10),
- NetLog::PHASE_END, new net::NetLogIntegerParameter("x", 17));
- log.OnAddEntry(NetLog::TYPE_SOCKS_CONNECT , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SOCKET, 17),
- NetLog::PHASE_NONE, NULL);
-
- requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(1u, requests.size());
- EXPECT_EQ(7u, requests[0].entries.size());
-
- AddEndURLRequestEntries(&log, 10);
-
- log.OnAddEntry(NetLog::TYPE_TCP_SOCKET_DONE , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SOCKET, 15),
- NetLog::PHASE_NONE, NULL);
-
- requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(0u, requests.size());
-
- requests = log.url_request_tracker()->GetRecentlyDeceased();
- EXPECT_EQ(1u, requests.size());
- EXPECT_EQ(8u, requests[0].entries.size());
-}
-
-TEST(PassiveLogCollectorTest, ReconnectToLateBoundConnectJob) {
- PassiveLogCollector log;
-
- RequestInfoList requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(0u, requests.size());
-
- AddStartURLRequestEntries(&log, 10);
-
- // Initial socket.
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_SOCKET_ID , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10),
- NetLog::PHASE_END, new net::NetLogIntegerParameter("x", 15));
- log.OnAddEntry(NetLog::TYPE_SOCKS_CONNECT , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SOCKET, 15),
- NetLog::PHASE_NONE, NULL);
-
- requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(1u, requests.size());
- EXPECT_EQ(4u, requests[0].entries.size());
-
- // Now reconnect.
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_ID , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10),
- NetLog::PHASE_BEGIN, new net::NetLogIntegerParameter("x", 11));
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 11),
- NetLog::PHASE_BEGIN, NULL);
-
- requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(1u, requests.size());
- EXPECT_EQ(6u, requests[0].entries.size());
-
- // But we get late bound to a different ConnectJob.
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 12),
- NetLog::PHASE_BEGIN, NULL);
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 12),
- NetLog::PHASE_END, NULL);
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_ID , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10),
- NetLog::PHASE_END, new net::NetLogIntegerParameter("x", 12));
-
- requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(1u, requests.size());
- EXPECT_EQ(8u, requests[0].entries.size());
-
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_SOCKET_ID , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10),
- NetLog::PHASE_END, new net::NetLogIntegerParameter("x", 17));
- log.OnAddEntry(NetLog::TYPE_SOCKS_CONNECT , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SOCKET, 17),
- NetLog::PHASE_NONE, NULL);
-
- requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(1u, requests.size());
- EXPECT_EQ(10u, requests[0].entries.size());
-
- AddEndURLRequestEntries(&log, 10);
-
- log.OnAddEntry(NetLog::TYPE_TCP_SOCKET_DONE , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SOCKET, 15),
- NetLog::PHASE_NONE, NULL);
-
- requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(0u, requests.size());
-
- requests = log.url_request_tracker()->GetRecentlyDeceased();
- EXPECT_EQ(1u, requests.size());
- EXPECT_EQ(11u, requests[0].entries.size());
-}
-
-TEST(PassiveLogCollectorTest, LostConnectJob) {
- PassiveLogCollector log;
-
- RequestInfoList requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(0u, requests.size());
-
- AddStartURLRequestEntries(&log, 10);
-
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_ID , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10),
- NetLog::PHASE_BEGIN, new net::NetLogIntegerParameter("x", 11));
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 11),
- NetLog::PHASE_BEGIN, NULL);
- log.OnAddEntry(NetLog::TYPE_SOCKS_CONNECT , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 11),
- NetLog::PHASE_NONE, NULL);
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_CONNECT_JOB, 11),
- NetLog::PHASE_END, NULL);
-
- requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(1u, requests.size());
- EXPECT_EQ(6u, requests[0].entries.size());
-
- log.connect_job_tracker_.Clear();
-
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_CONNECT_JOB_ID , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10),
- NetLog::PHASE_END, new net::NetLogIntegerParameter("x", 11));
-
- requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(1u, requests.size());
- EXPECT_EQ(5u, requests[0].entries.size());
-}
-
-TEST(PassiveLogCollectorTest, LostSocket) {
- PassiveLogCollector log;
-
- RequestInfoList requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(0u, requests.size());
-
- AddStartURLRequestEntries(&log, 10);
-
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_SOCKET_ID , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10),
- NetLog::PHASE_END, new net::NetLogIntegerParameter("x", 15));
- log.OnAddEntry(NetLog::TYPE_SOCKS_CONNECT , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SOCKET, 15),
- NetLog::PHASE_BEGIN, NULL);
- log.OnAddEntry(NetLog::TYPE_SOCKS_CONNECT , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SOCKET, 15),
- NetLog::PHASE_END, NULL);
- log.OnAddEntry(NetLog::TYPE_SSL_CONNECT , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SOCKET, 15),
- NetLog::PHASE_BEGIN, NULL);
- log.OnAddEntry(NetLog::TYPE_SSL_CONNECT , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SOCKET, 15),
- NetLog::PHASE_END, NULL);
-
- requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(1u, requests.size());
- EXPECT_EQ(7u, requests[0].entries.size());
-
- log.socket_tracker_.Clear();
-
- requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(1u, requests.size());
- EXPECT_EQ(4u, requests[0].entries.size());
-}
-
-TEST(PassiveLogCollectorTest, AccumulateRxTxData) {
- PassiveLogCollector log;
-
- RequestInfoList requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(0u, requests.size());
-
- AddStartURLRequestEntries(&log, 10);
-
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_SOCKET_ID , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_URL_REQUEST, 10),
- NetLog::PHASE_END, new net::NetLogIntegerParameter("x", 15));
- log.OnAddEntry(NetLog::TYPE_SOCKS_CONNECT , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SOCKET, 15),
- NetLog::PHASE_NONE, NULL);
-
- requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(1u, requests.size());
- EXPECT_EQ(4u, requests[0].entries.size());
-
- log.OnAddEntry(NetLog::TYPE_SOCKET_BYTES_SENT , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SOCKET, 15),
- NetLog::PHASE_END, new net::NetLogIntegerParameter("x", 1));
- requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(1u, requests.size());
- EXPECT_EQ(5u, requests[0].entries.size());
- EXPECT_EQ(NetLog::TYPE_TODO_STRING, requests[0].entries[4].type);
- EXPECT_EQ("Tx/Rx: 1/0 [1/0 total on socket] (Bytes)",
- GetStringParam(requests[0].entries[4]));
-
- log.OnAddEntry(NetLog::TYPE_SOCKET_BYTES_RECEIVED , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SOCKET, 15),
- NetLog::PHASE_END, new net::NetLogIntegerParameter("x", 2));
- requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(1u, requests.size());
- EXPECT_EQ(5u, requests[0].entries.size());
- EXPECT_EQ(NetLog::TYPE_TODO_STRING, requests[0].entries[4].type);
- EXPECT_EQ("Tx/Rx: 1/2 [1/2 total on socket] (Bytes)",
- GetStringParam(requests[0].entries[4]));
-
- AddEndURLRequestEntries(&log, 10);
- requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(0u, requests.size());
- requests = log.url_request_tracker()->GetRecentlyDeceased();
- EXPECT_EQ(1u, requests.size());
- EXPECT_EQ(6u, requests[0].entries.size());
- EXPECT_EQ(NetLog::TYPE_TODO_STRING, requests[0].entries[4].type);
- EXPECT_EQ("Tx/Rx: 1/2 [1/2 total on socket] (Bytes)",
- GetStringParam(requests[0].entries[4]));
-
- AddStartURLRequestEntries(&log, 20);
-
- log.OnAddEntry(NetLog::TYPE_SOCKET_POOL_SOCKET_ID , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_URL_REQUEST, 20),
- NetLog::PHASE_END, new net::NetLogIntegerParameter("x", 15));
- log.OnAddEntry(NetLog::TYPE_SOCKS_CONNECT , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SOCKET, 15),
- NetLog::PHASE_NONE, NULL);
-
- requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(1u, requests.size());
- EXPECT_EQ(4u, requests[0].entries.size());
-
- log.OnAddEntry(NetLog::TYPE_SOCKET_BYTES_SENT , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SOCKET, 15),
- NetLog::PHASE_END, new net::NetLogIntegerParameter("x", 4));
- log.OnAddEntry(NetLog::TYPE_SOCKET_BYTES_RECEIVED , base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SOCKET, 15),
- NetLog::PHASE_END, new net::NetLogIntegerParameter("x", 8));
- requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(1u, requests.size());
- EXPECT_EQ(5u, requests[0].entries.size());
- EXPECT_EQ(NetLog::TYPE_TODO_STRING, requests[0].entries[4].type);
- EXPECT_EQ("Tx/Rx: 4/8 [5/10 total on socket] (Bytes)",
- GetStringParam(requests[0].entries[4]));
-
- AddEndURLRequestEntries(&log, 20);
- requests = log.url_request_tracker()->GetLiveRequests();
- EXPECT_EQ(0u, requests.size());
- requests = log.url_request_tracker()->GetRecentlyDeceased();
- EXPECT_EQ(2u, requests.size());
- EXPECT_EQ(6u, requests[0].entries.size());
- EXPECT_EQ(6u, requests[1].entries.size());
-}
-
-TEST(SpdySessionTracker, MovesToGraveyard) {
- PassiveLogCollector::SpdySessionTracker tracker;
- EXPECT_EQ(0u, tracker.GetLiveRequests().size());
- EXPECT_EQ(0u, tracker.GetRecentlyDeceased().size());
-
- PassiveLogCollector::Entry begin(
- 0u,
- NetLog::TYPE_SPDY_SESSION,
- base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SPDY_SESSION, 1),
- NetLog::PHASE_BEGIN,
- NULL);
-
- tracker.OnAddEntry(begin);
- EXPECT_EQ(1u, tracker.GetLiveRequests().size());
- EXPECT_EQ(0u, tracker.GetRecentlyDeceased().size());
-
- PassiveLogCollector::Entry end(
- 0u,
- NetLog::TYPE_SPDY_SESSION,
- base::TimeTicks(),
- NetLog::Source(NetLog::SOURCE_SPDY_SESSION, 1),
- NetLog::PHASE_END,
- NULL);
-
- tracker.OnAddEntry(end);
- EXPECT_EQ(0u, tracker.GetLiveRequests().size());
- EXPECT_EQ(1u, tracker.GetRecentlyDeceased().size());
-}
« no previous file with comments | « chrome/browser/net/passive_log_collector.cc ('k') | chrome/service/net/service_url_request_context.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698