38 lines
1,004 B
Python
38 lines
1,004 B
Python
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.")
|