resolver_tests_common_zone_name: resolver-tests-version-4.grpctestingexp.
resolver_component_tests:
# Tests for which we enable SRV queries
- expected_addrs:
  - {address: '5.5.5.5:443', is_balancer: false}
  do_ordered_address_comparison: false
  expected_chosen_service_config: null
  expected_service_config_error: null
  expected_lb_policy: null
  enable_srv_queries: true
  enable_txt_queries: true
  inject_broken_nameserver_list: false
  record_to_resolve: no-srv-ipv4-single-target
  records:
    no-srv-ipv4-single-target:
    - {TTL: '2100', data: 5.5.5.5, type: A}
- expected_addrs:
  - {address: '1.2.3.4:1234', is_balancer: true}
  do_ordered_address_comparison: false
  expected_chosen_service_config: null
  expected_service_config_error: null
  expected_lb_policy: null
  enable_srv_queries: true
  enable_txt_queries: true
  inject_broken_nameserver_list: false
  record_to_resolve: srv-ipv4-single-target
  records:
    _grpclb._tcp.srv-ipv4-single-target:
    - {TTL: '2100', data: 0 0 1234 ipv4-single-target, type: SRV}
    ipv4-single-target:
    - {TTL: '2100', data: 1.2.3.4, type: A}
- expected_addrs:
  - {address: '1.2.3.5:1234', is_balancer: true}
  - {address: '1.2.3.6:1234', is_balancer: true}
  - {address: '1.2.3.7:1234', is_balancer: true}
  do_ordered_address_comparison: false
  expected_chosen_service_config: null
  expected_service_config_error: null
  expected_lb_policy: null
  enable_srv_queries: true
  enable_txt_queries: true
  inject_broken_nameserver_list: false
  record_to_resolve: srv-ipv4-multi-target
  records:
    _grpclb._tcp.srv-ipv4-multi-target:
    - {TTL: '2100', data: 0 0 1234 ipv4-multi-target, type: SRV}
    ipv4-multi-target:
    - {TTL: '2100', data: 1.2.3.5, type: A}
    - {TTL: '2100', data: 1.2.3.6, type: A}
    - {TTL: '2100', data: 1.2.3.7, type: A}
- expected_addrs:
  - {address: '[2607:f8b0:400a:801::1001]:1234', is_balancer: true}
  do_ordered_address_comparison: false
  expected_chosen_service_config: null
  expected_service_config_error: null
  expected_lb_policy: null
  enable_srv_queries: true
  enable_txt_queries: true
  inject_broken_nameserver_list: false
  record_to_resolve: srv-ipv6-single-target
  records:
    _grpclb._tcp.srv-ipv6-single-target:
    - {TTL: '2100', data: 0 0 1234 ipv6-single-target, type: SRV}
    ipv6-single-target:
    - {TTL: '2100', data: '2607:f8b0:400a:801::1001', type: AAAA}
- expected_addrs:
  - {address: '[2607:f8b0:400a:801::1002]:1234', is_balancer: true}
  - {address: '[2607:f8b0:400a:801::1003]:1234', is_balancer: true}
  - {address: '[2607:f8b0:400a:801::1004]:1234', is_balancer: true}
  do_ordered_address_comparison: false
  expected_chosen_service_config: null
  expected_service_config_error: null
  expected_lb_policy: null
  enable_srv_queries: true
  enable_txt_queries: true
  inject_broken_nameserver_list: false
  record_to_resolve: srv-ipv6-multi-target
  records:
    _grpclb._tcp.srv-ipv6-multi-target:
    - {TTL: '2100', data: 0 0 1234 ipv6-multi-target, type: SRV}
    ipv6-multi-target:
    - {TTL: '2100', data: '2607:f8b0:400a:801::1002', type: AAAA}
    - {TTL: '2100', data: '2607:f8b0:400a:801::1003', type: AAAA}
    - {TTL: '2100', data: '2607:f8b0:400a:801::1004', type: AAAA}
