ee776d2681
Single Mock Server * mockserver * mockserver * reqs * mockserver * slowrunner * someoptimisedqueries * passedfullsuite * passedfullsuite
63 lines
1.2 KiB
Go
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())
|
|
}
|