Skip to content

Commit

Permalink
[test host utils] use make_shared to avoid memory leaks (#14042)
Browse files Browse the repository at this point in the history
Commit Message: Switch to using std::make_shared in host util test code. Clang tidy is unhappy about current state of code and has been complaining about potential memory leaks, sample log here: https://dev.azure.com/cncf/envoy/_build/results?buildId=57303&view=logs&jobId=b7634614-24f3-5416-e791-4f3affaaed6c&j=b7634614-24f3-5416-e791-4f3affaaed6c&t=21e6aa7d-f369-5abd-5e4e-e888cac18e9c. Issue discovered in this PR. We may need to create dedicated issue to fix problem globally.
Risk Level: Low
Testing: Covered by existing tests
Docs Changes: NA
Release Notes: NA

Signed-off-by: Kateryna Nezdolii <[email protected]>
  • Loading branch information
Kateryna Nezdolii authored Nov 16, 2020
1 parent cd684e7 commit 5b1bdbe
Showing 1 changed file with 20 additions and 20 deletions.
40 changes: 20 additions & 20 deletions test/common/upstream/utility.h
Original file line number Diff line number Diff line change
Expand Up @@ -79,48 +79,48 @@ inline envoy::config::cluster::v3::Cluster defaultStaticCluster(const std::strin

inline HostSharedPtr makeTestHost(ClusterInfoConstSharedPtr cluster, const std::string& hostname,
const std::string& url, uint32_t weight = 1) {
return HostSharedPtr{
new HostImpl(cluster, hostname, Network::Utility::resolveUrl(url), nullptr, weight,
envoy::config::core::v3::Locality(),
envoy::config::endpoint::v3::Endpoint::HealthCheckConfig::default_instance(), 0,
envoy::config::core::v3::UNKNOWN)};
return std::make_shared<HostImpl>(
cluster, hostname, Network::Utility::resolveUrl(url), nullptr, weight,
envoy::config::core::v3::Locality(),
envoy::config::endpoint::v3::Endpoint::HealthCheckConfig::default_instance(), 0,
envoy::config::core::v3::UNKNOWN);
}

inline HostSharedPtr makeTestHost(ClusterInfoConstSharedPtr cluster, const std::string& url,
uint32_t weight = 1, uint32_t priority = 0) {
return HostSharedPtr{
new HostImpl(cluster, "", Network::Utility::resolveUrl(url), nullptr, weight,
envoy::config::core::v3::Locality(),
envoy::config::endpoint::v3::Endpoint::HealthCheckConfig::default_instance(),
priority, envoy::config::core::v3::UNKNOWN)};
return std::make_shared<HostImpl>(
cluster, "", Network::Utility::resolveUrl(url), nullptr, weight,
envoy::config::core::v3::Locality(),
envoy::config::endpoint::v3::Endpoint::HealthCheckConfig::default_instance(), priority,
envoy::config::core::v3::UNKNOWN);
}

inline HostSharedPtr makeTestHost(ClusterInfoConstSharedPtr cluster, const std::string& url,
const envoy::config::core::v3::Metadata& metadata,
uint32_t weight = 1) {
return HostSharedPtr{
new HostImpl(cluster, "", Network::Utility::resolveUrl(url),
std::make_shared<const envoy::config::core::v3::Metadata>(metadata), weight,
envoy::config::core::v3::Locality(),
envoy::config::endpoint::v3::Endpoint::HealthCheckConfig::default_instance(), 0,
envoy::config::core::v3::UNKNOWN)};
return std::make_shared<HostImpl>(
cluster, "", Network::Utility::resolveUrl(url),
std::make_shared<const envoy::config::core::v3::Metadata>(metadata), weight,
envoy::config::core::v3::Locality(),
envoy::config::endpoint::v3::Endpoint::HealthCheckConfig::default_instance(), 0,
envoy::config::core::v3::UNKNOWN);
}

inline HostSharedPtr
makeTestHost(ClusterInfoConstSharedPtr cluster, const std::string& url,
const envoy::config::endpoint::v3::Endpoint::HealthCheckConfig& health_check_config,
uint32_t weight = 1) {
return HostSharedPtr{new HostImpl(cluster, "", Network::Utility::resolveUrl(url), nullptr, weight,
return std::make_shared<HostImpl>(cluster, "", Network::Utility::resolveUrl(url), nullptr, weight,
envoy::config::core::v3::Locality(), health_check_config, 0,
envoy::config::core::v3::UNKNOWN)};
envoy::config::core::v3::UNKNOWN);
}

inline HostDescriptionConstSharedPtr makeTestHostDescription(ClusterInfoConstSharedPtr cluster,
const std::string& url) {
return HostDescriptionConstSharedPtr{new HostDescriptionImpl(
return std::make_shared<HostDescriptionImpl>(
cluster, "", Network::Utility::resolveUrl(url), nullptr,
envoy::config::core::v3::Locality().default_instance(),
envoy::config::endpoint::v3::Endpoint::HealthCheckConfig::default_instance(), 0)};
envoy::config::endpoint::v3::Endpoint::HealthCheckConfig::default_instance(), 0);
}

inline HostsPerLocalitySharedPtr makeHostsPerLocality(std::vector<HostVector>&& locality_hosts,
Expand Down

0 comments on commit 5b1bdbe

Please sign in to comment.