Commit ccb9ddfe authored by Kartik Hegde's avatar Kartik Hegde Committed by Chromium LUCI CQ

network_diagnostics: Swap std::deque to base::circular_deque

To reduce memory overhead, swap all std::deque instances to
base::circular_deque.

BUG=b/172994051
TEST=unit_tests --gtest_filter=*RoutineTest.*

Change-Id: I4a29a28ee0a81294efdca340814b81e2b9d0e68b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2577036Reviewed-by: default avatarDaniel Cheng <dcheng@chromium.org>
Reviewed-by: default avatarSteven Bennetts <stevenjb@chromium.org>
Commit-Queue: Kartik Hegde <khegde@chromium.org>
Cr-Commit-Position: refs/heads/master@{#834427}
parent 261c2e42
......@@ -4,8 +4,7 @@
#include "chrome/browser/chromeos/net/network_diagnostics/dns_resolution_routine.h"
#include <deque>
#include "base/containers/circular_deque.h"
#include "base/test/simple_test_tick_clock.h"
#include "base/time/time.h"
#include "chrome/test/base/testing_browser_process.h"
......@@ -45,7 +44,7 @@ class FakeHostResolver : public network::mojom::HostResolver {
};
FakeHostResolver(mojo::PendingReceiver<network::mojom::HostResolver> receiver,
std::deque<DnsResult*> fake_dns_results)
base::circular_deque<DnsResult*> fake_dns_results)
: receiver_(this, std::move(receiver)),
fake_dns_results_(std::move(fake_dns_results)) {}
~FakeHostResolver() override {}
......@@ -76,7 +75,7 @@ class FakeHostResolver : public network::mojom::HostResolver {
mojo::Receiver<network::mojom::HostResolver> receiver_;
// Use the list of fake dns results to fake different responses for multiple
// calls to the host_resolver's ResolveHost().
std::deque<DnsResult*> fake_dns_results_;
base::circular_deque<DnsResult*> fake_dns_results_;
};
class FakeNetworkContext : public network::TestNetworkContext {
......@@ -84,7 +83,7 @@ class FakeNetworkContext : public network::TestNetworkContext {
FakeNetworkContext() = default;
explicit FakeNetworkContext(
std::deque<FakeHostResolver::DnsResult*> fake_dns_results)
base::circular_deque<FakeHostResolver::DnsResult*> fake_dns_results)
: fake_dns_results_(std::move(fake_dns_results)) {}
~FakeNetworkContext() override {}
......@@ -100,7 +99,7 @@ class FakeNetworkContext : public network::TestNetworkContext {
private:
std::unique_ptr<FakeHostResolver> resolver_;
std::deque<FakeHostResolver::DnsResult*> fake_dns_results_;
base::circular_deque<FakeHostResolver::DnsResult*> fake_dns_results_;
};
} // namespace
......@@ -136,7 +135,7 @@ class DnsResolutionRoutineTest : public ::testing::Test {
}
void SetUpFakeProperties(
std::deque<FakeHostResolver::DnsResult*> fake_dns_results) {
base::circular_deque<FakeHostResolver::DnsResult*> fake_dns_results) {
ASSERT_TRUE(profile_manager_.SetUp());
fake_network_context_ =
......@@ -159,7 +158,7 @@ class DnsResolutionRoutineTest : public ::testing::Test {
// reported by this test. |expected_problems|: Represents the expected problem
// reported by this test.
void SetUpAndRunRoutine(
std::deque<FakeHostResolver::DnsResult*> fake_dns_results,
base::circular_deque<FakeHostResolver::DnsResult*> fake_dns_results,
mojom::RoutineVerdict expected_routine_verdict,
const std::vector<mojom::DnsResolutionProblem>& expected_problems) {
SetUpFakeProperties(std::move(fake_dns_results));
......@@ -182,7 +181,7 @@ class DnsResolutionRoutineTest : public ::testing::Test {
// A passing routine requires an error code of net::OK and a non-empty
// net::AddressList for the DNS resolution.
TEST_F(DnsResolutionRoutineTest, TestSuccessfulResolution) {
std::deque<FakeHostResolver::DnsResult*> fake_dns_results;
base::circular_deque<FakeHostResolver::DnsResult*> fake_dns_results;
auto successful_resolution = std::make_unique<FakeHostResolver::DnsResult>(
net::OK, net::ResolveErrorInfo(net::OK),
net::AddressList(FakeIPAddress()));
......@@ -194,7 +193,7 @@ TEST_F(DnsResolutionRoutineTest, TestSuccessfulResolution) {
// Set up the |fake_dns_results| to return a DnsResult with an error code
// net::ERR_NAME_NOT_RESOLVED faking a failed DNS resolution.
TEST_F(DnsResolutionRoutineTest, TestResolutionFailure) {
std::deque<FakeHostResolver::DnsResult*> fake_dns_results;
base::circular_deque<FakeHostResolver::DnsResult*> fake_dns_results;
auto failed_resolution = std::make_unique<FakeHostResolver::DnsResult>(
net::ERR_NAME_NOT_RESOLVED,
net::ResolveErrorInfo(net::ERR_NAME_NOT_RESOLVED), net::AddressList());
......@@ -208,7 +207,7 @@ TEST_F(DnsResolutionRoutineTest, TestResolutionFailure) {
// net::ERR_DNS_TIMED_OUT faking a timed out DNS resolution. On the second
// host resolution attempt, fake a net::OK resolution.
TEST_F(DnsResolutionRoutineTest, TestSuccessOnRetry) {
std::deque<FakeHostResolver::DnsResult*> fake_dns_results;
base::circular_deque<FakeHostResolver::DnsResult*> fake_dns_results;
auto timed_out_resolution = std::make_unique<FakeHostResolver::DnsResult>(
net::ERR_DNS_TIMED_OUT, net::ResolveErrorInfo(net::ERR_DNS_TIMED_OUT),
net::AddressList());
......
......@@ -5,10 +5,10 @@
#ifndef CHROME_BROWSER_CHROMEOS_NET_NETWORK_DIAGNOSTICS_FAKE_NETWORK_CONTEXT_H_
#define CHROME_BROWSER_CHROMEOS_NET_NETWORK_DIAGNOSTICS_FAKE_NETWORK_CONTEXT_H_
#include <deque>
#include <memory>
#include <utility>
#include "base/containers/circular_deque.h"
#include "base/containers/span.h"
#include "base/optional.h"
#include "chrome/browser/chromeos/net/network_diagnostics/fake_host_resolver.h"
......@@ -119,7 +119,7 @@ class FakeNetworkContext : public network::TestNetworkContext {
// Fake host resolver.
std::unique_ptr<FakeHostResolver> resolver_;
// Fake DNS lookup results.
std::deque<FakeHostResolver::DnsResult*> fake_dns_results_;
base::circular_deque<FakeHostResolver::DnsResult*> fake_dns_results_;
// Fake DNS lookup result.
std::unique_ptr<FakeHostResolver::DnsResult> fake_dns_result_;
// Provides the TCP socket functionality for tests.
......
......@@ -4,10 +4,10 @@
#include "chrome/browser/chromeos/net/network_diagnostics/http_firewall_routine.h"
#include <deque>
#include <memory>
#include <utility>
#include "base/containers/circular_deque.h"
#include "chrome/test/base/testing_browser_process.h"
#include "chrome/test/base/testing_profile.h"
#include "chrome/test/base/testing_profile_manager.h"
......@@ -53,7 +53,7 @@ class FakeHostResolver : public network::mojom::HostResolver {
};
FakeHostResolver(mojo::PendingReceiver<network::mojom::HostResolver> receiver,
std::deque<DnsResult*> fake_dns_results)
base::circular_deque<DnsResult*> fake_dns_results)
: receiver_(this, std::move(receiver)),
fake_dns_results_(std::move(fake_dns_results)) {}
~FakeHostResolver() override {}
......@@ -84,7 +84,7 @@ class FakeHostResolver : public network::mojom::HostResolver {
mojo::Receiver<network::mojom::HostResolver> receiver_;
// Use the list of fake dns results to fake different responses for multiple
// calls to the host_resolver's ResolveHost().
std::deque<DnsResult*> fake_dns_results_;
base::circular_deque<DnsResult*> fake_dns_results_;
};
class FakeNetworkContext : public network::TestNetworkContext {
......@@ -92,7 +92,7 @@ class FakeNetworkContext : public network::TestNetworkContext {
FakeNetworkContext() = default;
explicit FakeNetworkContext(
std::deque<FakeHostResolver::DnsResult*> fake_dns_results)
base::circular_deque<FakeHostResolver::DnsResult*> fake_dns_results)
: fake_dns_results_(std::move(fake_dns_results)) {}
~FakeNetworkContext() override {}
......@@ -108,7 +108,7 @@ class FakeNetworkContext : public network::TestNetworkContext {
private:
std::unique_ptr<FakeHostResolver> resolver_;
std::deque<FakeHostResolver::DnsResult*> fake_dns_results_;
base::circular_deque<FakeHostResolver::DnsResult*> fake_dns_results_;
};
class MockTCPSocket : public net::MockTCPClientSocket {
......@@ -128,7 +128,7 @@ class MockTCPSocket : public net::MockTCPClientSocket {
class FakeClientSocketFactory : public net::ClientSocketFactory {
public:
FakeClientSocketFactory(
std::deque<net::SocketDataProvider*> fake_socket_data_providers)
base::circular_deque<net::SocketDataProvider*> fake_socket_data_providers)
: socket_data_providers_(fake_socket_data_providers) {}
FakeClientSocketFactory(const FakeClientSocketFactory&) = delete;
FakeClientSocketFactory& operator=(const FakeClientSocketFactory&) = delete;
......@@ -178,7 +178,7 @@ class FakeClientSocketFactory : public net::ClientSocketFactory {
}
private:
std::deque<net::SocketDataProvider*> socket_data_providers_;
base::circular_deque<net::SocketDataProvider*> socket_data_providers_;
};
} // namespace
......@@ -214,8 +214,9 @@ class HttpFirewallRoutineTest : public ::testing::Test {
}
void SetUpFakeProperties(
std::deque<FakeHostResolver::DnsResult*> fake_dns_results,
std::deque<net::SocketDataProvider*> fake_socket_data_providers) {
base::circular_deque<FakeHostResolver::DnsResult*> fake_dns_results,
base::circular_deque<net::SocketDataProvider*>
fake_socket_data_providers) {
ASSERT_TRUE(profile_manager_.SetUp());
fake_network_context_ =
......@@ -246,8 +247,8 @@ class HttpFirewallRoutineTest : public ::testing::Test {
// |expected_problems|: Represents the expected problem
// reported by this test.
void SetUpAndRunRoutine(
std::deque<FakeHostResolver::DnsResult*> fake_dns_results,
std::deque<net::SocketDataProvider*> fake_socket_data_providers,
base::circular_deque<FakeHostResolver::DnsResult*> fake_dns_results,
base::circular_deque<net::SocketDataProvider*> fake_socket_data_providers,
mojom::RoutineVerdict expected_routine_verdict,
const std::vector<mojom::HttpFirewallProblem>& expected_problems) {
SetUpFakeProperties(std::move(fake_dns_results),
......@@ -274,8 +275,8 @@ class HttpFirewallRoutineTest : public ::testing::Test {
};
TEST_F(HttpFirewallRoutineTest, TestDnsResolutionFailuresAboveThreshold) {
std::deque<FakeHostResolver::DnsResult*> fake_dns_results;
std::deque<net::SocketDataProvider*> fake_socket_data_providers;
base::circular_deque<FakeHostResolver::DnsResult*> fake_dns_results;
base::circular_deque<net::SocketDataProvider*> fake_socket_data_providers;
std::vector<std::unique_ptr<FakeHostResolver::DnsResult>> resolutions;
std::vector<std::unique_ptr<net::SocketDataProvider>> providers;
......@@ -310,8 +311,8 @@ TEST_F(HttpFirewallRoutineTest, TestDnsResolutionFailuresAboveThreshold) {
}
TEST_F(HttpFirewallRoutineTest, TestFirewallDetection) {
std::deque<FakeHostResolver::DnsResult*> fake_dns_results;
std::deque<net::SocketDataProvider*> fake_socket_data_providers;
base::circular_deque<FakeHostResolver::DnsResult*> fake_dns_results;
base::circular_deque<net::SocketDataProvider*> fake_socket_data_providers;
std::vector<std::unique_ptr<FakeHostResolver::DnsResult>> resolutions;
std::vector<std::unique_ptr<net::SocketDataProvider>> providers;
// kTotalHosts = 9
......@@ -336,8 +337,8 @@ TEST_F(HttpFirewallRoutineTest, TestFirewallDetection) {
}
TEST_F(HttpFirewallRoutineTest, TestPotentialFirewallDetection) {
std::deque<FakeHostResolver::DnsResult*> fake_dns_results;
std::deque<net::SocketDataProvider*> fake_socket_data_providers;
base::circular_deque<FakeHostResolver::DnsResult*> fake_dns_results;
base::circular_deque<net::SocketDataProvider*> fake_socket_data_providers;
std::vector<std::unique_ptr<FakeHostResolver::DnsResult>> resolutions;
std::vector<std::unique_ptr<net::SocketDataProvider>> providers;
// kTotalHosts = 9
......@@ -368,8 +369,8 @@ TEST_F(HttpFirewallRoutineTest, TestPotentialFirewallDetection) {
}
TEST_F(HttpFirewallRoutineTest, TestNoFirewallIssues) {
std::deque<FakeHostResolver::DnsResult*> fake_dns_results;
std::deque<net::SocketDataProvider*> fake_socket_data_providers;
base::circular_deque<FakeHostResolver::DnsResult*> fake_dns_results;
base::circular_deque<net::SocketDataProvider*> fake_socket_data_providers;
std::vector<std::unique_ptr<FakeHostResolver::DnsResult>> resolutions;
std::vector<std::unique_ptr<net::SocketDataProvider>> providers;
// kTotalHosts = 9
......@@ -399,8 +400,8 @@ TEST_F(HttpFirewallRoutineTest, TestNoFirewallIssues) {
}
TEST_F(HttpFirewallRoutineTest, TestContinousRetries) {
std::deque<FakeHostResolver::DnsResult*> fake_dns_results;
std::deque<net::SocketDataProvider*> fake_socket_data_providers;
base::circular_deque<FakeHostResolver::DnsResult*> fake_dns_results;
base::circular_deque<net::SocketDataProvider*> fake_socket_data_providers;
std::vector<std::unique_ptr<FakeHostResolver::DnsResult>> resolutions;
std::vector<std::unique_ptr<net::SocketDataProvider>> providers;
// kTotalHosts = 9
......
......@@ -4,11 +4,11 @@
#include "chrome/browser/chromeos/net/network_diagnostics/https_firewall_routine.h"
#include <deque>
#include <memory>
#include <utility>
#include "base/callback_helpers.h"
#include "base/containers/circular_deque.h"
#include "chrome/browser/chromeos/net/network_diagnostics/fake_host_resolver.h"
#include "chrome/browser/chromeos/net/network_diagnostics/fake_network_context.h"
#include "content/public/browser/browser_task_traits.h"
......@@ -90,7 +90,8 @@ class HttpsFirewallRoutineTest : public ::testing::Test {
run_loop_.Quit();
}
void SetUpRoutine(std::deque<TlsProberReturnValue> fake_probe_results) {
void SetUpRoutine(
base::circular_deque<TlsProberReturnValue> fake_probe_results) {
fake_probe_results_ = std::move(fake_probe_results);
https_firewall_routine_ = std::make_unique<HttpsFirewallRoutine>();
https_firewall_routine_->set_tls_prober_getter_callback_for_testing(
......@@ -108,7 +109,7 @@ class HttpsFirewallRoutineTest : public ::testing::Test {
// |expected_problems|: Represents the expected problem
// reported by this test.
void SetUpAndRunRoutine(
std::deque<TlsProberReturnValue> fake_probe_results,
base::circular_deque<TlsProberReturnValue> fake_probe_results,
mojom::RoutineVerdict expected_routine_verdict,
const std::vector<mojom::HttpsFirewallProblem>& expected_problems) {
SetUpRoutine(std::move(fake_probe_results));
......@@ -132,13 +133,13 @@ class HttpsFirewallRoutineTest : public ::testing::Test {
private:
content::BrowserTaskEnvironment task_environment_;
base::RunLoop run_loop_;
std::deque<TlsProberReturnValue> fake_probe_results_;
base::circular_deque<TlsProberReturnValue> fake_probe_results_;
std::unique_ptr<HttpsFirewallRoutine> https_firewall_routine_;
base::WeakPtrFactory<HttpsFirewallRoutineTest> weak_factory_{this};
};
TEST_F(HttpsFirewallRoutineTest, TestHighDnsResolutionFailuresRate) {
std::deque<TlsProberReturnValue> fake_probe_results;
base::circular_deque<TlsProberReturnValue> fake_probe_results;
// kTotalHosts = 9
for (int i = 0; i < kTotalHosts; i++) {
if (i < 2) {
......@@ -157,7 +158,7 @@ TEST_F(HttpsFirewallRoutineTest, TestHighDnsResolutionFailuresRate) {
}
TEST_F(HttpsFirewallRoutineTest, TestFirewallDetection) {
std::deque<TlsProberReturnValue> fake_probe_results;
base::circular_deque<TlsProberReturnValue> fake_probe_results;
// kTotalHosts = 9
for (int i = 0; i < kTotalHosts; i++) {
fake_probe_results.push_back(TlsProberReturnValue{
......@@ -169,7 +170,7 @@ TEST_F(HttpsFirewallRoutineTest, TestFirewallDetection) {
}
TEST_F(HttpsFirewallRoutineTest, TestPotentialFirewallDetection) {
std::deque<TlsProberReturnValue> fake_probe_results;
base::circular_deque<TlsProberReturnValue> fake_probe_results;
// kTotalHosts = 9
for (int i = 0; i < kTotalHosts; i++) {
if (i < 5) {
......@@ -188,7 +189,7 @@ TEST_F(HttpsFirewallRoutineTest, TestPotentialFirewallDetection) {
}
TEST_F(HttpsFirewallRoutineTest, TestNoFirewallIssues) {
std::deque<TlsProberReturnValue> fake_probe_results;
base::circular_deque<TlsProberReturnValue> fake_probe_results;
// kTotalHosts = 9
for (int i = 0; i < kTotalHosts; i++) {
if (i < 8) {
......@@ -206,7 +207,7 @@ TEST_F(HttpsFirewallRoutineTest, TestNoFirewallIssues) {
}
TEST_F(HttpsFirewallRoutineTest, TestContinousRetries) {
std::deque<TlsProberReturnValue> fake_probe_results;
base::circular_deque<TlsProberReturnValue> fake_probe_results;
// kTotalHosts = 9
for (int i = 0; i < kTotalHosts; i++) {
if (i < 8) {
......
......@@ -4,10 +4,10 @@
#include "chrome/browser/chromeos/net/network_diagnostics/https_latency_routine.h"
#include <deque>
#include <memory>
#include <utility>
#include "base/containers/circular_deque.h"
#include "base/run_loop.h"
#include "base/time/tick_clock.h"
#include "base/time/time.h"
......@@ -93,7 +93,7 @@ class FakeNetworkContext : public network::TestNetworkContext {
FakeNetworkContext() = default;
explicit FakeNetworkContext(
std::deque<FakeHostResolver::DnsResult*> fake_dns_results)
base::circular_deque<FakeHostResolver::DnsResult*> fake_dns_results)
: fake_dns_results_(std::move(fake_dns_results)) {}
~FakeNetworkContext() override {}
......@@ -111,7 +111,7 @@ class FakeNetworkContext : public network::TestNetworkContext {
private:
std::unique_ptr<FakeHostResolver> resolver_;
std::deque<FakeHostResolver::DnsResult*> fake_dns_results_;
base::circular_deque<FakeHostResolver::DnsResult*> fake_dns_results_;
};
class FakeTickClock : public base::TickClock {
......@@ -193,7 +193,8 @@ class HttpsLatencyRoutineTest : public ::testing::Test {
run_loop_.Run();
}
void SetUpRoutine(std::deque<FakeHostResolver::DnsResult*> fake_dns_results,
void SetUpRoutine(
base::circular_deque<FakeHostResolver::DnsResult*> fake_dns_results,
bool connected,
const base::TickClock* fake_tick_clock) {
ASSERT_TRUE(profile_manager_.SetUp());
......@@ -239,7 +240,7 @@ class HttpsLatencyRoutineTest : public ::testing::Test {
};
TEST_F(HttpsLatencyRoutineTest, TestFailedDnsResolution) {
std::deque<FakeHostResolver::DnsResult*> fake_dns_results;
base::circular_deque<FakeHostResolver::DnsResult*> fake_dns_results;
std::vector<std::unique_ptr<FakeHostResolver::DnsResult>> resolutions;
// kTotalHosts = 3
......@@ -268,7 +269,7 @@ TEST_F(HttpsLatencyRoutineTest, TestFailedDnsResolution) {
}
TEST_F(HttpsLatencyRoutineTest, TestLowLatency) {
std::deque<FakeHostResolver::DnsResult*> fake_dns_results;
base::circular_deque<FakeHostResolver::DnsResult*> fake_dns_results;
std::vector<std::unique_ptr<FakeHostResolver::DnsResult>> resolutions;
// kTotalHosts = 3
......@@ -289,7 +290,7 @@ TEST_F(HttpsLatencyRoutineTest, TestLowLatency) {
}
TEST_F(HttpsLatencyRoutineTest, TestFailedHttpRequest) {
std::deque<FakeHostResolver::DnsResult*> fake_dns_results;
base::circular_deque<FakeHostResolver::DnsResult*> fake_dns_results;
std::vector<std::unique_ptr<FakeHostResolver::DnsResult>> resolutions;
// kTotalHosts = 3
......@@ -311,7 +312,7 @@ TEST_F(HttpsLatencyRoutineTest, TestFailedHttpRequest) {
}
TEST_F(HttpsLatencyRoutineTest, TestHighLatency) {
std::deque<FakeHostResolver::DnsResult*> fake_dns_results;
base::circular_deque<FakeHostResolver::DnsResult*> fake_dns_results;
std::vector<std::unique_ptr<FakeHostResolver::DnsResult>> resolutions;
// kTotalHosts = 3
......@@ -333,7 +334,7 @@ TEST_F(HttpsLatencyRoutineTest, TestHighLatency) {
}
TEST_F(HttpsLatencyRoutineTest, TestVeryHighLatency) {
std::deque<FakeHostResolver::DnsResult*> fake_dns_results;
base::circular_deque<FakeHostResolver::DnsResult*> fake_dns_results;
std::vector<std::unique_ptr<FakeHostResolver::DnsResult>> resolutions;
// kTotalHosts = 3
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment