Files
query-orchestration/internal/serviceconfig/threadpool/config_test.go
T
Michael McGuinness ee776d2681 Merged in feature/mockserver (pull request #135)
Single Mock Server

* mockserver

* mockserver

* reqs

* mockserver

* slowrunner

* someoptimisedqueries

* passedfullsuite

* passedfullsuite
2025-05-06 01:59:52 +00:00

63 lines
1.2 KiB
Go

package threadpool
import (
"log/slog"
"testing"
"queryorchestration/internal/serviceconfig/logger"
"github.com/stretchr/testify/assert"
)
func TestSetThreadPool(t *testing.T) {
cfg := &ThreadPoolConfig{}
l := &logger.TestLogger{
T: t,
}
sl := slog.New(l)
cfg.StartThreadPool(sl)
assert.Equal(t, 120, cfg.MonitorInterval)
assert.LessOrEqual(t, 10, cfg.MaxWorkers)
assert.NotNil(t, cfg.pool)
}
func TestStopAndWait(t *testing.T) {
cfg := &ThreadPoolConfig{}
l := &logger.TestLogger{
T: t,
}
sl := slog.New(l)
cfg.MonitorInterval = 1
cfg.StartThreadPool(sl)
assert.Equal(t, 1, cfg.MonitorInterval)
assert.LessOrEqual(t, 10, cfg.MaxWorkers)
assert.NotNil(t, cfg.pool)
for i := range 2 {
index := i
cfg.pool.Submit(func() {
sl.Info("new thread", "index", index)
})
}
cfg.ThreadPoolStopAndWait()
}
func TestGetMaxWorkers(t *testing.T) {
cfg := ThreadPoolConfig{}
assert.Equal(t, 0, cfg.GetMaxWorkers())
cfg.MaxWorkers = 100
assert.Equal(t, 100, cfg.GetMaxWorkers())
}
func TestGetMonitorInterval(t *testing.T) {
cfg := ThreadPoolConfig{}
assert.Equal(t, 0, cfg.GetThreadMonitorInterval())
cfg.MonitorInterval = 100
assert.Equal(t, 100, cfg.GetThreadMonitorInterval())
}