Fix a bug in an address sorting comparison

pull/15208/head
Alexander Polcyn 7 years ago
parent 2d894a8c3b
commit 0d98c8d9f0
  1. 23
      test/cpp/naming/address_sorting_test.cc
  2. 2
      third_party/address_sorting/address_sorting.c

@ -298,6 +298,29 @@ TEST(AddressSortingTest, TestUsesLabelFromDefaultTable) {
}); });
} }
/* Flip the input on the test above to reorder the sort function's
* comparator's inputs. */
TEST(AddressSortingTest, TestUsesLabelFromDefaultTableInputFlipped) {
bool ipv4_supported = true;
bool ipv6_supported = true;
OverrideAddressSortingSourceAddrFactory(
ipv4_supported, ipv6_supported,
{
{"[2002::5001]:443", {"[2001::5002]:0", AF_INET6}},
{"[2001::5001]:443",
{"[2001::5002]:0", AF_INET6}}, // matching labels
});
grpc_lb_addresses* lb_addrs = BuildLbAddrInputs({
{"[2001::5001]:443", AF_INET6},
{"[2002::5001]:443", AF_INET6},
});
grpc_cares_wrapper_test_only_address_sorting_sort(lb_addrs);
VerifyLbAddrOutputs(lb_addrs, {
"[2001::5001]:443",
"[2002::5001]:443",
});
}
/* Tests for rule 6 */ /* Tests for rule 6 */
TEST(AddressSortingTest, TEST(AddressSortingTest,

@ -255,7 +255,7 @@ static int compare_source_dest_labels_match(
second_label_matches = 1; second_label_matches = 1;
} }
if (first_label_matches != second_label_matches) { if (first_label_matches != second_label_matches) {
return first_label_matches ? 1 : 1; return first_label_matches ? -1 : 1;
} }
return 0; return 0;
} }

Loading…
Cancel
Save