mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
cc02894a50
This way we won't vendor test related functions in docker anymore. It also moves netns related functions to a new ns package to be able to call the ns init function in tests. I think this also helps with the overall package isolation. Signed-off-by: David Calavera <david.calavera@gmail.com>
110 lines
1.8 KiB
Go
110 lines
1.8 KiB
Go
package idm
|
|
|
|
import (
|
|
"testing"
|
|
|
|
_ "github.com/docker/libnetwork/testutils"
|
|
)
|
|
|
|
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")
|
|
}
|
|
}
|