- expected_addrs:
  - {address: '1.2.3.4:1234', is_balancer: true}
  do_ordered_address_comparison: false
  expected_chosen_service_config: '{"loadBalancingPolicy":"round_robin","methodConfig":[{"name":[{"method":"Foo","service":"SimpleService"}],"waitForReady":true}]}'
  expected_service_config_error: null
  expected_lb_policy: round_robin
  enable_srv_queries: true
  enable_txt_queries: true
  inject_broken_nameserver_list: false
  record_to_resolve: srv-ipv4-simple-service-config
  records:
    _grpclb._tcp.srv-ipv4-simple-service-config:
    - {TTL: '2100', data: 0 0 1234 ipv4-simple-service-config, type: SRV}
    ipv4-simple-service-config:
    - {TTL: '2100', data: 1.2.3.4, type: A}
    _grpc_config.srv-ipv4-simple-service-config:
    - {TTL: '2100', data: 'grpc_config=[{"serviceConfig":{"loadBalancingPolicy":"round_robin","methodConfig":[{"name":[{"method":"Foo","service":"SimpleService"}],"waitForReady":true}]}}]',
      type: TXT}
- expected_addrs:
  - {address: '1.2.3.4:443', is_balancer: false}
  do_ordered_address_comparison: false
  expected_chosen_service_config: '{"loadBalancingPolicy":"round_robin","methodConfig":[{"name":[{"method":"Foo","service":"NoSrvSimpleService"}],"waitForReady":true}]}'
  expected_service_config_error: null
  expected_lb_policy: round_robin
  enable_srv_queries: true
  enable_txt_queries: true
  inject_broken_nameserver_list: false
  record_to_resolve: ipv4-no-srv-simple-service-config
  records:
    ipv4-no-srv-simple-service-config:
    - {TTL: '2100', data: 1.2.3.4, type: A}
    _grpc_config.ipv4-no-srv-simple-service-config:
    - {TTL: '2100', data: 'grpc_config=[{"serviceConfig":{"loadBalancingPolicy":"round_robin","methodConfig":[{"name":[{"method":"Foo","service":"NoSrvSimpleService"}],"waitForReady":true}]}}]',
      type: TXT}
- expected_addrs:
  - {address: '1.2.3.4:443', is_balancer: false}
  do_ordered_address_comparison: false
  expected_chosen_service_config: null
  expected_service_config_error: null
  expected_lb_policy: null
  enable_srv_queries: true
  enable_txt_queries: true
  inject_broken_nameserver_list: false
  record_to_resolve: ipv4-no-config-for-cpp
  records:
    ipv4-no-config-for-cpp:
    - {TTL: '2100', data: 1.2.3.4, type: A}
    _grpc_config.ipv4-no-config-for-cpp:
    - {TTL: '2100', data: 'grpc_config=[{"clientLanguage":["python"],"serviceConfig":{"loadBalancingPolicy":"round_robin","methodConfig":[{"name":[{"method":"Foo","service":"PythonService"}],"waitForReady":true}]}}]',
      type: TXT}
- expected_addrs:
  - {address: '1.2.3.4:443', is_balancer: false}
  do_ordered_address_comparison: false
  expected_chosen_service_config: null
  expected_service_config_error: null
  expected_lb_policy: null
  enable_srv_queries: true
  enable_txt_queries: true
  inject_broken_nameserver_list: false
  record_to_resolve: ipv4-cpp-config-has-zero-percentage
  records:
    ipv4-cpp-config-has-zero-percentage:
    - {TTL: '2100', data: 1.2.3.4, type: A}
    _grpc_config.ipv4-cpp-config-has-zero-percentage:
    - {TTL: '2100', data: 'grpc_config=[{"percentage":0,"serviceConfig":{"loadBalancingPolicy":"round_robin","methodConfig":[{"name":[{"method":"Foo","service":"CppService"}],"waitForReady":true}]}}]',
      type: TXT}
