Files
wehub-resource-sync 498b235461
Build and test / Build and test AMD64 Ubuntu 22.04 (push) Failing after 0s
Publish Builder / amazonlinux2023 (push) Failing after 1s
Build and test / UT for Go (push) Has been skipped
Publish KRTE Images / KRTE (push) Failing after 1s
Build and test / Integration Test (push) Has been skipped
Build and test / Upload Code Coverage (push) Has been skipped
Publish Builder / rockylinux9 (push) Failing after 1s
Publish Builder / ubuntu22.04 (push) Failing after 0s
Publish Builder / ubuntu24.04 (push) Failing after 0s
Publish Gpu Builder / publish-gpu-builder (push) Failing after 1s
Publish Test Images / PyTest (push) Failing after 0s
Build and test / UT for Cpp (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:31:17 +08:00

65 lines
1.2 KiB
Go

package metricsutil
import (
"testing"
"time"
"github.com/stretchr/testify/assert"
)
func TestSegmentGather(t *testing.T) {
l := SegmentLabel{
DatabaseName: "db1",
ResourceGroup: "rg1",
}
g := newSegmentObserver("1", l)
r1 := NewCacheLoadRecord(l)
g.Observe(r1)
r2 := NewCacheEvictRecord(l)
g.Observe(r2)
r3 := NewQuerySegmentAccessRecord(l, "query")
g.Observe(r3)
r4 := NewSearchSegmentAccessRecord(l)
g.Observe(r4)
// test observe panic.
assert.Panics(t, func() {
g.Observe(&QuerySegmentAccessRecord{})
})
assert.False(t, g.IsExpired(time.Now().Add(-30*time.Second)))
assert.True(t, g.IsExpired(time.Now()))
// Clear should be ok.
g.Clear()
}
func TestSegmentsGather(t *testing.T) {
g := newSegmentsObserver()
r1 := NewQuerySegmentAccessRecord(SegmentLabel{
ResourceGroup: "rg1",
DatabaseName: "db1",
}, "query")
r1.Finish(nil)
g.Observe(r1)
assert.Equal(t, 1, g.segments.Len())
r2 := NewSearchSegmentAccessRecord(SegmentLabel{
ResourceGroup: "rg2",
DatabaseName: "db1",
})
r2.Finish(nil)
g.Observe(r2)
assert.Equal(t, 2, g.segments.Len())
g.Expire(time.Now().Add(-time.Minute))
assert.Equal(t, 2, g.segments.Len())
g.Expire(time.Now())
assert.Zero(t, g.segments.Len())
}