mirror of
https://github.com/libp2p/go-libp2p-resource-manager.git
synced 2026-08-22 19:43:28 +08:00
fix tests
This commit is contained in:
142
scope_test.go
142
scope_test.go
@@ -29,6 +29,13 @@ func checkResources(t *testing.T, rc *resources, st network.ScopeStat) {
|
||||
}
|
||||
}
|
||||
|
||||
func checkStatus(t *testing.T, expected, status network.MemoryStatus) {
|
||||
t.Helper()
|
||||
if status != expected {
|
||||
t.Fatalf("expected memory status %d but got %d", expected, status)
|
||||
}
|
||||
}
|
||||
|
||||
func TestResources(t *testing.T) {
|
||||
rc := resources{limit: &StaticLimit{
|
||||
Memory: 4096,
|
||||
@@ -41,38 +48,70 @@ func TestResources(t *testing.T) {
|
||||
|
||||
checkResources(t, &rc, network.ScopeStat{})
|
||||
|
||||
if err := rc.checkMemory(1024); err != nil {
|
||||
var status network.MemoryStatus
|
||||
var err error
|
||||
|
||||
if status, err = rc.checkMemory(1024); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := rc.checkMemory(4096); err != nil {
|
||||
checkStatus(t, network.MemoryStatusOK, status)
|
||||
|
||||
if status, err = rc.checkMemory(2048); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := rc.checkMemory(8192); err == nil {
|
||||
checkStatus(t, network.MemoryStatusOK, status)
|
||||
|
||||
if status, err = rc.checkMemory(3072); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
checkStatus(t, network.MemoryStatusCaution, status)
|
||||
|
||||
if status, err = rc.checkMemory(4096); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
checkStatus(t, network.MemoryStatusCritical, status)
|
||||
|
||||
if _, err := rc.checkMemory(8192); err == nil {
|
||||
t.Fatal("expected memory check to fail")
|
||||
}
|
||||
|
||||
if err := rc.reserveMemory(1024); err != nil {
|
||||
if status, err = rc.reserveMemory(1024); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
checkResources(t, &rc, network.ScopeStat{Memory: 1024})
|
||||
checkStatus(t, network.MemoryStatusOK, status)
|
||||
|
||||
if err := rc.reserveMemory(1024); err != nil {
|
||||
if status, err = rc.reserveMemory(1024); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
checkResources(t, &rc, network.ScopeStat{Memory: 2048})
|
||||
checkStatus(t, network.MemoryStatusOK, status)
|
||||
|
||||
if err := rc.reserveMemory(4096); err == nil {
|
||||
t.Fatal("expected memory reservation to fail")
|
||||
}
|
||||
checkResources(t, &rc, network.ScopeStat{Memory: 2048})
|
||||
|
||||
rc.releaseMemory(1024)
|
||||
checkResources(t, &rc, network.ScopeStat{Memory: 1024})
|
||||
|
||||
if err := rc.reserveMemory(2048); err != nil {
|
||||
if status, err = rc.reserveMemory(1024); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
checkResources(t, &rc, network.ScopeStat{Memory: 3072})
|
||||
checkStatus(t, network.MemoryStatusCaution, status)
|
||||
|
||||
if status, err = rc.reserveMemory(512); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
checkResources(t, &rc, network.ScopeStat{Memory: 3584})
|
||||
checkStatus(t, network.MemoryStatusCritical, status)
|
||||
|
||||
if _, err := rc.reserveMemory(4096); err == nil {
|
||||
t.Fatal("expected memory reservation to fail")
|
||||
}
|
||||
checkResources(t, &rc, network.ScopeStat{Memory: 3584})
|
||||
|
||||
rc.releaseMemory(2560)
|
||||
checkResources(t, &rc, network.ScopeStat{Memory: 1024})
|
||||
|
||||
if status, err = rc.reserveMemory(2048); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
checkResources(t, &rc, network.ScopeStat{Memory: 3072})
|
||||
checkStatus(t, network.MemoryStatusCaution, status)
|
||||
|
||||
rc.releaseMemory(3072)
|
||||
checkResources(t, &rc, network.ScopeStat{})
|
||||
@@ -169,17 +208,34 @@ func TestResourceScopeSimple(t *testing.T) {
|
||||
}
|
||||
|
||||
func testResourceScopeBasic(t *testing.T, s *resourceScope) {
|
||||
if err := s.ReserveMemory(2048); err != nil {
|
||||
var status network.MemoryStatus
|
||||
var err error
|
||||
|
||||
if status, err = s.ReserveMemory(2048); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
checkResources(t, &s.rc, network.ScopeStat{Memory: 2048})
|
||||
checkStatus(t, network.MemoryStatusOK, status)
|
||||
|
||||
if err := s.ReserveMemory(2048); err != nil {
|
||||
if status, err = s.ReserveMemory(1024); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
checkResources(t, &s.rc, network.ScopeStat{Memory: 3072})
|
||||
checkStatus(t, network.MemoryStatusCaution, status)
|
||||
|
||||
if status, err = s.ReserveMemory(512); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
checkResources(t, &s.rc, network.ScopeStat{Memory: 3584})
|
||||
checkStatus(t, network.MemoryStatusCritical, status)
|
||||
|
||||
if status, err = s.ReserveMemory(512); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
checkResources(t, &s.rc, network.ScopeStat{Memory: 4096})
|
||||
checkStatus(t, network.MemoryStatusCritical, status)
|
||||
|
||||
if err := s.ReserveMemory(1024); err == nil {
|
||||
if _, err := s.ReserveMemory(1024); err == nil {
|
||||
t.Fatal("expected ReserveMemory to fail")
|
||||
}
|
||||
checkResources(t, &s.rc, network.ScopeStat{Memory: 4096})
|
||||
@@ -275,7 +331,7 @@ func TestResourceScopeTxnBasic(t *testing.T) {
|
||||
checkResources(t, &s.rc, network.ScopeStat{})
|
||||
|
||||
// check constraint propagation
|
||||
if err := txn.ReserveMemory(4096); err != nil {
|
||||
if _, err := txn.ReserveMemory(4096); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
checkResources(t, &txn.(*resourceScope).rc, network.ScopeStat{Memory: 4096})
|
||||
@@ -309,7 +365,7 @@ func TestResourceScopeTxnZombie(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
if err := txn2.ReserveMemory(4096); err != nil {
|
||||
if _, err := txn2.ReserveMemory(4096); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
checkResources(t, &txn2.(*resourceScope).rc, network.ScopeStat{Memory: 4096})
|
||||
@@ -318,7 +374,7 @@ func TestResourceScopeTxnZombie(t *testing.T) {
|
||||
|
||||
txn1.Done()
|
||||
checkResources(t, &s.rc, network.ScopeStat{})
|
||||
if err := txn2.ReserveMemory(4096); err == nil {
|
||||
if _, err := txn2.ReserveMemory(4096); err == nil {
|
||||
t.Fatal("expected ReserveMemory to fail")
|
||||
}
|
||||
|
||||
@@ -364,14 +420,14 @@ func TestResourceScopeTxnTree(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
if err := txn3.ReserveMemory(1024); err != nil {
|
||||
if _, err := txn3.ReserveMemory(1024); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
checkResources(t, &txn3.(*resourceScope).rc, network.ScopeStat{Memory: 1024})
|
||||
checkResources(t, &txn1.(*resourceScope).rc, network.ScopeStat{Memory: 1024})
|
||||
checkResources(t, &s.rc, network.ScopeStat{Memory: 1024})
|
||||
|
||||
if err := txn4.ReserveMemory(1024); err != nil {
|
||||
if _, err := txn4.ReserveMemory(1024); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
checkResources(t, &txn4.(*resourceScope).rc, network.ScopeStat{Memory: 1024})
|
||||
@@ -380,7 +436,7 @@ func TestResourceScopeTxnTree(t *testing.T) {
|
||||
checkResources(t, &txn1.(*resourceScope).rc, network.ScopeStat{Memory: 2048})
|
||||
checkResources(t, &s.rc, network.ScopeStat{Memory: 2048})
|
||||
|
||||
if err := txn5.ReserveMemory(1024); err != nil {
|
||||
if _, err := txn5.ReserveMemory(1024); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
checkResources(t, &txn5.(*resourceScope).rc, network.ScopeStat{Memory: 1024})
|
||||
@@ -390,7 +446,7 @@ func TestResourceScopeTxnTree(t *testing.T) {
|
||||
checkResources(t, &txn1.(*resourceScope).rc, network.ScopeStat{Memory: 3072})
|
||||
checkResources(t, &s.rc, network.ScopeStat{Memory: 3072})
|
||||
|
||||
if err := txn1.ReserveMemory(1024); err != nil {
|
||||
if _, err := txn1.ReserveMemory(1024); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
checkResources(t, &txn5.(*resourceScope).rc, network.ScopeStat{Memory: 1024})
|
||||
@@ -400,16 +456,16 @@ func TestResourceScopeTxnTree(t *testing.T) {
|
||||
checkResources(t, &txn1.(*resourceScope).rc, network.ScopeStat{Memory: 4096})
|
||||
checkResources(t, &s.rc, network.ScopeStat{Memory: 4096})
|
||||
|
||||
if err := txn5.ReserveMemory(1024); err == nil {
|
||||
if _, err := txn5.ReserveMemory(1024); err == nil {
|
||||
t.Fatal("expected ReserveMemory to fail")
|
||||
}
|
||||
if err := txn4.ReserveMemory(1024); err == nil {
|
||||
if _, err := txn4.ReserveMemory(1024); err == nil {
|
||||
t.Fatal("expected ReserveMemory to fail")
|
||||
}
|
||||
if err := txn3.ReserveMemory(1024); err == nil {
|
||||
if _, err := txn3.ReserveMemory(1024); err == nil {
|
||||
t.Fatal("expected ReserveMemory to fail")
|
||||
}
|
||||
if err := txn2.ReserveMemory(1024); err == nil {
|
||||
if _, err := txn2.ReserveMemory(1024); err == nil {
|
||||
t.Fatal("expected ReserveMemory to fail")
|
||||
}
|
||||
checkResources(t, &txn5.(*resourceScope).rc, network.ScopeStat{Memory: 1024})
|
||||
@@ -501,7 +557,7 @@ func TestResourceScopeDAG(t *testing.T) {
|
||||
[]*resourceScope{s3, s1},
|
||||
)
|
||||
|
||||
if err := s4.ReserveMemory(1024); err != nil {
|
||||
if _, err := s4.ReserveMemory(1024); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
checkResources(t, &s6.rc, network.ScopeStat{})
|
||||
@@ -511,7 +567,7 @@ func TestResourceScopeDAG(t *testing.T) {
|
||||
checkResources(t, &s2.rc, network.ScopeStat{Memory: 1024})
|
||||
checkResources(t, &s1.rc, network.ScopeStat{Memory: 1024})
|
||||
|
||||
if err := s5.ReserveMemory(1024); err != nil {
|
||||
if _, err := s5.ReserveMemory(1024); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
checkResources(t, &s6.rc, network.ScopeStat{})
|
||||
@@ -521,7 +577,7 @@ func TestResourceScopeDAG(t *testing.T) {
|
||||
checkResources(t, &s2.rc, network.ScopeStat{Memory: 2048})
|
||||
checkResources(t, &s1.rc, network.ScopeStat{Memory: 2048})
|
||||
|
||||
if err := s6.ReserveMemory(1024); err != nil {
|
||||
if _, err := s6.ReserveMemory(1024); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
checkResources(t, &s6.rc, network.ScopeStat{Memory: 1024})
|
||||
@@ -531,13 +587,13 @@ func TestResourceScopeDAG(t *testing.T) {
|
||||
checkResources(t, &s2.rc, network.ScopeStat{Memory: 2048})
|
||||
checkResources(t, &s1.rc, network.ScopeStat{Memory: 3072})
|
||||
|
||||
if err := s4.ReserveMemory(1024); err == nil {
|
||||
if _, err := s4.ReserveMemory(1024); err == nil {
|
||||
t.Fatal("expcted ReserveMemory to fail")
|
||||
}
|
||||
if err := s5.ReserveMemory(1024); err == nil {
|
||||
if _, err := s5.ReserveMemory(1024); err == nil {
|
||||
t.Fatal("expcted ReserveMemory to fail")
|
||||
}
|
||||
if err := s6.ReserveMemory(1024); err == nil {
|
||||
if _, err := s6.ReserveMemory(1024); err == nil {
|
||||
t.Fatal("expcted ReserveMemory to fail")
|
||||
}
|
||||
|
||||
@@ -986,7 +1042,7 @@ func TestResourceScopeDAGTxn(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
if err := txn4.ReserveMemory(1024); err != nil {
|
||||
if _, err := txn4.ReserveMemory(1024); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
checkResources(t, &s4.rc, network.ScopeStat{Memory: 1024})
|
||||
@@ -994,7 +1050,7 @@ func TestResourceScopeDAGTxn(t *testing.T) {
|
||||
checkResources(t, &s2.rc, network.ScopeStat{Memory: 1024})
|
||||
checkResources(t, &s1.rc, network.ScopeStat{Memory: 1024})
|
||||
|
||||
if err := txn5.ReserveMemory(1024); err != nil {
|
||||
if _, err := txn5.ReserveMemory(1024); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
checkResources(t, &s5.rc, network.ScopeStat{Memory: 1024})
|
||||
@@ -1003,7 +1059,7 @@ func TestResourceScopeDAGTxn(t *testing.T) {
|
||||
checkResources(t, &s2.rc, network.ScopeStat{Memory: 2048})
|
||||
checkResources(t, &s1.rc, network.ScopeStat{Memory: 2048})
|
||||
|
||||
if err := txn6.ReserveMemory(1024); err != nil {
|
||||
if _, err := txn6.ReserveMemory(1024); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
checkResources(t, &s6.rc, network.ScopeStat{Memory: 1024})
|
||||
@@ -1013,7 +1069,7 @@ func TestResourceScopeDAGTxn(t *testing.T) {
|
||||
checkResources(t, &s2.rc, network.ScopeStat{Memory: 2048})
|
||||
checkResources(t, &s1.rc, network.ScopeStat{Memory: 3072})
|
||||
|
||||
if err := txn4.ReserveMemory(4096); err != nil {
|
||||
if _, err := txn4.ReserveMemory(4096); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
checkResources(t, &s6.rc, network.ScopeStat{Memory: 1024})
|
||||
@@ -1023,13 +1079,13 @@ func TestResourceScopeDAGTxn(t *testing.T) {
|
||||
checkResources(t, &s2.rc, network.ScopeStat{Memory: 2048 + 4096})
|
||||
checkResources(t, &s1.rc, network.ScopeStat{Memory: 3072 + 4096})
|
||||
|
||||
if err := txn4.ReserveMemory(1024); err == nil {
|
||||
if _, err := txn4.ReserveMemory(1024); err == nil {
|
||||
t.Fatal("expected ReserveMemory to fail")
|
||||
}
|
||||
if err := txn5.ReserveMemory(1024); err == nil {
|
||||
if _, err := txn5.ReserveMemory(1024); err == nil {
|
||||
t.Fatal("expected ReserveMemory to fail")
|
||||
}
|
||||
if err := txn6.ReserveMemory(1024); err == nil {
|
||||
if _, err := txn6.ReserveMemory(1024); err == nil {
|
||||
t.Fatal("expected ReserveMemory to fail")
|
||||
}
|
||||
checkResources(t, &s6.rc, network.ScopeStat{Memory: 1024})
|
||||
@@ -1048,10 +1104,10 @@ func TestResourceScopeDAGTxn(t *testing.T) {
|
||||
checkResources(t, &s2.rc, network.ScopeStat{Memory: 1024})
|
||||
checkResources(t, &s1.rc, network.ScopeStat{Memory: 2048})
|
||||
|
||||
if err := txn5.ReserveMemory(1024); err != nil {
|
||||
if _, err := txn5.ReserveMemory(1024); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := txn6.ReserveMemory(1024); err != nil {
|
||||
if _, err := txn6.ReserveMemory(1024); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user