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

Side by Side Diff: mojo/python/tests/bindings_structs_unittest.py

Issue 548343005: mojo: Specialize native type arrays. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Follow review Created 6 years, 3 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
« no previous file with comments | « mojo/public/tools/bindings/generators/mojom_python_generator.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 math 5 import math
6 import unittest 6 import unittest
7 7
8 # pylint: disable=F0401 8 # pylint: disable=F0401
9 import mojo.system 9 import mojo.system
10 10
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 77
78 def _TestIntegerField(self, entity, field_name, bits, signed): 78 def _TestIntegerField(self, entity, field_name, bits, signed):
79 if signed: 79 if signed:
80 min_value = -(1 << (bits - 1)) 80 min_value = -(1 << (bits - 1))
81 max_value = (1 << (bits - 1)) - 1 81 max_value = (1 << (bits - 1)) - 1
82 else: 82 else:
83 min_value = 0 83 min_value = 0
84 max_value = (1 << bits) - 1 84 max_value = (1 << bits) - 1
85 entity.__setattr__(field_name, min_value) 85 entity.__setattr__(field_name, min_value)
86 entity.__setattr__(field_name, max_value) 86 entity.__setattr__(field_name, max_value)
87 with self.assertRaises(ValueError): 87 with self.assertRaises(TypeError):
88 entity.__setattr__(field_name, None) 88 entity.__setattr__(field_name, None)
89 with self.assertRaises(ValueError): 89 with self.assertRaises(OverflowError):
90 entity.__setattr__(field_name, min_value - 1) 90 entity.__setattr__(field_name, min_value - 1)
91 with self.assertRaises(ValueError): 91 with self.assertRaises(OverflowError):
92 entity.__setattr__(field_name, max_value + 1) 92 entity.__setattr__(field_name, max_value + 1)
93 with self.assertRaises(ValueError): 93 with self.assertRaises(TypeError):
94 entity.__setattr__(field_name, 'hello world') 94 entity.__setattr__(field_name, 'hello world')
95 95
96 def testTypes(self): 96 def testTypes(self):
97 defaults_test = sample_service_mojom.DefaultsTest() 97 defaults_test = sample_service_mojom.DefaultsTest()
98 # Integer types 98 # Integer types
99 self._TestIntegerField(defaults_test, 'a0', 8, True) 99 self._TestIntegerField(defaults_test, 'a0', 8, True)
100 self._TestIntegerField(defaults_test, 'a1', 8, False) 100 self._TestIntegerField(defaults_test, 'a1', 8, False)
101 self._TestIntegerField(defaults_test, 'a2', 16, True) 101 self._TestIntegerField(defaults_test, 'a2', 16, True)
102 self._TestIntegerField(defaults_test, 'a3', 16, False) 102 self._TestIntegerField(defaults_test, 'a3', 16, False)
103 self._TestIntegerField(defaults_test, 'a4', 32, True) 103 self._TestIntegerField(defaults_test, 'a4', 32, True)
104 self._TestIntegerField(defaults_test, 'a5', 32, False) 104 self._TestIntegerField(defaults_test, 'a5', 32, False)
105 self._TestIntegerField(defaults_test, 'a6', 64, True) 105 self._TestIntegerField(defaults_test, 'a6', 64, True)
106 self._TestIntegerField(defaults_test, 'a7', 64, False) 106 self._TestIntegerField(defaults_test, 'a7', 64, False)
107 107
108 # Boolean types 108 # Boolean types
109 defaults_test.a11 = False 109 defaults_test.a11 = False
110 self.assertEquals(defaults_test.a11, False) 110 self.assertEquals(defaults_test.a11, False)
111 defaults_test.a11 = None 111 defaults_test.a11 = None
112 self.assertEquals(defaults_test.a11, False) 112 self.assertEquals(defaults_test.a11, False)
113 defaults_test.a11 = [] 113 defaults_test.a11 = []
114 self.assertEquals(defaults_test.a11, False) 114 self.assertEquals(defaults_test.a11, False)
115 defaults_test.a12 = True 115 defaults_test.a12 = True
116 self.assertEquals(defaults_test.a12, True) 116 self.assertEquals(defaults_test.a12, True)
117 defaults_test.a12 = 1 117 defaults_test.a12 = 1
118 self.assertEquals(defaults_test.a12, True) 118 self.assertEquals(defaults_test.a12, True)
119 defaults_test.a12 = [[]] 119 defaults_test.a12 = [[]]
120 self.assertEquals(defaults_test.a12, True) 120 self.assertEquals(defaults_test.a12, True)
121 121
122 # Floating point types 122 # Floating point types
123 with self.assertRaises(ValueError): 123 with self.assertRaises(TypeError):
124 defaults_test.a13 = 'hello' 124 defaults_test.a13 = 'hello'
125 with self.assertRaises(ValueError): 125 with self.assertRaises(TypeError):
126 defaults_test.a14 = 'hello' 126 defaults_test.a14 = 'hello'
127 127
128 # Array type 128 # Array type
129 defaults_test.a18 = None 129 defaults_test.a18 = None
130 defaults_test.a18 = [] 130 defaults_test.a18 = []
131 defaults_test.a18 = [ 0 ] 131 defaults_test.a18 = [ 0 ]
132 defaults_test.a18 = [ 255 ] 132 defaults_test.a18 = [ 255 ]
133 defaults_test.a18 = [ 0, 255 ] 133 defaults_test.a18 = [ 0, 255 ]
134 with self.assertRaises(ValueError): 134 with self.assertRaises(TypeError):
135 defaults_test.a18 = [[]] 135 defaults_test.a18 = [[]]
136 with self.assertRaises(ValueError): 136 with self.assertRaises(OverflowError):
137 defaults_test.a18 = [ -1 ] 137 defaults_test.a18 = [ -1 ]
138 with self.assertRaises(ValueError): 138 with self.assertRaises(OverflowError):
139 defaults_test.a18 = [ 256 ] 139 defaults_test.a18 = [ 256 ]
140 140
141 # String type 141 # String type
142 defaults_test.a19 = None 142 defaults_test.a19 = None
143 defaults_test.a19 = '' 143 defaults_test.a19 = ''
144 defaults_test.a19 = 'hello world' 144 defaults_test.a19 = 'hello world'
145 with self.assertRaises(ValueError): 145 with self.assertRaises(TypeError):
146 defaults_test.a19 = [[]] 146 defaults_test.a19 = [[]]
147 with self.assertRaises(ValueError): 147 with self.assertRaises(TypeError):
148 defaults_test.a19 = [ -1 ] 148 defaults_test.a19 = [ -1 ]
149 with self.assertRaises(ValueError): 149 with self.assertRaises(TypeError):
150 defaults_test.a19 = [ 256 ] 150 defaults_test.a19 = [ 256 ]
151 151
152 # Structs 152 # Structs
153 defaults_test.a21 = None 153 defaults_test.a21 = None
154 defaults_test.a21 = sample_import_mojom.Point() 154 defaults_test.a21 = sample_import_mojom.Point()
155 with self.assertRaises(ValueError): 155 with self.assertRaises(TypeError):
156 defaults_test.a21 = 1 156 defaults_test.a21 = 1
157 with self.assertRaises(ValueError): 157 with self.assertRaises(TypeError):
158 defaults_test.a21 = sample_import2_mojom.Thing() 158 defaults_test.a21 = sample_import2_mojom.Thing()
159 159
160 # Handles 160 # Handles
161 foo_instance = sample_service_mojom.Foo() 161 foo_instance = sample_service_mojom.Foo()
162 foo_instance.source = None 162 foo_instance.source = None
163 foo_instance.source = mojo.system.Handle() 163 foo_instance.source = mojo.system.Handle()
164 with self.assertRaises(ValueError): 164 with self.assertRaises(TypeError):
165 foo_instance.source = 1 165 foo_instance.source = 1
166 with self.assertRaises(ValueError): 166 with self.assertRaises(TypeError):
167 foo_instance.source = object() 167 foo_instance.source = object()
168 168
169 def testConstructor(self): 169 def testConstructor(self):
170 bar_instance = sample_service_mojom.Bar() 170 bar_instance = sample_service_mojom.Bar()
171 foo_instance = sample_service_mojom.Foo(name="Foo", 171 foo_instance = sample_service_mojom.Foo(name="Foo",
172 x=-1, 172 x=-1,
173 y=5, 173 y=5,
174 a=False, 174 a=False,
175 bar=bar_instance) 175 bar=bar_instance)
176 self.assertEquals(foo_instance.name, "Foo") 176 self.assertEquals(foo_instance.name, "Foo")
177 self.assertEquals(foo_instance.x, -1) 177 self.assertEquals(foo_instance.x, -1)
178 self.assertEquals(foo_instance.y, 5) 178 self.assertEquals(foo_instance.y, 5)
179 self.assertEquals(foo_instance.a, False) 179 self.assertEquals(foo_instance.a, False)
180 self.assertEquals(foo_instance.bar, bar_instance) 180 self.assertEquals(foo_instance.bar, bar_instance)
181 181
OLDNEW
« no previous file with comments | « mojo/public/tools/bindings/generators/mojom_python_generator.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698