diff --git a/Makefile b/Makefile index 2484b78074..ce2af7d3ee 100644 --- a/Makefile +++ b/Makefile @@ -38,7 +38,7 @@ check_license: test: @echo ">> running tests" - @$(GO) test -short $(pkgs) + @$(GO) test -race -short $(pkgs) format: @echo ">> formatting code" diff --git a/promql/lex.go b/promql/lex.go index 5bbe843646..297c835011 100644 --- a/promql/lex.go +++ b/promql/lex.go @@ -428,9 +428,16 @@ func (l *lexer) nextItem() item { // lex creates a new scanner for the input string. func lex(input string) *lexer { + return lexWithSeriesDesc(input, false) +} + +// lexWithSeriesDesc creates a new scanner for the input string +// and specify seriesDesc to prevent data race in tests +func lexWithSeriesDesc(input string, seriesDesc bool) *lexer { l := &lexer{ - input: input, - items: make(chan item), + input: input, + items: make(chan item), + seriesDesc: seriesDesc, } go l.run() return l diff --git a/promql/lex_test.go b/promql/lex_test.go index 824b4e00cb..c497f896ff 100644 --- a/promql/lex_test.go +++ b/promql/lex_test.go @@ -438,9 +438,7 @@ var tests = []struct { // for the parser to avoid duplicated effort. func TestLexer(t *testing.T) { for i, test := range tests { - l := lex(test.input) - l.seriesDesc = test.seriesDesc - + l := lexWithSeriesDesc(test.input, test.seriesDesc) out := []item{} for it := range l.items { out = append(out, it)