- expected_addrs:
  - {address: '1.2.3.4:443', is_balancer: false}
  do_ordered_address_comparison: false
  expected_chosen_service_config: '{"loadBalancingPolicy":"round_robin","methodConfig":[{"name":[{"method":"Foo","service":"CppService"}],"waitForReady":true}]}'
  expected_service_config_error: null
  expected_lb_policy: round_robin
  enable_srv_queries: true
  enable_txt_queries: true
  inject_broken_nameserver_list: false
  record_to_resolve: ipv4-second-language-is-cpp
  records:
    ipv4-second-language-is-cpp:
    - {TTL: '2100', data: 1.2.3.4, type: A}
    _grpc_config.ipv4-second-language-is-cpp:
    - {TTL: '2100', data: 'grpc_config=[{"clientLanguage":["go"],"serviceConfig":{"loadBalancingPolicy":"round_robin","methodConfig":[{"name":[{"method":"Foo","service":"GoService"}],"waitForReady":true}]}},{"clientLanguage":["c++"],"serviceConfig":{"loadBalancingPolicy":"round_robin","methodConfig":[{"name":[{"method":"Foo","service":"CppService"}],"waitForReady":true}]}}]',
      type: TXT}
- expected_addrs:
  - {address: '1.2.3.4:443', is_balancer: false}
  do_ordered_address_comparison: false
  expected_chosen_service_config: '{"loadBalancingPolicy":"round_robin","methodConfig":[{"name":[{"method":"Foo","service":"AlwaysPickedService"}],"waitForReady":true}]}'
  expected_service_config_error: null
  expected_lb_policy: round_robin
  enable_srv_queries: true
  enable_txt_queries: true
  inject_broken_nameserver_list: false
  record_to_resolve: ipv4-config-with-percentages
  records:
    ipv4-config-with-percentages:
    - {TTL: '2100', data: 1.2.3.4, type: A}
    _grpc_config.ipv4-config-with-percentages:
    - {TTL: '2100', data: 'grpc_config=[{"percentage":0,"serviceConfig":{"loadBalancingPolicy":"round_robin","methodConfig":[{"name":[{"method":"Foo","service":"NeverPickedService"}],"waitForReady":true}]}},{"percentage":100,"serviceConfig":{"loadBalancingPolicy":"round_robin","methodConfig":[{"name":[{"method":"Foo","service":"AlwaysPickedService"}],"waitForReady":true}]}}]',
      type: TXT}
- expected_addrs:
  - {address: '1.2.3.4:1234', is_balancer: true}
  - {address: '1.2.3.4:443', is_balancer: false}
  do_ordered_address_comparison: false
  expected_chosen_service_config: null
  expected_service_config_error: null
  expected_lb_policy: null
  enable_srv_queries: true
  enable_txt_queries: true
  inject_broken_nameserver_list: false
  record_to_resolve: srv-ipv4-target-has-backend-and-balancer
  records:
    _grpclb._tcp.srv-ipv4-target-has-backend-and-balancer:
    - {TTL: '2100', data: 0 0 1234 balancer-for-ipv4-has-backend-and-balancer, type: SRV}
    balancer-for-ipv4-has-backend-and-balancer:
    - {TTL: '2100', data: 1.2.3.4, type: A}
    srv-ipv4-target-has-backend-and-balancer:
    - {TTL: '2100', data: 1.2.3.4, type: A}
