MCPcopy
hub / github.com/tailscale/tailscale / TestNetmapForResponse

Function TestNetmapForResponse

control/controlclient/map_test.go:409–627  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

407}
408
409func TestNetmapForResponse(t *testing.T) {
410 t.Run("implicit_packetfilter", func(t *testing.T) {
411 somePacketFilter := []tailcfg.FilterRule{
412 {
413 SrcIPs: []string{"*"},
414 DstPorts: []tailcfg.NetPortRange{
415 {IP: "10.2.3.4", Ports: tailcfg.PortRange{First: 22, Last: 22}},
416 },
417 },
418 }
419 ms := newTestMapSession(t, nil)
420 nm1 := ms.netmapForResponse(&tailcfg.MapResponse{
421 Node: new(tailcfg.Node),
422 PacketFilter: somePacketFilter,
423 })
424 if len(nm1.PacketFilter) == 0 {
425 t.Fatalf("zero length PacketFilter")
426 }
427 nm2 := ms.netmapForResponse(&tailcfg.MapResponse{
428 Node: new(tailcfg.Node),
429 PacketFilter: nil, // testing that the server can omit this.
430 })
431 if len(nm1.PacketFilter) == 0 {
432 t.Fatalf("zero length PacketFilter in 2nd netmap")
433 }
434 if !reflect.DeepEqual(nm1.PacketFilter, nm2.PacketFilter) {
435 t.Error("packet filters differ")
436 }
437 })
438 t.Run("implicit_dnsconfig", func(t *testing.T) {
439 someDNSConfig := &tailcfg.DNSConfig{Domains: []string{"foo", "bar"}}
440 ms := newTestMapSession(t, nil)
441 nm1 := ms.netmapForResponse(&tailcfg.MapResponse{
442 Node: new(tailcfg.Node),
443 DNSConfig: someDNSConfig,
444 })
445 if !reflect.DeepEqual(nm1.DNS, *someDNSConfig) {
446 t.Fatalf("1st DNS wrong")
447 }
448 nm2 := ms.netmapForResponse(&tailcfg.MapResponse{
449 Node: new(tailcfg.Node),
450 DNSConfig: nil, // implicit
451 })
452 if !reflect.DeepEqual(nm2.DNS, *someDNSConfig) {
453 t.Fatalf("2nd DNS wrong")
454 }
455 })
456 t.Run("collect_services", func(t *testing.T) {
457 ms := newTestMapSession(t, nil)
458 var nm *netmap.NetworkMap
459 wantCollect := func(v bool) {
460 t.Helper()
461 if nm.CollectServices != v {
462 t.Errorf("netmap.CollectServices = %v; want %v", nm.CollectServices, v)
463 }
464 }
465
466 nm = ms.netmapForResponse(&tailcfg.MapResponse{

Callers

nothing calls this directly

Calls 15

newTestMapSessionFunction · 0.85
initDisplayNamesFunction · 0.85
firstFunction · 0.85
netmapForResponseMethod · 0.80
netmapMethod · 0.80
RunMethod · 0.65
FatalfMethod · 0.65
ErrorMethod · 0.65
HelperMethod · 0.65
ErrorfMethod · 0.65
ViewMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…