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