- expected_addrs:
  - {address: '[2607:f8b0:400a:801::1002]:1234', is_balancer: true}
  - {address: '[2607:f8b0:400a:801::1002]:443', is_balancer: false}
  do_ordered_address_comparison: false
  expected_chosen_service_config: null
  expected_service_config_error: null
  expected_lb_policy: null
  enable_srv_queries: true
  enable_txt_queries: true
  inject_broken_nameserver_list: false
  record_to_resolve: srv-ipv6-target-has-backend-and-balancer
  records:
    _grpclb._tcp.srv-ipv6-target-has-backend-and-balancer:
    - {TTL: '2100', data: 0 0 1234 balancer-for-ipv6-has-backend-and-balancer, type: SRV}
    balancer-for-ipv6-has-backend-and-balancer:
    - {TTL: '2100', data: '2607:f8b0:400a:801::1002', type: AAAA}
    srv-ipv6-target-has-backend-and-balancer:
    - {TTL: '2100', data: '2607:f8b0:400a:801::1002', type: AAAA}
- expected_addrs:
  - {address: '1.2.3.4:443', is_balancer: false}
  do_ordered_address_comparison: false
  expected_chosen_service_config: '{"loadBalancingPolicy":"round_robin","methodConfig":[{"name":[{"method":"Foo","service":"SimpleService"}],"waitForReady":true},{"name":[{"method":"FooTwo","service":"SimpleService"}],"waitForReady":true},{"name":[{"method":"FooThree","service":"SimpleService"}],"waitForReady":true},{"name":[{"method":"FooFour","service":"SimpleService"}],"waitForReady":true},{"name":[{"method":"FooFive","service":"SimpleService"}],"waitForReady":true},{"name":[{"method":"FooSix","service":"SimpleService"}],"waitForReady":true},{"name":[{"method":"FooSeven","service":"SimpleService"}],"waitForReady":true},{"name":[{"method":"FooEight","service":"SimpleService"}],"waitForReady":true},{"name":[{"method":"FooNine","service":"SimpleService"}],"waitForReady":true},{"name":[{"method":"FooTen","service":"SimpleService"}],"waitForReady":true},{"name":[{"method":"FooEleven","service":"SimpleService"}],"waitForReady":true},{"name":[{"method":"FooTwelve","service":"SimpleService"}],"waitForReady":true},{"name":[{"method":"FooThirteen","service":"SimpleService"}],"waitForReady":true},{"name":[{"method":"FooFourteen","service":"SimpleService"}],"waitForReady":true},{"name":[{"method":"FooFifteen","service":"SimpleService"}],"waitForReady":true}]}'
  expected_service_config_error: null
  expected_lb_policy: null
  enable_srv_queries: true
  enable_txt_queries: true
  inject_broken_nameserver_list: false
  record_to_resolve: ipv4-config-causing-fallback-to-tcp
  records:
    ipv4-config-causing-fallback-to-tcp:
    - {TTL: '2100', data: 1.2.3.4, type: A}
    _grpc_config.ipv4-config-causing-fallback-to-tcp:
    - {TTL: '2100', data: 'grpc_config=[{"serviceConfig":{"loadBalancingPolicy":"round_robin","methodConfig":[{"name":[{"method":"Foo","service":"SimpleService"}],"waitForReady":true},{"name":[{"method":"FooTwo","service":"SimpleService"}],"waitForReady":true},{"name":[{"method":"FooThree","service":"SimpleService"}],"waitForReady":true},{"name":[{"method":"FooFour","service":"SimpleService"}],"waitForReady":true},{"name":[{"method":"FooFive","service":"SimpleService"}],"waitForReady":true},{"name":[{"method":"FooSix","service":"SimpleService"}],"waitForReady":true},{"name":[{"method":"FooSeven","service":"SimpleService"}],"waitForReady":true},{"name":[{"method":"FooEight","service":"SimpleService"}],"waitForReady":true},{"name":[{"method":"FooNine","service":"SimpleService"}],"waitForReady":true},{"name":[{"method":"FooTen","service":"SimpleService"}],"waitForReady":true},{"name":[{"method":"FooEleven","service":"SimpleService"}],"waitForReady":true},{"name":[{"method":"FooTwelve","service":"SimpleService"}],"waitForReady":true},{"name":[{"method":"FooThirteen","service":"SimpleService"}],"waitForReady":true},{"name":[{"method":"FooFourteen","service":"SimpleService"}],"waitForReady":true},{"name":[{"method":"FooFifteen","service":"SimpleService"}],"waitForReady":true}]}}]',
      type: TXT}
