Instantiate lexer inline for the test

Don't use the lex constructor, remove the constructor introduced in the
prevous commit.
This commit is contained in:
Alexey Miroshkin 2016-08-29 09:20:43 +02:00
parent 485f7dde08
commit bf0e441576
2 changed files with 9 additions and 10 deletions

View file

@ -428,16 +428,9 @@ 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),
seriesDesc: seriesDesc,
input: input,
items: make(chan item),
}
go l.run()
return l

View file

@ -438,7 +438,13 @@ var tests = []struct {
// for the parser to avoid duplicated effort.
func TestLexer(t *testing.T) {
for i, test := range tests {
l := lexWithSeriesDesc(test.input, test.seriesDesc)
l := &lexer{
input: test.input,
items: make(chan item),
seriesDesc: test.seriesDesc,
}
go l.run()
out := []item{}
for it := range l.items {
out = append(out, it)