1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00
moby--moby/libnetwork/idm/idm_test.go
Madhu Venugopal c395cf2eb6 Datastore additions to bitmask management
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-06-17 16:49:19 -07:00

108 lines
1.7 KiB
Go

package idm
import (
"testing"
)
func TestNew(t *testing.T) {
_, err := New(nil, "", 0, 1)
if err == nil {
t.Fatalf("Expected failure, but succeeded")
}
_, err = New(nil, "myset", 1<<10, 0)
if err == nil {
t.Fatalf("Expected failure, but succeeded")
}
i, err := New(nil, "myset", 0, 10)
if err != nil {
t.Fatalf("Unexpected failure: %v", err)
}
if i.handle == nil {
t.Fatalf("set is not initialized")
}
if i.start != 0 {
t.Fatalf("unexpected start")
}
if i.end != 10 {
t.Fatalf("unexpected end")
}
}
func TestAllocate(t *testing.T) {
i, err := New(nil, "myids", 50, 52)
if err != nil {
t.Fatal(err)
}
if err = i.GetSpecificID(49); err == nil {
t.Fatalf("Expected failure but succeeded")
}
if err = i.GetSpecificID(53); err == nil {
t.Fatalf("Expected failure but succeeded")
}
o, err := i.GetID()
if err != nil {
t.Fatal(err)
}
if o != 50 {
t.Fatalf("Unexpected first id returned: %d", o)
}
err = i.GetSpecificID(50)
if err == nil {
t.Fatal(err)
}
o, err = i.GetID()
if err != nil {
t.Fatal(err)
}
if o != 51 {
t.Fatalf("Unexpected id returned: %d", o)
}
o, err = i.GetID()
if err != nil {
t.Fatal(err)
}
if o != 52 {
t.Fatalf("Unexpected id returned: %d", o)
}
o, err = i.GetID()
if err == nil {
t.Fatalf("Expected failure but succeeded: %d", o)
}
i.Release(50)
o, err = i.GetID()
if err != nil {
t.Fatal(err)
}
if o != 50 {
t.Fatalf("Unexpected id returned")
}
i.Release(52)
err = i.GetSpecificID(52)
if err != nil {
t.Fatal(err)
}
}
func TestUninitialized(t *testing.T) {
i := &Idm{}
if _, err := i.GetID(); err == nil {
t.Fatalf("Expected failure but succeeded")
}
if err := i.GetSpecificID(44); err == nil {
t.Fatalf("Expected failure but succeeded")
}
}