Put address_sorting's public header under its own directory. Also add

test_only to sort function used in test.
pull/13290/head
Alex Polcyn 7 years ago committed by Alexander Polcyn
parent 47a92893a3
commit 77f64f76bd
  1. 2
      Makefile
  2. 2
      build.yaml
  3. 2
      cmake/address_sorting.cmake
  4. 2
      grpc.gemspec
  5. 2
      package.xml
  6. 2
      setup.py
  7. 2
      src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc
  8. 8
      src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc
  9. 3
      src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h
  10. 2
      templates/Makefile.template
  11. 50
      test/cpp/naming/address_sorting_test.cc
  12. 4
      third_party/address_sorting/BUILD
  13. 3
      third_party/address_sorting/address_sorting_internal.h
  14. 0
      third_party/address_sorting/include/address_sorting/address_sorting.h
  15. 4
      tools/run_tests/generated/sources_and_headers.json

@ -680,7 +680,7 @@ endif
ADDRESS_SORTING_DEP = $(LIBDIR)/$(CONFIG)/libaddress_sorting.a
ADDRESS_SORTING_MERGE_OBJS = $(LIBADDRESS_SORTING_OBJS)
ADDRESS_SORTING_MERGE_LIBS = $(LIBDIR)/$(CONFIG)/libaddress_sorting.a
CPPFLAGS := -Ithird_party/address_sorting $(CPPFLAGS)
CPPFLAGS := -Ithird_party/address_sorting/include $(CPPFLAGS)
ifeq ($(EMBED_CARES),true)
CARES_DEP = $(LIBDIR)/$(CONFIG)/libares.a

@ -1316,8 +1316,8 @@ libs:
build: all
language: c
headers:
- third_party/address_sorting/address_sorting.h
- third_party/address_sorting/address_sorting_internal.h
- third_party/address_sorting/include/address_sorting/address_sorting.h
src:
- third_party/address_sorting/address_sorting.c
- third_party/address_sorting/address_sorting_posix.c

