github.com/zhuohuang-hust/src-cbuild@v0.0.0-20230105071821-c7aab3e7c840/mergeCode/libnetwork/idm/idm_test.go (about)

     1  package idm
     2  
     3  import (
     4  	"testing"
     5  
     6  	_ "github.com/docker/libnetwork/testutils"
     7  )
     8  
     9  func TestNew(t *testing.T) {
    10  	_, err := New(nil, "", 0, 1)
    11  	if err == nil {
    12  		t.Fatalf("Expected failure, but succeeded")
    13  	}
    14  
    15  	_, err = New(nil, "myset", 1<<10, 0)
    16  	if err == nil {
    17  		t.Fatalf("Expected failure, but succeeded")
    18  	}
    19  
    20  	i, err := New(nil, "myset", 0, 10)
    21  	if err != nil {
    22  		t.Fatalf("Unexpected failure: %v", err)
    23  	}
    24  	if i.handle == nil {
    25  		t.Fatalf("set is not initialized")
    26  	}
    27  	if i.start != 0 {
    28  		t.Fatalf("unexpected start")
    29  	}
    30  	if i.end != 10 {
    31  		t.Fatalf("unexpected end")
    32  	}
    33  }
    34  
    35  func TestAllocate(t *testing.T) {
    36  	i, err := New(nil, "myids", 50, 52)
    37  	if err != nil {
    38  		t.Fatal(err)
    39  	}
    40  
    41  	if err = i.GetSpecificID(49); err == nil {
    42  		t.Fatalf("Expected failure but succeeded")
    43  	}
    44  
    45  	if err = i.GetSpecificID(53); err == nil {
    46  		t.Fatalf("Expected failure but succeeded")
    47  	}
    48  
    49  	o, err := i.GetID()
    50  	if err != nil {
    51  		t.Fatal(err)
    52  	}
    53  	if o != 50 {
    54  		t.Fatalf("Unexpected first id returned: %d", o)
    55  	}
    56  
    57  	err = i.GetSpecificID(50)
    58  	if err == nil {
    59  		t.Fatal(err)
    60  	}
    61  
    62  	o, err = i.GetID()
    63  	if err != nil {
    64  		t.Fatal(err)
    65  	}
    66  	if o != 51 {
    67  		t.Fatalf("Unexpected id returned: %d", o)
    68  	}
    69  
    70  	o, err = i.GetID()
    71  	if err != nil {
    72  		t.Fatal(err)
    73  	}
    74  	if o != 52 {
    75  		t.Fatalf("Unexpected id returned: %d", o)
    76  	}
    77  
    78  	o, err = i.GetID()
    79  	if err == nil {
    80  		t.Fatalf("Expected failure but succeeded: %d", o)
    81  	}
    82  
    83  	i.Release(50)
    84  
    85  	o, err = i.GetID()
    86  	if err != nil {
    87  		t.Fatal(err)
    88  	}
    89  	if o != 50 {
    90  		t.Fatalf("Unexpected id returned")
    91  	}
    92  
    93  	i.Release(52)
    94  	err = i.GetSpecificID(52)
    95  	if err != nil {
    96  		t.Fatal(err)
    97  	}
    98  }
    99  
   100  func TestUninitialized(t *testing.T) {
   101  	i := &Idm{}
   102  
   103  	if _, err := i.GetID(); err == nil {
   104  		t.Fatalf("Expected failure but succeeded")
   105  	}
   106  
   107  	if err := i.GetSpecificID(44); err == nil {
   108  		t.Fatalf("Expected failure but succeeded")
   109  	}
   110  }