# Tests for which we don't enable SRV queries
- expected_addrs:
  - {address: '2.3.4.5:443', is_balancer: false}
  do_ordered_address_comparison: false
  expected_chosen_service_config: null
  expected_service_config_error: null
  expected_lb_policy: null
  enable_srv_queries: false
  enable_txt_queries: true
  inject_broken_nameserver_list: false
  record_to_resolve: srv-ipv4-single-target-srv-disabled
  records:
    _grpclb._tcp.srv-ipv4-single-target-srv-disabled:
    - {TTL: '2100', data: 0 0 1234 ipv4-single-target-srv-disabled, type: SRV}
    ipv4-single-target-srv-disabled:
    - {TTL: '2100', data: 1.2.3.4, type: A}
    srv-ipv4-single-target-srv-disabled:
    - {TTL: '2100', data: 2.3.4.5, type: A}
- expected_addrs:
  - {address: '9.2.3.5:443', is_balancer: false}
  - {address: '9.2.3.6:443', is_balancer: false}
  - {address: '9.2.3.7:443', is_balancer: false}
  do_ordered_address_comparison: false
  expected_chosen_service_config: null
  expected_service_config_error: null
  expected_lb_policy: null
  enable_srv_queries: false
  enable_txt_queries: true
  inject_broken_nameserver_list: false
  record_to_resolve: srv-ipv4-multi-target-srv-disabled
  records:
    _grpclb._tcp.srv-ipv4-multi-target-srv-disabled:
    - {TTL: '2100', data: 0 0 1234 ipv4-multi-target-srv-disabled, type: SRV}
    ipv4-multi-target-srv-disabled:
    - {TTL: '2100', data: 1.2.3.5, type: A}
    - {TTL: '2100', data: 1.2.3.6, type: A}
    - {TTL: '2100', data: 1.2.3.7, type: A}
    srv-ipv4-multi-target-srv-disabled:
    - {TTL: '2100', data: 9.2.3.5, type: A}
    - {TTL: '2100', data: 9.2.3.6, type: A}
    - {TTL: '2100', data: 9.2.3.7, type: A}
- expected_addrs:
  - {address: '[2600::1001]:443', is_balancer: false}
  do_ordered_address_comparison: false
  expected_chosen_service_config: null
  expected_service_config_error: null
  expected_lb_policy: null
  enable_srv_queries: false
  enable_txt_queries: true
  inject_broken_nameserver_list: false
  record_to_resolve: srv-ipv6-single-target-srv-disabled
  records:
    _grpclb._tcp.srv-ipv6-single-target-srv-disabled:
    - {TTL: '2100', data: 0 0 1234 ipv6-single-target-srv-disabled, type: SRV}
    ipv6-single-target-srv-disabled:
    - {TTL: '2100', data: '2607:f8b0:400a:801::1001', type: AAAA}
    srv-ipv6-single-target-srv-disabled:
    - {TTL: '2100', data: '2600::1001', type: AAAA}
