github.com/AbhinandanKurakure/podman/v3@v3.4.10/libpod/network/netconflist_test.go (about) 1 package network 2 3 import ( 4 "net" 5 "reflect" 6 "testing" 7 ) 8 9 func TestNewIPAMDefaultRoute(t *testing.T) { 10 tests := []struct { 11 name string 12 isIPv6 bool 13 want IPAMRoute 14 }{ 15 { 16 name: "IPv4 default route", 17 isIPv6: false, 18 want: IPAMRoute{defaultIPv4Route}, 19 }, 20 { 21 name: "IPv6 default route", 22 isIPv6: true, 23 want: IPAMRoute{defaultIPv6Route}, 24 }, 25 } 26 for _, tt := range tests { 27 tt := tt 28 t.Run(tt.name, func(t *testing.T) { 29 got, err := NewIPAMDefaultRoute(tt.isIPv6) 30 if err != nil { 31 t.Errorf("no error expected: %v", err) 32 } 33 if !reflect.DeepEqual(got, tt.want) { 34 t.Errorf("NewIPAMDefaultRoute() = %v, want %v", got, tt.want) 35 } 36 }) 37 } 38 } 39 40 func TestNewIPAMLocalHostRange(t *testing.T) { 41 tests := []struct { 42 name string 43 subnet *net.IPNet 44 ipRange *net.IPNet 45 gw net.IP 46 want []IPAMLocalHostRangeConf 47 }{ 48 { 49 name: "IPv4 subnet", 50 subnet: &net.IPNet{IP: net.IPv4(192, 168, 0, 0), Mask: net.IPv4Mask(255, 255, 255, 0)}, 51 want: []IPAMLocalHostRangeConf{ 52 { 53 Subnet: "192.168.0.0/24", 54 Gateway: "192.168.0.1", 55 }, 56 }, 57 }, 58 { 59 name: "IPv4 subnet, range and gateway", 60 subnet: &net.IPNet{IP: net.IPv4(192, 168, 0, 0), Mask: net.IPv4Mask(255, 255, 255, 0)}, 61 ipRange: &net.IPNet{IP: net.IPv4(192, 168, 0, 128), Mask: net.IPv4Mask(255, 255, 255, 128)}, 62 gw: net.ParseIP("192.168.0.10"), 63 want: []IPAMLocalHostRangeConf{ 64 { 65 Subnet: "192.168.0.0/24", 66 RangeStart: "192.168.0.129", 67 RangeEnd: "192.168.0.255", 68 Gateway: "192.168.0.10", 69 }, 70 }, 71 }, 72 { 73 name: "IPv6 subnet", 74 subnet: &net.IPNet{IP: net.ParseIP("2001:DB8::"), Mask: net.IPMask(net.ParseIP("ffff:ffff:ffff::"))}, 75 want: []IPAMLocalHostRangeConf{ 76 { 77 Subnet: "2001:db8::/48", 78 Gateway: "2001:db8::1", 79 }, 80 }, 81 }, 82 { 83 name: "IPv6 subnet, range and gateway", 84 subnet: &net.IPNet{IP: net.ParseIP("2001:DB8::"), Mask: net.IPMask(net.ParseIP("ffff:ffff:ffff::"))}, 85 ipRange: &net.IPNet{IP: net.ParseIP("2001:DB8:1:1::"), Mask: net.IPMask(net.ParseIP("ffff:ffff:ffff:ffff::"))}, 86 gw: net.ParseIP("2001:DB8::2"), 87 want: []IPAMLocalHostRangeConf{ 88 { 89 Subnet: "2001:db8::/48", 90 RangeStart: "2001:db8:1:1::1", 91 RangeEnd: "2001:db8:1:1:ffff:ffff:ffff:ffff", 92 Gateway: "2001:db8::2", 93 }, 94 }, 95 }, 96 } 97 for _, tt := range tests { 98 tt := tt 99 t.Run(tt.name, func(t *testing.T) { 100 got, err := NewIPAMLocalHostRange(tt.subnet, tt.ipRange, tt.gw) 101 if err != nil { 102 t.Errorf("no error expected: %v", err) 103 } 104 if !reflect.DeepEqual(got, tt.want) { 105 t.Errorf("NewIPAMLocalHostRange() = %v, want %v", got, tt.want) 106 } 107 }) 108 } 109 }