fix tests

This commit is contained in:
vyzo
2022-01-05 10:06:11 +02:00
parent 7ea1d27783
commit a86b214300

View File

@@ -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)
}