Files
cthulhu/internal/atspi/live_regions_test.go

40 lines
1.2 KiB
Go

// Copyright (c) 2026 Storm Dragon
// Authors: Storm Dragon, Angus Kola
// SPDX-License-Identifier: GPL-3.0-or-later
package atspi
import (
"fmt"
"testing"
)
func TestDeferredLiveRegionLifetime(t *testing.T) {
var store deferredLiveRegionStore
for index := range 40 {
store.remember(testID(fmt.Sprintf("/region/%d", index)), testID("/document"))
}
if len(store) != 32 {
t.Fatalf("unbounded deferred state: %d", len(store))
}
if _, found := store.take(testID("/region/0")); found {
t.Fatal("oldest entry not evicted")
}
store.remember(testID("/region/39"), testID("/document"))
if len(store) != 32 {
t.Fatal("duplicate added a second entry")
}
document, found := store.take(testID("/region/39"))
if !found || document != testID("/document") {
t.Fatal("lost deferred owner")
}
if _, found = store.take(testID("/region/39")); found {
t.Fatal("completed update remained deferred")
}
store.remember(testID("/other_region"), testID("/other_document"))
store.forget_document(testID("/document"))
if len(store) != 1 || store[0].document != testID("/other_document") {
t.Fatal("document retirement retained old entries or removed another document")
}
}