xml: add line numbers to syntax errors.

R=rsc
CC=golang-dev
https://golang.org/cl/699041
This commit is contained in:
Kyle Consalus 2010-03-23 13:20:16 -07:00 committed by Russ Cox
parent e781303e27
commit a65a56ec1f
2 changed files with 49 additions and 25 deletions

View file

@ -209,7 +209,7 @@ func TestSyntax(t *testing.T) {
var err os.Error
for _, err = p.Token(); err == nil; _, err = p.Token() {
}
if _, ok := err.(SyntaxError); !ok {
if _, ok := err.(*SyntaxError); !ok {
t.Fatalf(`xmlInput "%s": expected SyntaxError not received`, xmlInput[i])
}
}
@ -314,7 +314,7 @@ func TestUnquotedAttrs(t *testing.T) {
p := NewParser(StringReader(data))
p.Strict = false
token, err := p.Token()
if _, ok := err.(SyntaxError); ok {
if _, ok := err.(*SyntaxError); ok {
t.Errorf("Unexpected error: %v", err)
}
if token.(StartElement).Name.Local != "tag" {
@ -354,3 +354,18 @@ func TestCopyTokenStartElement(t *testing.T) {
t.Error("CopyToken(CharData) uses same buffer.")
}
}
func TestSyntaxErrorLineNum(t *testing.T) {
testInput := "<P>Foo<P>\n\n<P>Bar</>\n"
p := NewParser(StringReader(testInput))
var err os.Error
for _, err = p.Token(); err == nil; _, err = p.Token() {
}
synerr, ok := err.(*SyntaxError)
if !ok {
t.Error("Expected SyntaxError.")
}
if synerr.Line != 3 {
t.Error("SyntaxError didn't have correct line number.")
}
}