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

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

Issue 814543006: Move //mojo/{public, edk} underneath //third_party (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 5 years, 11 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
OLDNEW
(Empty)
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
3 # found in the LICENSE file.
4
5 import imp
6 import os.path
7 import sys
8 import unittest
9
10 def _GetDirAbove(dirname):
11 """Returns the directory "above" this file containing |dirname| (which must
12 also be "above" this file)."""
13 path = os.path.abspath(__file__)
14 while True:
15 path, tail = os.path.split(path)
16 assert tail
17 if tail == dirname:
18 return path
19
20 try:
21 imp.find_module("mojom")
22 except ImportError:
23 sys.path.append(os.path.join(_GetDirAbove("pylib"), "pylib"))
24 from mojom.parse import ast
25 from mojom.parse import translate
26
27
28 class TranslateTest(unittest.TestCase):
29 """Tests |parser.Parse()|."""
30
31 def testSimpleArray(self):
32 """Tests a simple int32[]."""
33 # pylint: disable=W0212
34 self.assertEquals(translate._MapKind("int32[]"), "a:i32")
35
36 def testAssociativeArray(self):
37 """Tests a simple uint8{string}."""
38 # pylint: disable=W0212
39 self.assertEquals(translate._MapKind("uint8{string}"), "m[s][u8]")
40
41 def testLeftToRightAssociativeArray(self):
42 """Makes sure that parsing is done from right to left on the internal kinds
43 in the presence of an associative array."""
44 # pylint: disable=W0212
45 self.assertEquals(translate._MapKind("uint8[]{string}"), "m[s][a:u8]")
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
64 if __name__ == "__main__":
65 unittest.main()
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698