- expected_addrs:
  - {address: '[2600::1002]:443', is_balancer: false}
  - {address: '[2600::1003]:443', is_balancer: false}
  - {address: '[2600::1004]:443', is_balancer: false}
  do_ordered_address_comparison: false
  expected_chosen_service_config: null
  expected_service_config_error: null
  expected_lb_policy: null
  enable_srv_queries: false
  enable_txt_queries: true
  inject_broken_nameserver_list: false
  record_to_resolve: srv-ipv6-multi-target-srv-disabled
  records:
    _grpclb._tcp.srv-ipv6-multi-target-srv-disabled:
    - {TTL: '2100', data: 0 0 1234 ipv6-multi-target-srv-disabled, type: SRV}
    ipv6-multi-target-srv-disabled:
    - {TTL: '2100', data: '2607:f8b0:400a:801::1002', type: AAAA}
    - {TTL: '2100', data: '2607:f8b0:400a:801::1003', type: AAAA}
    - {TTL: '2100', data: '2607:f8b0:400a:801::1004', type: AAAA}
    srv-ipv6-multi-target-srv-disabled:
    - {TTL: '2100', data: '2600::1002', type: AAAA}
    - {TTL: '2100', data: '2600::1003', type: AAAA}
    - {TTL: '2100', data: '2600::1004', type: AAAA}
- expected_addrs:
  - {address: '5.5.3.4:443', is_balancer: false}
  do_ordered_address_comparison: false
  expected_chosen_service_config: '{"loadBalancingPolicy":"round_robin","methodConfig":[{"name":[{"method":"Foo","service":"SimpleService"}],"waitForReady":true}]}'
  expected_service_config_error: null
  expected_lb_policy: round_robin
  enable_srv_queries: false
  enable_txt_queries: true
  inject_broken_nameserver_list: false
  record_to_resolve: srv-ipv4-simple-service-config-srv-disabled
  records:
    _grpclb._tcp.srv-ipv4-simple-service-config-srv-disabled:
    - {TTL: '2100', data: 0 0 1234 ipv4-simple-service-config-srv-disabled, type: SRV}
    ipv4-simple-service-config-srv-disabled:
    - {TTL: '2100', data: 1.2.3.4, type: A}
    srv-ipv4-simple-service-config-srv-disabled:
    - {TTL: '2100', data: 5.5.3.4, type: A}
    _grpc_config.srv-ipv4-simple-service-config-srv-disabled:
    - {TTL: '2100', data: 'grpc_config=[{"serviceConfig":{"loadBalancingPolicy":"round_robin","methodConfig":[{"name":[{"method":"Foo","service":"SimpleService"}],"waitForReady":true}]}}]',
      type: TXT}
- expected_addrs:
  - {address: '1.2.3.4:1234', is_balancer: true}
  do_ordered_address_comparison: false
  expected_chosen_service_config: null
  expected_service_config_error: null
  expected_lb_policy: null
  enable_srv_queries: true
  enable_txt_queries: false
  inject_broken_nameserver_list: false
  record_to_resolve: srv-ipv4-simple-service-config-txt-disabled
  records:
    _grpclb._tcp.srv-ipv4-simple-service-config-txt-disabled:
    - {TTL: '2100', data: 0 0 1234 ipv4-simple-service-config-txt-disabled, type: SRV}
    ipv4-simple-service-config-txt-disabled:
    - {TTL: '2100', data: 1.2.3.4, type: A}
    _grpc_config.srv-ipv4-simple-service-config-txt-disabled:
    - {TTL: '2100', data: 'grpc_config=[{"serviceConfig":{"loadBalancingPolicy":"round_robin","methodConfig":[{"name":[{"method":"Foo","service":"SimpleService"}],"waitForReady":true}]}}]',
      type: TXT}
- expected_addrs:
  - {address: '1.2.3.4:443', is_balancer: false}
  do_ordered_address_comparison: false
  expected_chosen_service_config: null
  expected_service_config_error: null
  expected_lb_policy: null
  enable_srv_queries: true
  enable_txt_queries: false
  inject_broken_nameserver_list: false
  record_to_resolve: ipv4-cpp-config-has-zero-percentage-txt-disabled
  records:
    ipv4-cpp-config-has-zero-percentage-txt-disabled:
    - {TTL: '2100', data: 1.2.3.4, type: A}
    _grpc_config.ipv4-cpp-config-has-zero-percentage-txt-disabled:
    - {TTL: '2100', data: 'grpc_config=[{"percentage":0,"serviceConfig":{"loadBalancingPolicy":"round_robin","methodConfig":[{"name":[{"method":"Foo","service":"CppService"}],"waitForReady":true}]}}]',
      type: TXT}
