Source code

Revision control

Copy as Markdown

Other Tools

import WebIDL
def WebIDLTest(parser, harness):
# Check that error messages put the '^' in the right place.
threw = False
input = """\
// This is a comment.
interface Foo {
};
/* This is also a comment. */
interface ?"""
try:
parser.parse(input)
parser.finish()
except WebIDL.WebIDLError as e:
threw = True
lines = str(e).split("\n")
harness.check(len(lines), 3, "Expected number of lines in error message")
harness.ok(
lines[0].endswith("line 6:10"),
'First line of error should end with "line 6:10", but was "%s".' % lines[0],
)
harness.check(
lines[1],
"interface ?",
"Second line of error message is the line which caused the error.",
)
harness.check(
lines[2],
" " * (len("interface ?") - 1) + "^",
"Correct column pointer in error message.",
)
harness.ok(threw, "Should have thrown.")