@@ -32,7 +32,6 @@ import (
32
32
"istio.io/istio/pkg/test/util/retry"
33
33
34
34
core_v2 "kmesh.net/kmesh/api/v2/core"
35
- "kmesh.net/kmesh/pkg/dns"
36
35
)
37
36
38
37
func TestOverwriteDNSCluster (t * testing.T ) {
@@ -197,11 +196,6 @@ func TestHandleCdsResponseWithDns(t *testing.T) {
197
196
clusters : []* clusterv3.Cluster {cluster1 , cluster2 },
198
197
expected : []string {"foo.bar" , "foo.baz" },
199
198
},
200
- {
201
- name : "remove all DNS type clusters" ,
202
- clusters : []* clusterv3.Cluster {},
203
- expected : []string {},
204
- },
205
199
}
206
200
207
201
p := NewController (nil ).Processor
@@ -222,132 +216,6 @@ func TestHandleCdsResponseWithDns(t *testing.T) {
222
216
}
223
217
}
224
218
225
- func TestDNS (t * testing.T ) {
226
- fakeDNSServer := dns .NewFakeDNSServer ()
227
-
228
- testDNSResolver , err := NewAdsDnsResolver (NewAdsCache (nil ))
229
- if err != nil {
230
- t .Fatal (err )
231
- }
232
- stopCh := make (chan struct {})
233
- defer close (stopCh )
234
- // testDNSResolver.StartAdsDnsResolver(stopCh)
235
- dnsServer := fakeDNSServer .Server .PacketConn .LocalAddr ().String ()
236
- testDNSResolver .dnsResolver .ResolvConfServers = []string {dnsServer }
237
-
238
- testCases := []struct {
239
- name string
240
- domain string
241
- refreshRate time.Duration
242
- ttl time.Duration
243
- expected []string
244
- expectedAfterTTL []string
245
- registerDomain func (domain string )
246
- }{
247
- {
248
- name : "success" ,
249
- domain : "www.google.com." ,
250
- refreshRate : 10 * time .Second ,
251
- expected : []string {"10.0.0.1" , "fd00::1" },
252
- registerDomain : func (domain string ) {
253
- fakeDNSServer .SetHosts (domain , 1 )
254
- },
255
- },
256
- {
257
- name : "check dns refresh after ttl, ttl < refreshRate" ,
258
- domain : "www.bing.com." ,
259
- refreshRate : 10 * time .Second ,
260
- ttl : 3 * time .Second ,
261
- expected : []string {"10.0.0.2" , "fd00::2" },
262
- expectedAfterTTL : []string {"10.0.0.3" , "fd00::3" },
263
- registerDomain : func (domain string ) {
264
- fakeDNSServer .SetHosts (domain , 2 )
265
- fakeDNSServer .SetTTL (uint32 (3 ))
266
- time .AfterFunc (time .Second , func () {
267
- fakeDNSServer .SetHosts (domain , 3 )
268
- })
269
- },
270
- },
271
- {
272
- name : "check dns refresh after ttl without update bpfmap" ,
273
- domain : "www.test.com." ,
274
- refreshRate : 10 * time .Second ,
275
- ttl : 3 * time .Second ,
276
- expected : []string {"10.0.0.2" , "fd00::2" },
277
- expectedAfterTTL : []string {"10.0.0.2" , "fd00::2" },
278
- registerDomain : func (domain string ) {
279
- fakeDNSServer .SetHosts (domain , 2 )
280
- fakeDNSServer .SetTTL (uint32 (3 ))
281
- },
282
- },
283
- {
284
- name : "check dns refresh after refreshRate, ttl > refreshRate" ,
285
- domain : "www.baidu.com." ,
286
- refreshRate : 3 * time .Second ,
287
- ttl : 10 * time .Second ,
288
- expected : []string {"10.0.0.2" , "fd00::2" },
289
- expectedAfterTTL : []string {"10.0.0.3" , "fd00::3" },
290
- registerDomain : func (domain string ) {
291
- fakeDNSServer .SetHosts (domain , 2 )
292
- fakeDNSServer .SetTTL (uint32 (10 ))
293
- time .AfterFunc (time .Second , func () {
294
- fakeDNSServer .SetHosts (domain , 3 )
295
- })
296
- },
297
- },
298
- {
299
- name : "failed to resolve" ,
300
- domain : "www.kmesh.test." ,
301
- refreshRate : 10 * time .Second ,
302
- expected : []string {},
303
- },
304
- }
305
- var wg sync.WaitGroup
306
- for _ , testcase := range testCases {
307
- wg .Add (1 )
308
- if testcase .registerDomain != nil {
309
- testcase .registerDomain (testcase .domain )
310
- }
311
-
312
- input := & dns.PendingResolveDomain {
313
- DomainName : testcase .domain ,
314
- RefreshRate : testcase .refreshRate ,
315
- }
316
- testDNSResolver .dnsResolver .Lock ()
317
- testDNSResolver .dnsResolver .Cache [testcase .domain ] = & dns.DomainCacheEntry {}
318
- testDNSResolver .dnsResolver .Unlock ()
319
- go testDNSResolver .refreshAdsWorker ()
320
-
321
- _ , ttl , err := testDNSResolver .dnsResolver .Resolve (input .DomainName )
322
- assert .NoError (t , err )
323
- if ttl > input .RefreshRate {
324
- ttl = input .RefreshRate
325
- }
326
- if ttl == 0 {
327
- ttl = dns .DeRefreshInterval
328
- }
329
- testDNSResolver .dnsRefreshQueue .AddAfter (input , ttl )
330
- time .Sleep (2 * time .Second )
331
-
332
- res := testDNSResolver .dnsResolver .GetDNSAddresses (testcase .domain )
333
- if len (res ) != 0 || len (testcase .expected ) != 0 {
334
- if ! reflect .DeepEqual (res , testcase .expected ) {
335
- t .Errorf ("dns resolve for %s do not match. \n got %v\n want %v" , testcase .domain , res , testcase .expected )
336
- }
337
-
338
- if testcase .expectedAfterTTL != nil {
339
- time .Sleep (ttl + 1 )
340
- res = testDNSResolver .dnsResolver .GetDNSAddresses (testcase .domain )
341
- if ! reflect .DeepEqual (res , testcase .expectedAfterTTL ) {
342
- t .Errorf ("dns refresh after ttl failed, for %s do not match. \n got %v\n want %v" , testcase .domain , res , testcase .expectedAfterTTL )
343
- }
344
- }
345
- }
346
- wg .Done ()
347
- }
348
- wg .Wait ()
349
- }
350
-
351
219
func TestGetPendingResolveDomain (t * testing.T ) {
352
220
utCluster := clusterv3.Cluster {
353
221
Name : "testCluster" ,
@@ -411,7 +279,7 @@ func TestGetPendingResolveDomain(t *testing.T) {
411
279
tests := []struct {
412
280
name string
413
281
args args
414
- want map [string ]* dns. PendingResolveDomain
282
+ want map [string ]* pendingResolveDomain
415
283
}{
416
284
{
417
285
name : "empty domains test" ,
@@ -420,7 +288,7 @@ func TestGetPendingResolveDomain(t *testing.T) {
420
288
& utCluster ,
421
289
},
422
290
},
423
- want : map [string ]* dns. PendingResolveDomain {},
291
+ want : map [string ]* pendingResolveDomain {},
424
292
},
425
293
{
426
294
name : "cluster domain is not IP" ,
@@ -429,7 +297,7 @@ func TestGetPendingResolveDomain(t *testing.T) {
429
297
& utClusterWithHost ,
430
298
},
431
299
},
432
- want : map [string ]* dns. PendingResolveDomain {
300
+ want : map [string ]* pendingResolveDomain {
433
301
"www.google.com" : {
434
302
DomainName : "www.google.com" ,
435
303
Clusters : []* clusterv3.Cluster {& utClusterWithHost },
0 commit comments