Files
query-orchestration/internal/serviceconfig/threadpool/config_test.go
T
Michael McGuinness 752fb2e2c0 Merged in feature/chc_1 (pull request #120)
Text Extraction Clean Up + Parallelization

* merged_Call

* directchildren

* bitofimprovements

* go

* parallel

* fixfullsuite

* pondforconcurrency

* comments

* muchdone

* bitsofclean

* stabilisedtests

* snappy

* threadpooltests

* childelements

* testspassed
2025-04-25 17:02:50 +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.SetThreadPool(sl)
assert.Equal(t, 120, cfg.MonitorInterval)
assert.LessOrEqual(t, 10000, 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.SetThreadPool(sl)
assert.Equal(t, 1, cfg.MonitorInterval)
assert.LessOrEqual(t, 10000, cfg.MaxWorkers)
assert.NotNil(t, cfg.pool)
for i := range 1000 {
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())
}