- expected_addrs:
  - {address: '1.2.3.4:443', is_balancer: false}
  do_ordered_address_comparison: false
  expected_chosen_service_config: null
  expected_service_config_error: null
  expected_lb_policy: null
  enable_srv_queries: true
  enable_txt_queries: false
  inject_broken_nameserver_list: false
  record_to_resolve: ipv4-second-language-is-cpp-txt-disabled
  records:
    ipv4-second-language-is-cpp-txt-disabled:
    - {TTL: '2100', data: 1.2.3.4, type: A}
    _grpc_config.ipv4-second-language-is-cpp-txt-disabled:
    - {TTL: '2100', data: 'grpc_config=[{"clientLanguage":["go"],"serviceConfig":{"loadBalancingPolicy":"round_robin","methodConfig":[{"name":[{"method":"Foo","service":"GoService"}],"waitForReady":true}]}},{"clientLanguage":["c++"],"serviceConfig":{"loadBalancingPolicy":"round_robin","methodConfig":[{"name":[{"method":"Foo","service":"CppService"}],"waitForReady":true}]}}]',
      type: TXT}
- expected_addrs:
  - {address: '1.2.3.4:443', is_balancer: false}
  do_ordered_address_comparison: false
  expected_chosen_service_config: null
  expected_service_config_error: 'JSON parse error'
  expected_lb_policy: null
  enable_srv_queries: true
  enable_txt_queries: true
  inject_broken_nameserver_list: false
  record_to_resolve: ipv4-svc_cfg_bad_json
  records:
    ipv4-svc_cfg_bad_json:
    - {TTL: '2100', data: 1.2.3.4, type: A}
    _grpc_config.ipv4-svc_cfg_bad_json:
    - {TTL: '2100', data: 'grpc_config=[{]',
      type: TXT}
- expected_addrs:
  - {address: '1.2.3.4:443', is_balancer: false}
  do_ordered_address_comparison: false
  expected_chosen_service_config: null
  expected_service_config_error: 'clientLanguage error:is not an array'
  expected_lb_policy: null
  enable_srv_queries: true
  enable_txt_queries: true
  inject_broken_nameserver_list: false
  record_to_resolve: ipv4-svc_cfg_bad_client_language
  records:
    ipv4-svc_cfg_bad_client_language:
    - {TTL: '2100', data: 1.2.3.4, type: A}
    _grpc_config.ipv4-svc_cfg_bad_client_language:
    - {TTL: '2100', data: 'grpc_config=[{"clientLanguage":"go","serviceConfig":{"loadBalancingPolicy":"round_robin","methodConfig":[{"name":[{"method":"Foo","service":"GoService"}],"waitForReady":true}]}},{"clientLanguage":["c++"],"serviceConfig":{"loadBalancingPolicy":"round_robin","methodConfig":[{"name":[{"method":"Foo","service":"CppService"}],"waitForReady":true}]}}]',
      type: TXT}
- expected_addrs:
  - {address: '1.2.3.4:443', is_balancer: false}
  do_ordered_address_comparison: false
  expected_chosen_service_config: null
  expected_service_config_error: 'percentage error:failed to parse number'
  expected_lb_policy: null
  enable_srv_queries: true
  enable_txt_queries: true
  inject_broken_nameserver_list: false
  record_to_resolve: ipv4-svc_cfg_bad_percentage
  records:
    ipv4-svc_cfg_bad_percentage:
    - {TTL: '2100', data: 1.2.3.4, type: A}
    _grpc_config.ipv4-svc_cfg_bad_percentage:
    - {TTL: '2100', data: 'grpc_config=[{"percentage":"arst","serviceConfig":{"loadBalancingPolicy":"round_robin","methodConfig":[{"name":[{"method":"Foo","service":"GoService"}],"waitForReady":true}]}},{"clientLanguage":["c++"],"serviceConfig":{"loadBalancingPolicy":"round_robin","methodConfig":[{"name":[{"method":"Foo","service":"CppService"}],"waitForReady":true}]}}]',
      type: TXT}
