github.com/containers/podman/v2@v2.2.2-0.20210501105131-c1e07d070c4c/libpod/network/network_test.go (about)

     1  package network
     2  
     3  import (
     4  	"net"
     5  	"testing"
     6  )
     7  
     8  func parseCIDR(n string) *net.IPNet {
     9  	_, parsedNet, _ := net.ParseCIDR(n)
    10  	return parsedNet
    11  }
    12  
    13  func Test_networkIntersect(t *testing.T) {
    14  	type args struct {
    15  		n1 *net.IPNet
    16  		n2 *net.IPNet
    17  	}
    18  	tests := []struct {
    19  		name string
    20  		args args
    21  		want bool
    22  	}{
    23  		{"16 and 24 intersects", args{n1: parseCIDR("192.168.0.0/16"), n2: parseCIDR("192.168.1.0/24")}, true},
    24  		{"24 and 25 intersects", args{n1: parseCIDR("192.168.1.0/24"), n2: parseCIDR("192.168.1.0/25")}, true},
    25  		{"Two 24s", args{n1: parseCIDR("192.168.1.0/24"), n2: parseCIDR("192.168.2.0/24")}, false},
    26  	}
    27  	for _, tt := range tests {
    28  		test := tt
    29  		t.Run(tt.name, func(t *testing.T) {
    30  			if got := networkIntersect(test.args.n1, test.args.n2); got != test.want {
    31  				t.Errorf("networkIntersect() = %v, want %v", got, test.want)
    32  			}
    33  		})
    34  	}
    35  }