优化结构

This commit is contained in:
Yvan
2026-08-27 16:20:37 +08:00
parent 001e39da50
commit 653414a1da
54 changed files with 1257 additions and 3450 deletions
+38
View File
@@ -0,0 +1,38 @@
package data
import "testing"
type reloadableTestClient struct{ id int }
func TestReloadableReclaimsRepublishedClient(t *testing.T) {
first := &reloadableTestClient{id: 1}
second := &reloadableTestClient{id: 2}
closed := map[*reloadableTestClient]int{}
clients := newReloadable(first, func(client *reloadableTestClient) { closed[client]++ })
clients.replace(second)
clients.replace(first)
if clients.retired.take(first) {
t.Fatal("republished client remained scheduled for retirement")
}
clients.close()
if closed[first] != 1 {
t.Fatalf("active client closed %d times, want 1", closed[first])
}
if closed[second] != 1 {
t.Fatalf("retired client closed %d times, want 1", closed[second])
}
}
func TestReloadableCloseDeduplicatesHandles(t *testing.T) {
client := &reloadableTestClient{id: 1}
closed := 0
clients := newReloadable(client, func(*reloadableTestClient) { closed++ })
clients.retired.items = append(clients.retired.items, client, client)
clients.close()
if closed != 1 {
t.Fatalf("client closed %d times, want 1", closed)
}
}