diff options
Diffstat (limited to 'libpod/network/network_test.go')
-rw-r--r-- | libpod/network/network_test.go | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/libpod/network/network_test.go b/libpod/network/network_test.go new file mode 100644 index 000000000..1969e792c --- /dev/null +++ b/libpod/network/network_test.go @@ -0,0 +1,35 @@ +package network + +import ( + "net" + "testing" +) + +func parseCIDR(n string) *net.IPNet { + _, parsedNet, _ := net.ParseCIDR(n) + return parsedNet +} + +func Test_networkIntersect(t *testing.T) { + type args struct { + n1 *net.IPNet + n2 *net.IPNet + } + tests := []struct { + name string + args args + want bool + }{ + {"16 and 24 intersects", args{n1: parseCIDR("192.168.0.0/16"), n2: parseCIDR("192.168.1.0/24")}, true}, + {"24 and 25 intersects", args{n1: parseCIDR("192.168.1.0/24"), n2: parseCIDR("192.168.1.0/25")}, true}, + {"Two 24s", args{n1: parseCIDR("192.168.1.0/24"), n2: parseCIDR("192.168.2.0/24")}, false}, + } + for _, tt := range tests { + test := tt + t.Run(tt.name, func(t *testing.T) { + if got := networkIntersect(test.args.n1, test.args.n2); got != test.want { + t.Errorf("networkIntersect() = %v, want %v", got, test.want) + } + }) + } +} |