| 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());
|
| -}
|
|
|