initial commit
This commit is contained in:
commit
8b15c38eab
8 changed files with 618 additions and 0 deletions
115
alloc_test.go
Normal file
115
alloc_test.go
Normal file
|
|
@ -0,0 +1,115 @@
|
|||
package netalloc
|
||||
|
||||
import (
|
||||
"net"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestMemAlloc(t *testing.T) {
|
||||
var mem Allocator
|
||||
mem, err := NewMemAlloc("192.168.1.0/24")
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
ip, err := mem.Alloc()
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
if !net.ParseIP("192.168.1.1").Equal(ip.IP) {
|
||||
t.Errorf("expected '192.168.1.1' got '%s'", ip.IP)
|
||||
}
|
||||
cidr, err := mem.AllocCIDR()
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
if cidr != "192.168.1.2/24" {
|
||||
t.Errorf("expected '192.168.1.2/24' got '%s'", cidr)
|
||||
}
|
||||
err = mem.Free(ip)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
cidr, err = mem.AllocCIDR()
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
if cidr != "192.168.1.1/24" {
|
||||
t.Errorf("expected '192.168.1.1/24' got '%s'", cidr)
|
||||
}
|
||||
err = mem.FreeCIDR("192.168.1.2/24")
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestMemAllocFull(t *testing.T) {
|
||||
var mem Allocator
|
||||
mem, err := NewMemAlloc("192.168.1.0/30")
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
ip, err := mem.Alloc()
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
_, err = mem.Alloc()
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
_, err = mem.Alloc()
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
_, err = mem.Alloc()
|
||||
if err != ErrPrefixFull {
|
||||
t.Errorf("expected '%s' got '%s'", ErrPrefixFull, err)
|
||||
}
|
||||
err = mem.Free(ip)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
ip2, err := mem.Alloc()
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
if !ip.IP.Equal(ip2.IP) {
|
||||
t.Errorf("expected '192.168.1.1/30' got '%s'", ip2.IP)
|
||||
}
|
||||
}
|
||||
|
||||
func TestMemAllocCIDR(t *testing.T) {
|
||||
var mem Allocator
|
||||
mem, err := NewMemAlloc("192.168.1.0/30")
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
ip, err := mem.Alloc()
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
if !net.ParseIP("192.168.1.1").Equal(ip.IP) {
|
||||
t.Errorf("expected '192.168.1.1' got '%s'", ip.IP)
|
||||
}
|
||||
cidr, err := mem.AllocCIDR()
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
if cidr != "192.168.1.2/30" {
|
||||
t.Errorf("expected '192.168.1.2/30' got '%s'", cidr)
|
||||
}
|
||||
err = mem.Free(ip)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
cidr, err = mem.AllocCIDR()
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
if cidr != "192.168.1.1/30" {
|
||||
t.Errorf("expected '192.168.1.1/30' got '%s'", cidr)
|
||||
}
|
||||
err = mem.FreeCIDR("192.168.1.2/30")
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue