resolver_test_record_groups.yaml 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502
  1. resolver_tests_common_zone_name: resolver-tests-version-4.grpctestingexp.
  2. resolver_component_tests:
  3. # Tests for which we enable SRV queries
  4. - expected_addrs:
  5. - {address: '5.5.5.5:443', is_balancer: false}
  6. do_ordered_address_comparison: false
  7. expected_chosen_service_config: null
  8. expected_service_config_error: null
  9. expected_lb_policy: null
  10. enable_srv_queries: true
  11. enable_txt_queries: true
  12. inject_broken_nameserver_list: false
  13. record_to_resolve: no-srv-ipv4-single-target
  14. records:
  15. no-srv-ipv4-single-target:
  16. - {TTL: '2100', data: 5.5.5.5, type: A}
  17. - expected_addrs:
  18. - {address: '1.2.3.4:1234', is_balancer: true}
  19. do_ordered_address_comparison: false
  20. expected_chosen_service_config: null
  21. expected_service_config_error: null
  22. expected_lb_policy: null
  23. enable_srv_queries: true
  24. enable_txt_queries: true
  25. inject_broken_nameserver_list: false
  26. record_to_resolve: srv-ipv4-single-target
  27. records:
  28. _grpclb._tcp.srv-ipv4-single-target:
  29. - {TTL: '2100', data: 0 0 1234 ipv4-single-target, type: SRV}
  30. ipv4-single-target:
  31. - {TTL: '2100', data: 1.2.3.4, type: A}
  32. - expected_addrs:
  33. - {address: '1.2.3.5:1234', is_balancer: true}
  34. - {address: '1.2.3.6:1234', is_balancer: true}
  35. - {address: '1.2.3.7:1234', is_balancer: true}
  36. do_ordered_address_comparison: false
  37. expected_chosen_service_config: null
  38. expected_service_config_error: null
  39. expected_lb_policy: null
  40. enable_srv_queries: true
  41. enable_txt_queries: true
  42. inject_broken_nameserver_list: false
  43. record_to_resolve: srv-ipv4-multi-target
  44. records:
  45. _grpclb._tcp.srv-ipv4-multi-target:
  46. - {TTL: '2100', data: 0 0 1234 ipv4-multi-target, type: SRV}
  47. ipv4-multi-target:
  48. - {TTL: '2100', data: 1.2.3.5, type: A}
  49. - {TTL: '2100', data: 1.2.3.6, type: A}
  50. - {TTL: '2100', data: 1.2.3.7, type: A}
  51. - expected_addrs:
  52. - {address: '[2607:f8b0:400a:801::1001]:1234', is_balancer: true}
  53. do_ordered_address_comparison: false
  54. expected_chosen_service_config: null
  55. expected_service_config_error: null
  56. expected_lb_policy: null
  57. enable_srv_queries: true
  58. enable_txt_queries: true
  59. inject_broken_nameserver_list: false
  60. record_to_resolve: srv-ipv6-single-target
  61. records:
  62. _grpclb._tcp.srv-ipv6-single-target:
  63. - {TTL: '2100', data: 0 0 1234 ipv6-single-target, type: SRV}
  64. ipv6-single-target:
  65. - {TTL: '2100', data: '2607:f8b0:400a:801::1001', type: AAAA}
  66. - expected_addrs:
  67. - {address: '[2607:f8b0:400a:801::1002]:1234', is_balancer: true}
  68. - {address: '[2607:f8b0:400a:801::1003]:1234', is_balancer: true}
  69. - {address: '[2607:f8b0:400a:801::1004]:1234', is_balancer: true}
  70. do_ordered_address_comparison: false
  71. expected_chosen_service_config: null
  72. expected_service_config_error: null
  73. expected_lb_policy: null
  74. enable_srv_queries: true
  75. enable_txt_queries: true
  76. inject_broken_nameserver_list: false
  77. record_to_resolve: srv-ipv6-multi-target
  78. records:
  79. _grpclb._tcp.srv-ipv6-multi-target:
  80. - {TTL: '2100', data: 0 0 1234 ipv6-multi-target, type: SRV}
  81. ipv6-multi-target:
  82. - {TTL: '2100', data: '2607:f8b0:400a:801::1002', type: AAAA}
  83. - {TTL: '2100', data: '2607:f8b0:400a:801::1003', type: AAAA}
  84. - {TTL: '2100', data: '2607:f8b0:400a:801::1004', type: AAAA}
  85. - expected_addrs:
  86. - {address: '1.2.3.4:1234', is_balancer: true}
  87. do_ordered_address_comparison: false
  88. expected_chosen_service_config: '{"loadBalancingPolicy":"round_robin","methodConfig":[{"name":[{"method":"Foo","service":"SimpleService"}],"waitForReady":true}]}'
  89. expected_service_config_error: null
  90. expected_lb_policy: round_robin
  91. enable_srv_queries: true
  92. enable_txt_queries: true
  93. inject_broken_nameserver_list: false
  94. record_to_resolve: srv-ipv4-simple-service-config
  95. records:
  96. _grpclb._tcp.srv-ipv4-simple-service-config:
  97. - {TTL: '2100', data: 0 0 1234 ipv4-simple-service-config, type: SRV}
  98. ipv4-simple-service-config:
  99. - {TTL: '2100', data: 1.2.3.4, type: A}
  100. _grpc_config.srv-ipv4-simple-service-config:
  101. - {TTL: '2100', data: 'grpc_config=[{"serviceConfig":{"loadBalancingPolicy":"round_robin","methodConfig":[{"name":[{"method":"Foo","service":"SimpleService"}],"waitForReady":true}]}}]',
  102. type: TXT}
  103. - expected_addrs:
  104. - {address: '1.2.3.4:443', is_balancer: false}
  105. do_ordered_address_comparison: false
  106. expected_chosen_service_config: '{"loadBalancingPolicy":"round_robin","methodConfig":[{"name":[{"method":"Foo","service":"NoSrvSimpleService"}],"waitForReady":true}]}'
  107. expected_service_config_error: null
  108. expected_lb_policy: round_robin
  109. enable_srv_queries: true
  110. enable_txt_queries: true
  111. inject_broken_nameserver_list: false
  112. record_to_resolve: ipv4-no-srv-simple-service-config
  113. records:
  114. ipv4-no-srv-simple-service-config:
  115. - {TTL: '2100', data: 1.2.3.4, type: A}
  116. _grpc_config.ipv4-no-srv-simple-service-config:
  117. - {TTL: '2100', data: 'grpc_config=[{"serviceConfig":{"loadBalancingPolicy":"round_robin","methodConfig":[{"name":[{"method":"Foo","service":"NoSrvSimpleService"}],"waitForReady":true}]}}]',
  118. type: TXT}
  119. - expected_addrs:
  120. - {address: '1.2.3.4:443', is_balancer: false}
  121. do_ordered_address_comparison: false
  122. expected_chosen_service_config: null
  123. expected_service_config_error: null
  124. expected_lb_policy: null
  125. enable_srv_queries: true
  126. enable_txt_queries: true
  127. inject_broken_nameserver_list: false
  128. record_to_resolve: ipv4-no-config-for-cpp
  129. records:
  130. ipv4-no-config-for-cpp:
  131. - {TTL: '2100', data: 1.2.3.4, type: A}
  132. _grpc_config.ipv4-no-config-for-cpp:
  133. - {TTL: '2100', data: 'grpc_config=[{"clientLanguage":["python"],"serviceConfig":{"loadBalancingPolicy":"round_robin","methodConfig":[{"name":[{"method":"Foo","service":"PythonService"}],"waitForReady":true}]}}]',
  134. type: TXT}
  135. - expected_addrs:
  136. - {address: '1.2.3.4:443', is_balancer: false}
  137. do_ordered_address_comparison: false
  138. expected_chosen_service_config: null
  139. expected_service_config_error: null
  140. expected_lb_policy: null
  141. enable_srv_queries: true
  142. enable_txt_queries: true
  143. inject_broken_nameserver_list: false
  144. record_to_resolve: ipv4-cpp-config-has-zero-percentage
  145. records:
  146. ipv4-cpp-config-has-zero-percentage:
  147. - {TTL: '2100', data: 1.2.3.4, type: A}
  148. _grpc_config.ipv4-cpp-config-has-zero-percentage:
  149. - {TTL: '2100', data: 'grpc_config=[{"percentage":0,"serviceConfig":{"loadBalancingPolicy":"round_robin","methodConfig":[{"name":[{"method":"Foo","service":"CppService"}],"waitForReady":true}]}}]',
  150. type: TXT}
  151. - expected_addrs:
  152. - {address: '1.2.3.4:443', is_balancer: false}
  153. do_ordered_address_comparison: false
  154. expected_chosen_service_config: '{"loadBalancingPolicy":"round_robin","methodConfig":[{"name":[{"method":"Foo","service":"CppService"}],"waitForReady":true}]}'
  155. expected_service_config_error: null
  156. expected_lb_policy: round_robin
  157. enable_srv_queries: true
  158. enable_txt_queries: true
  159. inject_broken_nameserver_list: false
  160. record_to_resolve: ipv4-second-language-is-cpp
  161. records:
  162. ipv4-second-language-is-cpp:
  163. - {TTL: '2100', data: 1.2.3.4, type: A}
  164. _grpc_config.ipv4-second-language-is-cpp:
  165. - {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}]}}]',
  166. type: TXT}
  167. - expected_addrs:
  168. - {address: '1.2.3.4:443', is_balancer: false}
  169. do_ordered_address_comparison: false
  170. expected_chosen_service_config: '{"loadBalancingPolicy":"round_robin","methodConfig":[{"name":[{"method":"Foo","service":"AlwaysPickedService"}],"waitForReady":true}]}'
  171. expected_service_config_error: null
  172. expected_lb_policy: round_robin
  173. enable_srv_queries: true
  174. enable_txt_queries: true
  175. inject_broken_nameserver_list: false
  176. record_to_resolve: ipv4-config-with-percentages
  177. records:
  178. ipv4-config-with-percentages:
  179. - {TTL: '2100', data: 1.2.3.4, type: A}
  180. _grpc_config.ipv4-config-with-percentages:
  181. - {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}]}}]',
  182. type: TXT}
  183. - expected_addrs:
  184. - {address: '1.2.3.4:1234', is_balancer: true}
  185. - {address: '1.2.3.4:443', is_balancer: false}
  186. do_ordered_address_comparison: false
  187. expected_chosen_service_config: null
  188. expected_service_config_error: null
  189. expected_lb_policy: null
  190. enable_srv_queries: true
  191. enable_txt_queries: true
  192. inject_broken_nameserver_list: false
  193. record_to_resolve: srv-ipv4-target-has-backend-and-balancer
  194. records:
  195. _grpclb._tcp.srv-ipv4-target-has-backend-and-balancer:
  196. - {TTL: '2100', data: 0 0 1234 balancer-for-ipv4-has-backend-and-balancer, type: SRV}
  197. balancer-for-ipv4-has-backend-and-balancer:
  198. - {TTL: '2100', data: 1.2.3.4, type: A}
  199. srv-ipv4-target-has-backend-and-balancer:
  200. - {TTL: '2100', data: 1.2.3.4, type: A}
  201. - expected_addrs:
  202. - {address: '[2607:f8b0:400a:801::1002]:1234', is_balancer: true}
  203. - {address: '[2607:f8b0:400a:801::1002]:443', is_balancer: false}
  204. do_ordered_address_comparison: false
  205. expected_chosen_service_config: null
  206. expected_service_config_error: null
  207. expected_lb_policy: null
  208. enable_srv_queries: true
  209. enable_txt_queries: true
  210. inject_broken_nameserver_list: false
  211. record_to_resolve: srv-ipv6-target-has-backend-and-balancer
  212. records:
  213. _grpclb._tcp.srv-ipv6-target-has-backend-and-balancer:
  214. - {TTL: '2100', data: 0 0 1234 balancer-for-ipv6-has-backend-and-balancer, type: SRV}
  215. balancer-for-ipv6-has-backend-and-balancer:
  216. - {TTL: '2100', data: '2607:f8b0:400a:801::1002', type: AAAA}
  217. srv-ipv6-target-has-backend-and-balancer:
  218. - {TTL: '2100', data: '2607:f8b0:400a:801::1002', type: AAAA}
  219. - expected_addrs:
  220. - {address: '1.2.3.4:443', is_balancer: false}
  221. do_ordered_address_comparison: false
  222. 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}]}'
  223. expected_service_config_error: null
  224. expected_lb_policy: null
  225. enable_srv_queries: true
  226. enable_txt_queries: true
  227. inject_broken_nameserver_list: false
  228. record_to_resolve: ipv4-config-causing-fallback-to-tcp
  229. records:
  230. ipv4-config-causing-fallback-to-tcp:
  231. - {TTL: '2100', data: 1.2.3.4, type: A}
  232. _grpc_config.ipv4-config-causing-fallback-to-tcp:
  233. - {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}]}}]',
  234. type: TXT}
  235. # Tests for which we don't enable SRV queries
  236. - expected_addrs:
  237. - {address: '2.3.4.5:443', is_balancer: false}
  238. do_ordered_address_comparison: false
  239. expected_chosen_service_config: null
  240. expected_service_config_error: null
  241. expected_lb_policy: null
  242. enable_srv_queries: false
  243. enable_txt_queries: true
  244. inject_broken_nameserver_list: false
  245. record_to_resolve: srv-ipv4-single-target-srv-disabled
  246. records:
  247. _grpclb._tcp.srv-ipv4-single-target-srv-disabled:
  248. - {TTL: '2100', data: 0 0 1234 ipv4-single-target-srv-disabled, type: SRV}
  249. ipv4-single-target-srv-disabled:
  250. - {TTL: '2100', data: 1.2.3.4, type: A}
  251. srv-ipv4-single-target-srv-disabled:
  252. - {TTL: '2100', data: 2.3.4.5, type: A}
  253. - expected_addrs:
  254. - {address: '9.2.3.5:443', is_balancer: false}
  255. - {address: '9.2.3.6:443', is_balancer: false}
  256. - {address: '9.2.3.7:443', is_balancer: false}
  257. do_ordered_address_comparison: false
  258. expected_chosen_service_config: null
  259. expected_service_config_error: null
  260. expected_lb_policy: null
  261. enable_srv_queries: false
  262. enable_txt_queries: true
  263. inject_broken_nameserver_list: false
  264. record_to_resolve: srv-ipv4-multi-target-srv-disabled
  265. records:
  266. _grpclb._tcp.srv-ipv4-multi-target-srv-disabled:
  267. - {TTL: '2100', data: 0 0 1234 ipv4-multi-target-srv-disabled, type: SRV}
  268. ipv4-multi-target-srv-disabled:
  269. - {TTL: '2100', data: 1.2.3.5, type: A}
  270. - {TTL: '2100', data: 1.2.3.6, type: A}
  271. - {TTL: '2100', data: 1.2.3.7, type: A}
  272. srv-ipv4-multi-target-srv-disabled:
  273. - {TTL: '2100', data: 9.2.3.5, type: A}
  274. - {TTL: '2100', data: 9.2.3.6, type: A}
  275. - {TTL: '2100', data: 9.2.3.7, type: A}
  276. - expected_addrs:
  277. - {address: '[2600::1001]:443', is_balancer: false}
  278. do_ordered_address_comparison: false
  279. expected_chosen_service_config: null
  280. expected_service_config_error: null
  281. expected_lb_policy: null
  282. enable_srv_queries: false
  283. enable_txt_queries: true
  284. inject_broken_nameserver_list: false
  285. record_to_resolve: srv-ipv6-single-target-srv-disabled
  286. records:
  287. _grpclb._tcp.srv-ipv6-single-target-srv-disabled:
  288. - {TTL: '2100', data: 0 0 1234 ipv6-single-target-srv-disabled, type: SRV}
  289. ipv6-single-target-srv-disabled:
  290. - {TTL: '2100', data: '2607:f8b0:400a:801::1001', type: AAAA}
  291. srv-ipv6-single-target-srv-disabled:
  292. - {TTL: '2100', data: '2600::1001', type: AAAA}
  293. - expected_addrs:
  294. - {address: '[2600::1002]:443', is_balancer: false}
  295. - {address: '[2600::1003]:443', is_balancer: false}
  296. - {address: '[2600::1004]:443', is_balancer: false}
  297. do_ordered_address_comparison: false
  298. expected_chosen_service_config: null
  299. expected_service_config_error: null
  300. expected_lb_policy: null
  301. enable_srv_queries: false
  302. enable_txt_queries: true
  303. inject_broken_nameserver_list: false
  304. record_to_resolve: srv-ipv6-multi-target-srv-disabled
  305. records:
  306. _grpclb._tcp.srv-ipv6-multi-target-srv-disabled:
  307. - {TTL: '2100', data: 0 0 1234 ipv6-multi-target-srv-disabled, type: SRV}
  308. ipv6-multi-target-srv-disabled:
  309. - {TTL: '2100', data: '2607:f8b0:400a:801::1002', type: AAAA}
  310. - {TTL: '2100', data: '2607:f8b0:400a:801::1003', type: AAAA}
  311. - {TTL: '2100', data: '2607:f8b0:400a:801::1004', type: AAAA}
  312. srv-ipv6-multi-target-srv-disabled:
  313. - {TTL: '2100', data: '2600::1002', type: AAAA}
  314. - {TTL: '2100', data: '2600::1003', type: AAAA}
  315. - {TTL: '2100', data: '2600::1004', type: AAAA}
  316. - expected_addrs:
  317. - {address: '5.5.3.4:443', is_balancer: false}
  318. do_ordered_address_comparison: false
  319. expected_chosen_service_config: '{"loadBalancingPolicy":"round_robin","methodConfig":[{"name":[{"method":"Foo","service":"SimpleService"}],"waitForReady":true}]}'
  320. expected_service_config_error: null
  321. expected_lb_policy: round_robin
  322. enable_srv_queries: false
  323. enable_txt_queries: true
  324. inject_broken_nameserver_list: false
  325. record_to_resolve: srv-ipv4-simple-service-config-srv-disabled
  326. records:
  327. _grpclb._tcp.srv-ipv4-simple-service-config-srv-disabled:
  328. - {TTL: '2100', data: 0 0 1234 ipv4-simple-service-config-srv-disabled, type: SRV}
  329. ipv4-simple-service-config-srv-disabled:
  330. - {TTL: '2100', data: 1.2.3.4, type: A}
  331. srv-ipv4-simple-service-config-srv-disabled:
  332. - {TTL: '2100', data: 5.5.3.4, type: A}
  333. _grpc_config.srv-ipv4-simple-service-config-srv-disabled:
  334. - {TTL: '2100', data: 'grpc_config=[{"serviceConfig":{"loadBalancingPolicy":"round_robin","methodConfig":[{"name":[{"method":"Foo","service":"SimpleService"}],"waitForReady":true}]}}]',
  335. type: TXT}
  336. - expected_addrs:
  337. - {address: '1.2.3.4:1234', is_balancer: true}
  338. do_ordered_address_comparison: false
  339. expected_chosen_service_config: null
  340. expected_service_config_error: null
  341. expected_lb_policy: null
  342. enable_srv_queries: true
  343. enable_txt_queries: false
  344. inject_broken_nameserver_list: false
  345. record_to_resolve: srv-ipv4-simple-service-config-txt-disabled
  346. records:
  347. _grpclb._tcp.srv-ipv4-simple-service-config-txt-disabled:
  348. - {TTL: '2100', data: 0 0 1234 ipv4-simple-service-config-txt-disabled, type: SRV}
  349. ipv4-simple-service-config-txt-disabled:
  350. - {TTL: '2100', data: 1.2.3.4, type: A}
  351. _grpc_config.srv-ipv4-simple-service-config-txt-disabled:
  352. - {TTL: '2100', data: 'grpc_config=[{"serviceConfig":{"loadBalancingPolicy":"round_robin","methodConfig":[{"name":[{"method":"Foo","service":"SimpleService"}],"waitForReady":true}]}}]',
  353. type: TXT}
  354. - expected_addrs:
  355. - {address: '1.2.3.4:443', is_balancer: false}
  356. do_ordered_address_comparison: false
  357. expected_chosen_service_config: null
  358. expected_service_config_error: null
  359. expected_lb_policy: null
  360. enable_srv_queries: true
  361. enable_txt_queries: false
  362. inject_broken_nameserver_list: false
  363. record_to_resolve: ipv4-cpp-config-has-zero-percentage-txt-disabled
  364. records:
  365. ipv4-cpp-config-has-zero-percentage-txt-disabled:
  366. - {TTL: '2100', data: 1.2.3.4, type: A}
  367. _grpc_config.ipv4-cpp-config-has-zero-percentage-txt-disabled:
  368. - {TTL: '2100', data: 'grpc_config=[{"percentage":0,"serviceConfig":{"loadBalancingPolicy":"round_robin","methodConfig":[{"name":[{"method":"Foo","service":"CppService"}],"waitForReady":true}]}}]',
  369. type: TXT}
  370. - expected_addrs:
  371. - {address: '1.2.3.4:443', is_balancer: false}
  372. do_ordered_address_comparison: false
  373. expected_chosen_service_config: null
  374. expected_service_config_error: null
  375. expected_lb_policy: null
  376. enable_srv_queries: true
  377. enable_txt_queries: false
  378. inject_broken_nameserver_list: false
  379. record_to_resolve: ipv4-second-language-is-cpp-txt-disabled
  380. records:
  381. ipv4-second-language-is-cpp-txt-disabled:
  382. - {TTL: '2100', data: 1.2.3.4, type: A}
  383. _grpc_config.ipv4-second-language-is-cpp-txt-disabled:
  384. - {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}]}}]',
  385. type: TXT}
  386. - expected_addrs:
  387. - {address: '1.2.3.4:443', is_balancer: false}
  388. do_ordered_address_comparison: false
  389. expected_chosen_service_config: null
  390. expected_service_config_error: 'JSON parse error'
  391. expected_lb_policy: null
  392. enable_srv_queries: true
  393. enable_txt_queries: true
  394. inject_broken_nameserver_list: false
  395. record_to_resolve: ipv4-svc_cfg_bad_json
  396. records:
  397. ipv4-svc_cfg_bad_json:
  398. - {TTL: '2100', data: 1.2.3.4, type: A}
  399. _grpc_config.ipv4-svc_cfg_bad_json:
  400. - {TTL: '2100', data: 'grpc_config=[{]',
  401. type: TXT}
  402. - expected_addrs:
  403. - {address: '1.2.3.4:443', is_balancer: false}
  404. do_ordered_address_comparison: false
  405. expected_chosen_service_config: null
  406. expected_service_config_error: 'field:clientLanguage error:should be of type array'
  407. expected_lb_policy: null
  408. enable_srv_queries: true
  409. enable_txt_queries: true
  410. inject_broken_nameserver_list: false
  411. record_to_resolve: ipv4-svc_cfg_bad_client_language
  412. records:
  413. ipv4-svc_cfg_bad_client_language:
  414. - {TTL: '2100', data: 1.2.3.4, type: A}
  415. _grpc_config.ipv4-svc_cfg_bad_client_language:
  416. - {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}]}}]',
  417. type: TXT}
  418. - expected_addrs:
  419. - {address: '1.2.3.4:443', is_balancer: false}
  420. do_ordered_address_comparison: false
  421. expected_chosen_service_config: null
  422. expected_service_config_error: 'field:percentage error:should be of type number'
  423. expected_lb_policy: null
  424. enable_srv_queries: true
  425. enable_txt_queries: true
  426. inject_broken_nameserver_list: false
  427. record_to_resolve: ipv4-svc_cfg_bad_percentage
  428. records:
  429. ipv4-svc_cfg_bad_percentage:
  430. - {TTL: '2100', data: 1.2.3.4, type: A}
  431. _grpc_config.ipv4-svc_cfg_bad_percentage:
  432. - {TTL: '2100', data: 'grpc_config=[{"percentage":"0","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}]}}]',
  433. type: TXT}
  434. - expected_addrs:
  435. - {address: '1.2.3.4:443', is_balancer: false}
  436. do_ordered_address_comparison: false
  437. expected_chosen_service_config: null
  438. expected_service_config_error: 'field:waitForReady error:Type should be true/false'
  439. expected_lb_policy: null
  440. enable_srv_queries: true
  441. enable_txt_queries: true
  442. inject_broken_nameserver_list: false
  443. record_to_resolve: ipv4-svc_cfg_bad_wait_for_ready
  444. records:
  445. ipv4-svc_cfg_bad_wait_for_ready:
  446. - {TTL: '2100', data: 1.2.3.4, type: A}
  447. _grpc_config.ipv4-svc_cfg_bad_wait_for_ready:
  448. - {TTL: '2100', data: 'grpc_config=[{"serviceConfig":{"methodConfig":[{"name":[{"method":"Foo","service":"CppService"}],"waitForReady":"true"}]}}]',
  449. type: TXT}
  450. # Tests for which we also exercise the resolver's ability to skip past a broken DNS server in its nameserver list
  451. - expected_addrs:
  452. - {address: '5.5.5.5:443', is_balancer: false}
  453. do_ordered_address_comparison: false
  454. expected_chosen_service_config: null
  455. expected_service_config_error: null
  456. expected_lb_policy: null
  457. enable_srv_queries: true
  458. enable_txt_queries: true
  459. inject_broken_nameserver_list: true
  460. record_to_resolve: no-srv-ipv4-single-target-inject-broken-nameservers
  461. records:
  462. no-srv-ipv4-single-target-inject-broken-nameservers:
  463. - {TTL: '2100', data: 5.5.5.5, type: A}
  464. - expected_addrs:
  465. - {address: '1.2.3.4:443', is_balancer: false}
  466. do_ordered_address_comparison: false
  467. expected_chosen_service_config: null
  468. expected_service_config_error: 'field:loadBalancingPolicy error:type should be string'
  469. expected_lb_policy: null
  470. enable_srv_queries: true
  471. enable_txt_queries: true
  472. inject_broken_nameserver_list: true
  473. record_to_resolve: ipv4-config-causing-fallback-to-tcp-inject-broken-nameservers
  474. records:
  475. ipv4-config-causing-fallback-to-tcp-inject-broken-nameservers:
  476. - {TTL: '2100', data: 1.2.3.4, type: A}
  477. _grpc_config.ipv4-config-causing-fallback-to-tcp-inject-broken-nameservers:
  478. - {TTL: '2100', data: 'grpc_config=[{"serviceConfig":{"loadBalancingPolicy":["round_robin"]}}]',
  479. type: TXT}
  480. # This tests that gRPCLB addresses are sorted properly per RFC 6724. Note
  481. # that the only assumption that this makes is that the machine that the
  482. # test runs on has a functioning IPv6 loopback (which by the RFC should
  483. # always be preferred). Note too that the ordering of the AAAA records
  484. # listed under the dualstack-balancer name is important in order to
  485. # actually test this sorting.
  486. - expected_addrs:
  487. - {address: '[::1]:1234', is_balancer: true}
  488. - {address: '[2002::1111]:1234', is_balancer: true}
  489. do_ordered_address_comparison: true
  490. expected_chosen_service_config: null
  491. expected_service_config_error: null
  492. expected_lb_policy: null
  493. enable_srv_queries: true
  494. enable_txt_queries: true
  495. inject_broken_nameserver_list: false
  496. record_to_resolve: load-balanced-name-with-dualstack-balancer
  497. records:
  498. _grpclb._tcp.load-balanced-name-with-dualstack-balancer:
  499. - {TTL: '2100', data: 0 0 1234 dualstack-balancer, type: SRV}
  500. dualstack-balancer:
  501. - {TTL: '2100', data: '2002::1111', type: AAAA}
  502. - {TTL: '2100', data: '::1', type: AAAA}