|
1 import WebIDL |
|
2 |
|
3 def WebIDLTest(parser, harness): |
|
4 # Check that error messages put the '^' in the right place. |
|
5 |
|
6 threw = False |
|
7 input = """\ |
|
8 // This is a comment. |
|
9 interface Foo { |
|
10 }; |
|
11 |
|
12 /* This is also a comment. */ |
|
13 interface ?""" |
|
14 try: |
|
15 parser.parse(input) |
|
16 results = parser.finish() |
|
17 except WebIDL.WebIDLError, e: |
|
18 threw = True |
|
19 lines = str(e).split('\n') |
|
20 |
|
21 harness.check(len(lines), 3, 'Expected number of lines in error message') |
|
22 harness.ok(lines[0].endswith('line 6:10'), 'First line of error should end with "line 6:10", but was "%s".' % lines[0]) |
|
23 harness.check(lines[1], 'interface ?', 'Second line of error message is the line which caused the error.') |
|
24 harness.check(lines[2], ' ' * (len('interface ?') - 1) + '^', |
|
25 'Correct column pointer in error message.') |
|
26 |
|
27 harness.ok(threw, "Should have thrown.") |
|
28 |