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

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

Issue 799113004: Update mojo sdk to rev 59145288bae55b0fce4276b017df6a1117bcf00f (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add mojo's ply to checklicenses whitelist Created 6 years 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
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 def _GetDirAbove(dirname): 10 def _GetDirAbove(dirname):
11 """Returns the directory "above" this file containing |dirname| (which must 11 """Returns the directory "above" this file containing |dirname| (which must
12 also be "above" this file).""" 12 also be "above" this file)."""
13 path = os.path.abspath(__file__) 13 path = os.path.abspath(__file__)
14 while True: 14 while True:
15 path, tail = os.path.split(path) 15 path, tail = os.path.split(path)
16 assert tail 16 assert tail
17 if tail == dirname: 17 if tail == dirname:
18 return path 18 return path
19 19
20 try: 20 try:
21 imp.find_module("mojom") 21 imp.find_module("mojom")
22 except ImportError: 22 except ImportError:
23 sys.path.append(os.path.join(_GetDirAbove("pylib"), "pylib")) 23 sys.path.append(os.path.join(_GetDirAbove("pylib"), "pylib"))
24 import mojom.parse.translate as translate 24 from mojom.parse import ast
25 from mojom.parse import translate
25 26
26 27
27 class TranslateTest(unittest.TestCase): 28 class TranslateTest(unittest.TestCase):
28 """Tests |parser.Parse()|.""" 29 """Tests |parser.Parse()|."""
29 30
30 def testSimpleArray(self): 31 def testSimpleArray(self):
31 """Tests a simple int32[].""" 32 """Tests a simple int32[]."""
32 # pylint: disable=W0212 33 # pylint: disable=W0212
33 self.assertEquals(translate._MapKind("int32[]"), "a:i32") 34 self.assertEquals(translate._MapKind("int32[]"), "a:i32")
34 35
35 def testAssociativeArray(self): 36 def testAssociativeArray(self):
36 """Tests a simple uint8{string}.""" 37 """Tests a simple uint8{string}."""
37 # pylint: disable=W0212 38 # pylint: disable=W0212
38 self.assertEquals(translate._MapKind("uint8{string}"), "m[s][u8]") 39 self.assertEquals(translate._MapKind("uint8{string}"), "m[s][u8]")
39 40
40 def testLeftToRightAssociativeArray(self): 41 def testLeftToRightAssociativeArray(self):
41 """Makes sure that parsing is done from right to left on the internal kinds 42 """Makes sure that parsing is done from right to left on the internal kinds
42 in the presence of an associative array.""" 43 in the presence of an associative array."""
43 # pylint: disable=W0212 44 # pylint: disable=W0212
44 self.assertEquals(translate._MapKind("uint8[]{string}"), "m[s][a:u8]") 45 self.assertEquals(translate._MapKind("uint8[]{string}"), "m[s][a:u8]")
45 46
47 def testTranslateSimpleUnions(self):
48 """Makes sure that a simple union is translated correctly."""
49 tree = ast.Mojom(
50 None,
51 ast.ImportList(),
52 [ast.Union("SomeUnion", ast.UnionBody(
53 [ast.UnionField("a", None, "int32"),
54 ast.UnionField("b", None, "string")]))])
55 expected = [{
56 "name": "SomeUnion",
57 "fields": [
58 {"kind": "i32", "name": "a", "ordinal": None},
59 {"kind": "s", "name": "b", "ordinal": None}]}]
60 actual = translate.Translate(tree, "mojom_tree")
61 self.assertEquals(actual["union"], expected)
62
63
46 if __name__ == "__main__": 64 if __name__ == "__main__":
47 unittest.main() 65 unittest.main()
OLDNEW
« no previous file with comments | « mojo/public/tools/bindings/pylib/mojom_tests/parse/parser_unittest.py ('k') | mojo/services/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698