- expected_addrs:
  - {address: '1.2.3.4:443', is_balancer: false}
  do_ordered_address_comparison: false
  expected_chosen_service_config: null
  expected_service_config_error: 'field:methodConfig[0].waitForReady error:is not a boolean'
  expected_lb_policy: null
  enable_srv_queries: true
  enable_txt_queries: true
  inject_broken_nameserver_list: false
  record_to_resolve: ipv4-svc_cfg_bad_wait_for_ready
  records:
    ipv4-svc_cfg_bad_wait_for_ready:
    - {TTL: '2100', data: 1.2.3.4, type: A}
    _grpc_config.ipv4-svc_cfg_bad_wait_for_ready:
    - {TTL: '2100', data: 'grpc_config=[{"serviceConfig":{"methodConfig":[{"name":[{"method":"Foo","service":"CppService"}],"waitForReady":"true"}]}}]',
      type: TXT}
# Tests for which we also exercise the resolver's ability to skip past a broken DNS server in its nameserver list
- expected_addrs:
  - {address: '5.5.5.5:443', is_balancer: false}
  do_ordered_address_comparison: false
  expected_chosen_service_config: null
  expected_service_config_error: null
  expected_lb_policy: null
  enable_srv_queries: true
  enable_txt_queries: true
  inject_broken_nameserver_list: true
  record_to_resolve: no-srv-ipv4-single-target-inject-broken-nameservers
  records:
    no-srv-ipv4-single-target-inject-broken-nameservers:
    - {TTL: '2100', data: 5.5.5.5, type: A}
- expected_addrs:
  - {address: '1.2.3.4:443', is_balancer: false}
  do_ordered_address_comparison: false
  expected_chosen_service_config: null
  expected_service_config_error: 'field:loadBalancingPolicy error:is not a string'
  expected_lb_policy: null
  enable_srv_queries: true
  enable_txt_queries: true
  inject_broken_nameserver_list: true
  record_to_resolve: ipv4-config-causing-fallback-to-tcp-inject-broken-nameservers
  records:
    ipv4-config-causing-fallback-to-tcp-inject-broken-nameservers:
    - {TTL: '2100', data: 1.2.3.4, type: A}
    _grpc_config.ipv4-config-causing-fallback-to-tcp-inject-broken-nameservers:
    - {TTL: '2100', data: 'grpc_config=[{"serviceConfig":{"loadBalancingPolicy":["round_robin"]}}]',
      type: TXT}
# This tests that gRPCLB addresses are sorted properly per RFC 6724. Note
# that the only assumption that this makes is that the machine that the
# test runs on has a functioning IPv6 loopback (which by the RFC should
# always be preferred). Note too that the ordering of the AAAA records
# listed under the dualstack-balancer name is important in order to
# actually test this sorting.
- expected_addrs:
  - {address: '[::1]:1234', is_balancer: true}
  - {address: '[2002::1111]:1234', is_balancer: true}
  do_ordered_address_comparison: true
  expected_chosen_service_config: null
  expected_service_config_error: null
  expected_lb_policy: null
  enable_srv_queries: true
  enable_txt_queries: true
  inject_broken_nameserver_list: false
  record_to_resolve: load-balanced-name-with-dualstack-balancer
  records:
    _grpclb._tcp.load-balanced-name-with-dualstack-balancer:
    - {TTL: '2100', data: 0 0 1234 dualstack-balancer, type: SRV}
    dualstack-balancer:
    - {TTL: '2100', data: '2002::1111', type: AAAA}
    - {TTL: '2100', data: '::1', type: AAAA}
