From 6b9002d8f97b9e2f31bee949a8fb561094e5316c Mon Sep 17 00:00:00 2001 From: Thomas Pelletier Date: Wed, 9 Sep 2015 17:33:28 +0100 Subject: [PATCH] Harden tests for bad arrays --- parser.go | 4 ++-- parser_test.go | 10 ++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/parser.go b/parser.go index 7ba872b..bd33e0d 100644 --- a/parser.go +++ b/parser.go @@ -264,7 +264,7 @@ func (p *tomlParser) parseArray() []interface{} { } if follow.typ == tokenRightBracket { p.getToken() - return array + break } val := p.parseRvalue() if arrayType == nil { @@ -275,7 +275,7 @@ func (p *tomlParser) parseArray() []interface{} { } array = append(array, val) follow = p.peek() - if follow == nil { + if follow == nil || follow.typ == tokenEOF { p.raiseError(follow, "unterminated array") } if follow.typ != tokenRightBracket && follow.typ != tokenComma { diff --git a/parser_test.go b/parser_test.go index 94308a4..9b827b1 100644 --- a/parser_test.go +++ b/parser_test.go @@ -297,6 +297,16 @@ func TestUnterminatedArray(t *testing.T) { if err.Error() != "(1, 8): unterminated array" { t.Error("Bad error message:", err.Error()) } + + _, err = Load("a = [1") + if err.Error() != "(1, 7): unterminated array" { + t.Error("Bad error message:", err.Error()) + } + + _, err = Load("a = [1 2") + if err.Error() != "(1, 8): missing comma" { + t.Error("Bad error message:", err.Error()) + } } func TestNewlinesInArrays(t *testing.T) {