refactor: Move NewTestEngine into promqltest
And export `DefaultMaxSamplesPerQuery` so callers can replicate previous behaviour. Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
This commit is contained in:
parent
b3c15d2246
commit
babfcfdd91
|
@ -4999,7 +4999,7 @@ metric 0 1 2
|
||||||
if c.engineLookback != 0 {
|
if c.engineLookback != 0 {
|
||||||
engine.lookbackDelta = c.engineLookback
|
engine.lookbackDelta = c.engineLookback
|
||||||
}
|
}
|
||||||
opts := NewPrometheusQueryOpts(false, c.queryLookback)
|
opts := promql.NewPrometheusQueryOpts(false, c.queryLookback)
|
||||||
qry, err := engine.NewInstantQuery(context.Background(), storage, opts, query, c.ts)
|
qry, err := engine.NewInstantQuery(context.Background(), storage, opts, query, c.ts)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
|
|
@ -22,20 +22,12 @@ import (
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
"golang.org/x/sync/errgroup"
|
"golang.org/x/sync/errgroup"
|
||||||
|
|
||||||
|
"github.com/prometheus/prometheus/promql/promqltest"
|
||||||
"github.com/prometheus/prometheus/util/teststorage"
|
"github.com/prometheus/prometheus/util/teststorage"
|
||||||
)
|
)
|
||||||
|
|
||||||
func newTestEngine() *Engine {
|
func newTestEngine() *Engine {
|
||||||
return NewEngine(EngineOpts{
|
return promqltest.NewTestEngine(false, 0, promqltest.DefaultMaxSamplesPerQuery)
|
||||||
Logger: nil,
|
|
||||||
Reg: nil,
|
|
||||||
MaxSamples: 10000,
|
|
||||||
Timeout: 100 * time.Second,
|
|
||||||
NoStepSubqueryIntervalFn: func(int64) int64 { return durationMilliseconds(1 * time.Minute) },
|
|
||||||
EnableAtModifier: true,
|
|
||||||
EnableNegativeOffset: true,
|
|
||||||
EnablePerStepStats: true,
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestEvaluations(t *testing.T) {
|
func TestEvaluations(t *testing.T) {
|
||||||
|
|
|
@ -49,7 +49,8 @@ var (
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
defaultEpsilon = 0.000001 // Relative error allowed for sample values.
|
defaultEpsilon = 0.000001 // Relative error allowed for sample values.
|
||||||
|
DefaultMaxSamplesPerQuery = 10000
|
||||||
)
|
)
|
||||||
|
|
||||||
var testStartTime = time.Unix(0, 0).UTC()
|
var testStartTime = time.Unix(0, 0).UTC()
|
||||||
|
@ -71,6 +72,20 @@ func LoadedStorage(t testutil.T, input string) *teststorage.TestStorage {
|
||||||
return test.storage
|
return test.storage
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func NewTestEngine(enablePerStepStats bool, lookbackDelta time.Duration, maxSamples int) *promql.Engine {
|
||||||
|
return promql.NewEngine(promql.EngineOpts{
|
||||||
|
Logger: nil,
|
||||||
|
Reg: nil,
|
||||||
|
MaxSamples: DefaultMaxSamplesPerQuery,
|
||||||
|
Timeout: 100 * time.Second,
|
||||||
|
NoStepSubqueryIntervalFn: func(int64) int64 { return durationMilliseconds(1 * time.Minute) },
|
||||||
|
EnableAtModifier: true,
|
||||||
|
EnableNegativeOffset: true,
|
||||||
|
EnablePerStepStats: enablePerStepStats,
|
||||||
|
LookbackDelta: lookbackDelta,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
// RunBuiltinTests runs an acceptance test suite against the provided engine.
|
// RunBuiltinTests runs an acceptance test suite against the provided engine.
|
||||||
func RunBuiltinTests(t *testing.T, engine promql.QueryEngine) {
|
func RunBuiltinTests(t *testing.T, engine promql.QueryEngine) {
|
||||||
t.Cleanup(func() { parser.EnableExperimentalFunctions = false })
|
t.Cleanup(func() { parser.EnableExperimentalFunctions = false })
|
||||||
|
|
|
@ -451,7 +451,7 @@ eval range from 0 to 5m step 5m testmetric
|
||||||
|
|
||||||
for name, testCase := range testCases {
|
for name, testCase := range testCases {
|
||||||
t.Run(name, func(t *testing.T) {
|
t.Run(name, func(t *testing.T) {
|
||||||
err := runTest(t, testCase.input, NewTestEngine())
|
err := runTest(t, testCase.input, NewTestEngine(false, 0, DefaultMaxSamplesPerQuery))
|
||||||
|
|
||||||
if testCase.expectedError == "" {
|
if testCase.expectedError == "" {
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
Loading…
Reference in New Issue