feat: implement Remote WinBox worker, API, frontend integration, OpenBao persistence, and supporting docs
This commit is contained in:
48
winbox-worker/internal/session/pool_test.go
Normal file
48
winbox-worker/internal/session/pool_test.go
Normal file
@@ -0,0 +1,48 @@
|
||||
package session
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestPoolAllocateAndRelease(t *testing.T) {
|
||||
p := NewPool(100, 105)
|
||||
allocated := make([]int, 0, 6)
|
||||
for i := 0; i < 6; i++ {
|
||||
n, err := p.Allocate()
|
||||
if err != nil {
|
||||
t.Fatalf("allocate %d: %v", i, err)
|
||||
}
|
||||
allocated = append(allocated, n)
|
||||
}
|
||||
_, err := p.Allocate()
|
||||
if err == nil {
|
||||
t.Fatal("expected error on exhausted pool")
|
||||
}
|
||||
p.Release(allocated[0])
|
||||
n, err := p.Allocate()
|
||||
if err != nil {
|
||||
t.Fatalf("re-allocate: %v", err)
|
||||
}
|
||||
if n != allocated[0] {
|
||||
t.Fatalf("expected %d, got %d", allocated[0], n)
|
||||
}
|
||||
}
|
||||
|
||||
func TestPoolAvailable(t *testing.T) {
|
||||
p := NewPool(100, 102)
|
||||
if p.Available() != 3 {
|
||||
t.Fatalf("expected 3 available, got %d", p.Available())
|
||||
}
|
||||
p.Allocate()
|
||||
if p.Available() != 2 {
|
||||
t.Fatalf("expected 2 available, got %d", p.Available())
|
||||
}
|
||||
}
|
||||
|
||||
func TestPoolResetAll(t *testing.T) {
|
||||
p := NewPool(100, 102)
|
||||
p.Allocate()
|
||||
p.Allocate()
|
||||
p.ResetAll()
|
||||
if p.Available() != 3 {
|
||||
t.Fatalf("expected 3 after reset, got %d", p.Available())
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user