@ -12,5 +12,5 @@
# See the License for the specific language governing permissions and
# limitations under the License.
set(_gRPC_ADDRESS_SORTING_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/third_party/address_sorting")
set(_gRPC_ADDRESS_SORTING_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/third_party/address_sorting/include")
set(_gRPC_ADDRESS_SORTING_LIBRARIES address_sorting)

@ -44,8 +44,8 @@ Gem::Specification.new do |s|
s.extensions = %w(src/ruby/ext/grpc/extconf.rb)
s.files += %w( third_party/address_sorting/address_sorting.h )
s.files += %w( third_party/address_sorting/address_sorting_internal.h )
s.files += %w( third_party/address_sorting/include/address_sorting/address_sorting.h )
s.files += %w( third_party/address_sorting/address_sorting.c )
s.files += %w( third_party/address_sorting/address_sorting_posix.c )
s.files += %w( third_party/address_sorting/address_sorting_windows.c )

@ -51,8 +51,8 @@
<file baseinstalldir="/" name="src/php/ext/grpc/server_credentials.h" role="src" />
<file baseinstalldir="/" name="src/php/ext/grpc/timeval.h" role="src" />
<file baseinstalldir="/" name="src/php/ext/grpc/version.h" role="src" />
<file baseinstalldir="/" name="third_party/address_sorting/address_sorting.h" role="src" />
<file baseinstalldir="/" name="third_party/address_sorting/address_sorting_internal.h" role="src" />
<file baseinstalldir="/" name="third_party/address_sorting/include/address_sorting/address_sorting.h" role="src" />
<file baseinstalldir="/" name="third_party/address_sorting/address_sorting.c" role="src" />
<file baseinstalldir="/" name="third_party/address_sorting/address_sorting_posix.c" role="src" />
<file baseinstalldir="/" name="third_party/address_sorting/address_sorting_windows.c" role="src" />

@ -48,7 +48,7 @@ if 'linux' in sys.platform:
CARES_INCLUDE += (os.path.join('third_party', 'cares', 'config_linux'),)
if 'openbsd' in sys.platform:
CARES_INCLUDE += (os.path.join('third_party', 'cares', 'config_openbsd'),)
ADDRESS_SORTING_INCLUDE = (os.path.join('third_party', 'address_sorting'),)
ADDRESS_SORTING_INCLUDE = (os.path.join('third_party', 'address_sorting', 'include'),)
README = os.path.join(PYTHON_STEM, 'README.rst')
# Ensure we're in the proper directory whether or not we're being used by pip.

@ -28,7 +28,7 @@
#include <grpc/support/alloc.h>
#include <grpc/support/string_util.h>
#include <address_sorting.h>
#include <address_sorting/address_sorting.h>
#include "src/core/ext/filters/client_channel/http_connect_handshaker.h"
#include "src/core/ext/filters/client_channel/lb_policy_registry.h"

@ -33,7 +33,7 @@
#include <grpc/support/string_util.h>
#include <grpc/support/time.h>
#include <address_sorting.h>
#include <address_sorting/address_sorting.h>
#include "src/core/ext/filters/client_channel/parse_address.h"
#include "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h"
#include "src/core/lib/gpr/host_port.h"
@ -143,6 +143,12 @@ void grpc_cares_wrapper_address_sorting_sort(grpc_lb_addresses* lb_addrs) {
}
}
/* Allow tests to access grpc_ares_wrapper_address_sorting_sort */
void grpc_cares_wrapper_test_only_address_sorting_sort(
grpc_lb_addresses* lb_addrs) {
grpc_cares_wrapper_address_sorting_sort(lb_addrs);
}
static void grpc_ares_request_unref(grpc_ares_request* r) {
/* If there are no pending queries, invoke on_done callback and destroy the
request */

@ -67,7 +67,8 @@ grpc_error* grpc_ares_init(void);
void grpc_ares_cleanup(void);
/* Exposed only for testing */
void grpc_cares_wrapper_address_sorting_sort(grpc_lb_addresses* lb_addrs);
void grpc_cares_wrapper_test_only_address_sorting_sort(
grpc_lb_addresses* lb_addrs);
#endif /* GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVER_DNS_C_ARES_GRPC_ARES_WRAPPER_H \
*/

@ -593,7 +593,7 @@
ADDRESS_SORTING_DEP = $(LIBDIR)/$(CONFIG)/libaddress_sorting.a
ADDRESS_SORTING_MERGE_OBJS = $(LIBADDRESS_SORTING_OBJS)
ADDRESS_SORTING_MERGE_LIBS = $(LIBDIR)/$(CONFIG)/libaddress_sorting.a
CPPFLAGS := -Ithird_party/address_sorting $(CPPFLAGS)
CPPFLAGS := -Ithird_party/address_sorting/include $(CPPFLAGS)
ifeq ($(EMBED_CARES),true)
CARES_DEP = $(LIBDIR)/$(CONFIG)/libares.a

@ -18,7 +18,6 @@
#include <grpc/grpc.h>
#include <grpc/support/alloc.h>
#include <grpc/support/host_port.h>
#include <grpc/support/log.h>
#include <grpc/support/string_util.h>
#include <grpc/support/sync.h>
@ -32,7 +31,7 @@
#include <sys/types.h>
#include <vector>
#include <address_sorting.h>
#include <address_sorting/address_sorting.h>
#include "test/cpp/util/subprocess.h"
#include "test/cpp/util/test_config.h"
@ -42,6 +41,7 @@
#include "src/core/ext/filters/client_channel/resolver_registry.h"
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/gpr/env.h"
#include "src/core/lib/gpr/host_port.h"
#include "src/core/lib/gpr/string.h"
#include "src/core/lib/iomgr/combiner.h"
#include "src/core/lib/iomgr/executor.h"
@ -205,7 +205,7 @@ TEST(AddressSortingTest, TestDepriotizesUnreachableAddresses) {
{"1.2.3.4:443", AF_INET},
{"5.6.7.8:443", AF_INET},
});
grpc_cares_wrapper_address_sorting_sort(lb_addrs);
grpc_cares_wrapper_test_only_address_sorting_sort(lb_addrs);
VerifyLbAddrOutputs(lb_addrs, {
"1.2.3.4:443",
"5.6.7.8:443",
@ -224,7 +224,7 @@ TEST(AddressSortingTest, TestDepriotizesUnsupportedDomainIpv6) {
{"[2607:f8b0:400a:801::1002]:443", AF_INET6},
{"1.2.3.4:443", AF_INET},
});
grpc_cares_wrapper_address_sorting_sort(lb_addrs);
grpc_cares_wrapper_test_only_address_sorting_sort(lb_addrs);
VerifyLbAddrOutputs(lb_addrs, {
"1.2.3.4:443",
"[2607:f8b0:400a:801::1002]:443",
@ -244,7 +244,7 @@ TEST(AddressSortingTest, TestDepriotizesUnsupportedDomainIpv4) {
{"[2607:f8b0:400a:801::1002]:443", AF_INET6},
{"1.2.3.4:443", AF_INET},
});
grpc_cares_wrapper_address_sorting_sort(lb_addrs);
grpc_cares_wrapper_test_only_address_sorting_sort(lb_addrs);
VerifyLbAddrOutputs(lb_addrs, {
"[2607:f8b0:400a:801::1002]:443",
"1.2.3.4:443",
@ -268,7 +268,7 @@ TEST(AddressSortingTest, TestDepriotizesNonMatchingScope) {
{"[2000:f8b0:400a:801::1002]:443", AF_INET6},
{"[fec0::5000]:443", AF_INET6},
});
grpc_cares_wrapper_address_sorting_sort(lb_addrs);
grpc_cares_wrapper_test_only_address_sorting_sort(lb_addrs);
VerifyLbAddrOutputs(lb_addrs, {
"[fec0::5000]:443",
"[2000:f8b0:400a:801::1002]:443",
@ -291,7 +291,7 @@ TEST(AddressSortingTest, TestUsesLabelFromDefaultTable) {
{"[2002::5001]:443", AF_INET6},
{"[2001::5001]:443", AF_INET6},
});
grpc_cares_wrapper_address_sorting_sort(lb_addrs);
grpc_cares_wrapper_test_only_address_sorting_sort(lb_addrs);
VerifyLbAddrOutputs(lb_addrs, {
"[2001::5001]:443",
"[2002::5001]:443",
@ -314,7 +314,7 @@ TEST(AddressSortingTest,
{"[3ffe::5001]:443", AF_INET6},
{"1.2.3.4:443", AF_INET},
});
grpc_cares_wrapper_address_sorting_sort(lb_addrs);
grpc_cares_wrapper_test_only_address_sorting_sort(lb_addrs);
VerifyLbAddrOutputs(
lb_addrs, {
// The AF_INET address should be IPv4-mapped by the sort,
@ -347,7 +347,7 @@ TEST(AddressSortingTest,
{v4_compat_dest, AF_INET6},
{"[::1]:443", AF_INET6},
});
grpc_cares_wrapper_address_sorting_sort(lb_addrs);
grpc_cares_wrapper_test_only_address_sorting_sort(lb_addrs);
VerifyLbAddrOutputs(lb_addrs, {
"[::1]:443",
v4_compat_dest,
@ -370,7 +370,7 @@ TEST(AddressSortingTest,
{"[1234::2]:443", AF_INET6},
{"[::1]:443", AF_INET6},
});
grpc_cares_wrapper_address_sorting_sort(lb_addrs);
grpc_cares_wrapper_test_only_address_sorting_sort(lb_addrs);
VerifyLbAddrOutputs(
lb_addrs,
{
@ -394,7 +394,7 @@ TEST(AddressSortingTest,
{"[2001::1234]:443", AF_INET6},
{"[2000::5001]:443", AF_INET6},
});
grpc_cares_wrapper_address_sorting_sort(lb_addrs);
grpc_cares_wrapper_test_only_address_sorting_sort(lb_addrs);
VerifyLbAddrOutputs(
lb_addrs, {
// The 2000::/16 address should match the ::/0 prefix rule
@ -418,7 +418,7 @@ TEST(
{"[2001::1231]:443", AF_INET6},
{"[2000::5001]:443", AF_INET6},
});
grpc_cares_wrapper_address_sorting_sort(lb_addrs);
grpc_cares_wrapper_test_only_address_sorting_sort(lb_addrs);
VerifyLbAddrOutputs(lb_addrs, {
"[2000::5001]:443",
"[2001::1231]:443",
@ -439,7 +439,7 @@ TEST(AddressSortingTest,
{"[fec0::1234]:443", AF_INET6},
{"[fc00::5001]:443", AF_INET6},
});
grpc_cares_wrapper_address_sorting_sort(lb_addrs);
grpc_cares_wrapper_test_only_address_sorting_sort(lb_addrs);
VerifyLbAddrOutputs(lb_addrs, {
"[fc00::5001]:443",
"[fec0::1234]:443",
@ -461,7 +461,7 @@ TEST(
{"[::ffff:0.0.0.2]:443", AF_INET6},
{"[1234::2]:443", AF_INET6},
});
grpc_cares_wrapper_address_sorting_sort(lb_addrs);
grpc_cares_wrapper_test_only_address_sorting_sort(lb_addrs);
VerifyLbAddrOutputs(lb_addrs, {
// ::ffff:0:2 should match the v4-mapped
// precedence entry and be deprioritized.
@ -488,7 +488,7 @@ TEST(AddressSortingTest, TestPrefersSmallerScope) {
{"[3ffe::5001]:443", AF_INET6},
{"[fec0::1234]:443", AF_INET6},
});
grpc_cares_wrapper_address_sorting_sort(lb_addrs);
grpc_cares_wrapper_test_only_address_sorting_sort(lb_addrs);
VerifyLbAddrOutputs(lb_addrs, {
"[fec0::1234]:443",
"[3ffe::5001]:443",
@ -513,7 +513,7 @@ TEST(AddressSortingTest, TestPrefersLongestMatchingSrcDstPrefix) {
{"[3ffe:5001::]:443", AF_INET6},
{"[3ffe:1234::]:443", AF_INET6},
});
grpc_cares_wrapper_address_sorting_sort(lb_addrs);
grpc_cares_wrapper_test_only_address_sorting_sort(lb_addrs);
VerifyLbAddrOutputs(lb_addrs, {
"[3ffe:1234::]:443",
"[3ffe:5001::]:443",
@ -534,7 +534,7 @@ TEST(AddressSortingTest,
{"[3ffe::5001]:443", AF_INET6},
{"[3ffe::1234]:443", AF_INET6},
});
grpc_cares_wrapper_address_sorting_sort(lb_addrs);
grpc_cares_wrapper_test_only_address_sorting_sort(lb_addrs);
VerifyLbAddrOutputs(lb_addrs, {
"[3ffe::1234]:443",
"[3ffe::5001]:443",
@ -554,7 +554,7 @@ TEST(AddressSortingTest, TestPrefersLongestPrefixStressInnerBytePrefix) {
{"[3ffe:8000::]:443", AF_INET6},
{"[3ffe:2000::]:443", AF_INET6},
});
grpc_cares_wrapper_address_sorting_sort(lb_addrs);
grpc_cares_wrapper_test_only_address_sorting_sort(lb_addrs);
VerifyLbAddrOutputs(lb_addrs, {
"[3ffe:2000::]:443",
"[3ffe:8000::]:443",
@ -574,7 +574,7 @@ TEST(AddressSortingTest, TestPrefersLongestPrefixDiffersOnHighestBitOfByte) {
{"[3ffe:6::]:443", AF_INET6},
{"[3ffe:c::]:443", AF_INET6},
});
grpc_cares_wrapper_address_sorting_sort(lb_addrs);
grpc_cares_wrapper_test_only_address_sorting_sort(lb_addrs);
VerifyLbAddrOutputs(lb_addrs, {
"[3ffe:c::]:443",
"[3ffe:6::]:443",
@ -596,7 +596,7 @@ TEST(AddressSortingTest, TestPrefersLongestPrefixDiffersByLastBit) {
{"[3ffe:1111:1111:1110::]:443", AF_INET6},
{"[3ffe:1111:1111:1111::]:443", AF_INET6},
});
grpc_cares_wrapper_address_sorting_sort(lb_addrs);
grpc_cares_wrapper_test_only_address_sorting_sort(lb_addrs);
VerifyLbAddrOutputs(lb_addrs, {
"[3ffe:1111:1111:1111::]:443",
"[3ffe:1111:1111:1110::]:443",
@ -618,7 +618,7 @@ TEST(AddressSortingTest, TestStableSort) {
{"[3ffe::1234]:443", AF_INET6},
{"[3ffe::1235]:443", AF_INET6},
});
grpc_cares_wrapper_address_sorting_sort(lb_addrs);
grpc_cares_wrapper_test_only_address_sorting_sort(lb_addrs);
VerifyLbAddrOutputs(lb_addrs, {
"[3ffe::1234]:443",
"[3ffe::1235]:443",
@ -644,7 +644,7 @@ TEST(AddressSortingTest, TestStableSortFiveElements) {
{"[3ffe::1234]:443", AF_INET6},
{"[3ffe::1235]:443", AF_INET6},
});
grpc_cares_wrapper_address_sorting_sort(lb_addrs);
grpc_cares_wrapper_test_only_address_sorting_sort(lb_addrs);
VerifyLbAddrOutputs(lb_addrs, {
"[3ffe::1231]:443",
"[3ffe::1232]:443",
@ -665,7 +665,7 @@ TEST(AddressSortingTest, TestStableSortNoSrcAddrsExist) {
{"[3ffe::1234]:443", AF_INET6},
{"[3ffe::1235]:443", AF_INET6},
});
grpc_cares_wrapper_address_sorting_sort(lb_addrs);
grpc_cares_wrapper_test_only_address_sorting_sort(lb_addrs);
VerifyLbAddrOutputs(lb_addrs, {
"[3ffe::1231]:443",
"[3ffe::1232]:443",
@ -683,7 +683,7 @@ TEST(AddressSortingTest, TestStableSortNoSrcAddrsExistWithIpv4) {
{"[::ffff:5.6.7.8]:443", AF_INET6},
{"1.2.3.4:443", AF_INET},
});
grpc_cares_wrapper_address_sorting_sort(lb_addrs);
grpc_cares_wrapper_test_only_address_sorting_sort(lb_addrs);
VerifyLbAddrOutputs(lb_addrs, {
"[::ffff:5.6.7.8]:443",
"1.2.3.4:443",
@ -711,7 +711,7 @@ TEST(AddressSortingTest, TestStableSortV4CompatAndSiteLocalAddresses) {
{"[fec0::2000]:443", AF_INET6},
{v4_compat_dest, AF_INET6},
});
grpc_cares_wrapper_address_sorting_sort(lb_addrs);
grpc_cares_wrapper_test_only_address_sorting_sort(lb_addrs);
VerifyLbAddrOutputs(lb_addrs,
{
// The sort should be stable since

@ -50,11 +50,11 @@ address_sorting_cc_library(
"address_sorting_windows.c",
],
hdrs = [
"address_sorting.h",
"include/address_sorting/address_sorting.h",
"address_sorting_internal.h",
],
copts = ["-std=c99"],
includes = [
".",
"include",
],
)

@ -61,7 +61,8 @@
#endif
#include <stdbool.h>
#include "address_sorting.h"
#include <address_sorting/address_sorting.h>
address_sorting_source_addr_factory*
address_sorting_create_source_addr_factory_for_current_platform();

@ -6620,8 +6620,8 @@
{
"deps": [],
"headers": [
"third_party/address_sorting/address_sorting.h",
"third_party/address_sorting/address_sorting_internal.h"
"third_party/address_sorting/address_sorting_internal.h",
"third_party/address_sorting/include/address_sorting/address_sorting.h"
],
"is_filegroup": false,
"language": "c",

Loading…
Cancel
Save