mirror of https://github.com/bjdgyc/anylink.git
51 lines
1.1 KiB
Go
51 lines
1.1 KiB
Go
package common
|
|
|
|
import (
|
|
"fmt"
|
|
"net"
|
|
"testing"
|
|
)
|
|
|
|
func TestAcquireIp(t *testing.T) {
|
|
ServerCfg.Ipv4Network = "192.168.1.0"
|
|
ServerCfg.Ipv4Netmask = "255.255.255.0"
|
|
macIps = map[string]*MacIp{}
|
|
initIpPool()
|
|
|
|
var ip net.IP
|
|
|
|
for i := 2; i <= 100; i++ {
|
|
ip = AcquireIp(fmt.Sprintf("mac-%d", i))
|
|
}
|
|
ip = AcquireIp(fmt.Sprintf("mac-new"))
|
|
AssertTrue(t, ip.Equal(net.IPv4(192, 168, 1, 101)))
|
|
for i := 102; i <= 254; i++ {
|
|
ip = AcquireIp(fmt.Sprintf("mac-%d", i))
|
|
}
|
|
ip = AcquireIp(fmt.Sprintf("mac-nil"))
|
|
AssertTrue(t, ip == nil)
|
|
}
|
|
|
|
func TestReleaseIp(t *testing.T) {
|
|
ServerCfg.Ipv4Network = "192.168.1.0"
|
|
ServerCfg.Ipv4Netmask = "255.255.255.0"
|
|
macIps = map[string]*MacIp{}
|
|
initIpPool()
|
|
|
|
var ip net.IP
|
|
|
|
// 分配完所有数据
|
|
for i := 2; i <= 254; i++ {
|
|
ip = AcquireIp(fmt.Sprintf("mac-%d", i))
|
|
}
|
|
|
|
ip = AcquireIp(fmt.Sprintf("mac-more"))
|
|
AssertTrue(t, ip == nil)
|
|
|
|
ReleaseIp(net.IPv4(192, 168, 1, 123), "mac-123")
|
|
ReleaseIp(net.IPv4(192, 168, 1, 100), "mac-100")
|
|
ip = AcquireIp(fmt.Sprintf("mac-new"))
|
|
// 最早过期的ip
|
|
AssertTrue(t, ip.Equal(net.IPv4(192, 168, 1, 123)))
|
|
}
|