Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(148)

Side by Side Diff: mojo/public/tools/bindings/pylib/mojom_tests/parse/parser_unittest.py

Issue 293053011: Mojo: Mojom: Fix line number tracking when there are comments. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « mojo/public/tools/bindings/pylib/mojom/parse/lexer.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2014 The Chromium Authors. All rights reserved. 1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import imp 5 import imp
6 import os.path 6 import os.path
7 import sys 7 import sys
8 import unittest 8 import unittest
9 9
10 # Disable lint check for finding modules: 10 # Disable lint check for finding modules:
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 source = """\ 54 source = """\
55 // This is a comment. 55 // This is a comment.
56 56
57 module my_module { 57 module my_module {
58 """ 58 """
59 with self.assertRaisesRegexp( 59 with self.assertRaisesRegexp(
60 parser.ParseError, 60 parser.ParseError,
61 r"^my_file\.mojom: Error: Unexpected end of file$"): 61 r"^my_file\.mojom: Error: Unexpected end of file$"):
62 parser.Parse(source, "my_file.mojom") 62 parser.Parse(source, "my_file.mojom")
63 63
64 def testCommentLineNumbers(self):
65 """Tests that line numbers are correctly tracked when comments are
66 present."""
67 source1 = """\
68 // Isolated C++-style comments.
69
70 // Foo.
71 asdf1
72 """
73 with self.assertRaisesRegexp(
74 parser.ParseError,
75 r"^my_file\.mojom:4: Error: Unexpected 'asdf1':\nasdf1$"):
76 parser.Parse(source1, "my_file.mojom")
77
78 source2 = """\
79 // Consecutive C++-style comments.
80 // Foo.
81 // Bar.
82
83 struct Yada { // Baz.
84 // Quux.
85 int32 x;
86 };
87
88 asdf2
89 """
90 with self.assertRaisesRegexp(
91 parser.ParseError,
92 r"^my_file\.mojom:10: Error: Unexpected 'asdf2':\nasdf2$"):
93 parser.Parse(source2, "my_file.mojom")
94
95 source3 = """\
96 /* Single-line C-style comments. */
97 /* Foobar. */
98
99 /* Baz. */
100 asdf3
101 """
102 with self.assertRaisesRegexp(
103 parser.ParseError,
104 r"^my_file\.mojom:5: Error: Unexpected 'asdf3':\nasdf3$"):
105 parser.Parse(source3, "my_file.mojom")
106
107 source4 = """\
108 /* Multi-line C-style comments.
109 */
110 /*
111 Foo.
112 Bar.
113 */
114
115 /* Baz
116 Quux. */
117 asdf4
118 """
119 with self.assertRaisesRegexp(
120 parser.ParseError,
121 r"^my_file\.mojom:10: Error: Unexpected 'asdf4':\nasdf4$"):
122 parser.Parse(source4, "my_file.mojom")
123
124
64 def testSimpleStruct(self): 125 def testSimpleStruct(self):
65 """Tests a simple .mojom source that just defines a struct.""" 126 """Tests a simple .mojom source that just defines a struct."""
66 source = """\ 127 source = """\
67 module my_module { 128 module my_module {
68 129
69 struct MyStruct { 130 struct MyStruct {
70 int32 a; 131 int32 a;
71 double b; 132 double b;
72 }; 133 };
73 134
(...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after
368 with self.assertRaisesRegexp( 429 with self.assertRaisesRegexp(
369 parser.ParseError, 430 parser.ParseError,
370 r"^my_file\.mojom:2: Error: " 431 r"^my_file\.mojom:2: Error: "
371 r"Invalid handle type 'wtf_is_this':\n" 432 r"Invalid handle type 'wtf_is_this':\n"
372 r" handle<wtf_is_this> foo;$"): 433 r" handle<wtf_is_this> foo;$"):
373 parser.Parse(source, "my_file.mojom") 434 parser.Parse(source, "my_file.mojom")
374 435
375 436
376 if __name__ == "__main__": 437 if __name__ == "__main__":
377 unittest.main() 438 unittest.main()
OLDNEW
« no previous file with comments | « mojo/public/tools/bindings/pylib/mojom/parse/lexer.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698