diff --git a/.github/workflows/fuzzing.yml b/.github/workflows/fuzzing.yml index 776e0a67c5..55ab70dbac 100644 --- a/.github/workflows/fuzzing.yml +++ b/.github/workflows/fuzzing.yml @@ -29,7 +29,7 @@ jobs: if: failure() with: name: fuzz-artifacts-${{ matrix.fuzz_test }} - path: promql/testdata/fuzz/${{ matrix.fuzz_test }} + path: util/fuzzing/testdata/fuzz/${{ matrix.fuzz_test }} fuzzing_status: # This status check aggregates the individual matrix jobs of the fuzzing # step into a final status. Fails if a single matrix job fails, succeeds if diff --git a/util/fuzzing/corpus.go b/util/fuzzing/corpus.go index 52930b2669..7f26271699 100644 --- a/util/fuzzing/corpus.go +++ b/util/fuzzing/corpus.go @@ -58,15 +58,17 @@ func GetCorpusForFuzzParseMetricSelector() []string { // GetCorpusForFuzzParseExpr returns the seed corpus for FuzzParseExpr. func GetCorpusForFuzzParseExpr() ([]string, error) { + // Save original values and restore them after parsing test expressions. + defer func(funcs, durationExpr, rangeSelectors bool) { + parser.EnableExperimentalFunctions = funcs + parser.ExperimentalDurationExpr = durationExpr + parser.EnableExtendedRangeSelectors = rangeSelectors + }(parser.EnableExperimentalFunctions, parser.ExperimentalDurationExpr, parser.EnableExtendedRangeSelectors) + // Enable experimental features to parse all test expressions. parser.EnableExperimentalFunctions = true parser.ExperimentalDurationExpr = true parser.EnableExtendedRangeSelectors = true - defer func() { - parser.EnableExperimentalFunctions = false - parser.ExperimentalDurationExpr = false - parser.EnableExtendedRangeSelectors = false - }() // Get built-in test expressions. builtInExprs, err := promqltest.GetBuiltInExprs()