| OLD | NEW |
| 1 # Copyright 2015 The Chromium Authors. All rights reserved. | 1 # Copyright 2015 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 # The first argument of this script should be the location of both | 5 # The first argument of this script should be the location of both |
| 6 # the generated mojom_files and mojom_types modules and their dependencies. | 6 # the generated mojom_files and mojom_types modules and their dependencies. |
| 7 | 7 |
| 8 def _FixPath(): | 8 def _FixPath(): |
| 9 import sys | 9 import sys |
| 10 # Importing mojom_files_mojom, mojom_types_mojom and mojom_translator | 10 # Importing mojom_files_mojom, mojom_types_mojom and mojom_translator |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 97 short_name='AnEnum', | 97 short_name='AnEnum', |
| 98 source_file_info=mojom_types_mojom.SourceFileInfo( | 98 source_file_info=mojom_types_mojom.SourceFileInfo( |
| 99 file_name=file_name))) | 99 file_name=file_name))) |
| 100 graph.resolved_types['enum_key'] = mojom_types_mojom.UserDefinedType( | 100 graph.resolved_types['enum_key'] = mojom_types_mojom.UserDefinedType( |
| 101 enum_type=mojom_enum) | 101 enum_type=mojom_enum) |
| 102 | 102 |
| 103 mojom_const = mojom_types_mojom.DeclaredConstant( | 103 mojom_const = mojom_types_mojom.DeclaredConstant( |
| 104 decl_data=mojom_types_mojom.DeclarationData(short_name='AConst'), | 104 decl_data=mojom_types_mojom.DeclarationData(short_name='AConst'), |
| 105 type=mojom_types_mojom.Type( | 105 type=mojom_types_mojom.Type( |
| 106 simple_type=mojom_types_mojom.SimpleType.INT64), | 106 simple_type=mojom_types_mojom.SimpleType.INT64), |
| 107 value=mojom_types_mojom.ConstantOccurrence( | 107 value=mojom_types_mojom.Value( |
| 108 value=mojom_types_mojom.ConstantValue( | 108 literal_value=mojom_types_mojom.LiteralValue( |
| 109 int64_value=30))) | 109 int64_value=30))) |
| 110 graph.resolved_constants = {'const_key': mojom_const} | 110 user_defined_value = mojom_types_mojom.UserDefinedValue() |
| 111 user_defined_value.declared_constant = mojom_const |
| 112 graph.resolved_values = {'value_key': user_defined_value} |
| 111 | 113 |
| 112 mojom_file.declared_mojom_objects = mojom_files_mojom.KeysByType( | 114 mojom_file.declared_mojom_objects = mojom_files_mojom.KeysByType( |
| 113 interfaces=['interface_key'], | 115 interfaces=['interface_key'], |
| 114 structs=['struct_key'], | 116 structs=['struct_key'], |
| 115 unions=['union_key'], | 117 unions=['union_key'], |
| 116 top_level_enums=['enum_key'], | 118 top_level_enums=['enum_key'], |
| 117 top_level_constants=['const_key'] | 119 top_level_constants=['value_key'] |
| 118 ) | 120 ) |
| 119 | 121 |
| 120 mod = mojom_translator.FileTranslator(graph, file_name).Translate() | 122 mod = mojom_translator.FileTranslator(graph, file_name).Translate() |
| 121 | 123 |
| 122 self.assertEquals('f.mojom', mod.name) | 124 self.assertEquals('f.mojom', mod.name) |
| 123 self.assertEquals(mojom_file.file_name, mod.path) | 125 self.assertEquals(mojom_file.file_name, mod.path) |
| 124 self.assertEquals(mojom_file.module_namespace, mod.namespace) | 126 self.assertEquals(mojom_file.module_namespace, mod.namespace) |
| 125 | 127 |
| 126 self.assertEquals('a.mojom', mod.imports[0]['module_name']) | 128 self.assertEquals('a.mojom', mod.imports[0]['module_name']) |
| 127 self.assertEquals(imported_file.module_namespace, | 129 self.assertEquals(imported_file.module_namespace, |
| (...skipping 24 matching lines...) Expand all Loading... |
| 152 decl_data=mojom_types_mojom.DeclarationData( | 154 decl_data=mojom_types_mojom.DeclarationData( |
| 153 short_name='field01', | 155 short_name='field01', |
| 154 declared_ordinal=5), | 156 declared_ordinal=5), |
| 155 type=mojom_types_mojom.Type( | 157 type=mojom_types_mojom.Type( |
| 156 simple_type=mojom_types_mojom.SimpleType.BOOL)), | 158 simple_type=mojom_types_mojom.SimpleType.BOOL)), |
| 157 mojom_types_mojom.StructField( | 159 mojom_types_mojom.StructField( |
| 158 decl_data=mojom_types_mojom.DeclarationData( | 160 decl_data=mojom_types_mojom.DeclarationData( |
| 159 short_name='field02'), | 161 short_name='field02'), |
| 160 type=mojom_types_mojom.Type( | 162 type=mojom_types_mojom.Type( |
| 161 simple_type=mojom_types_mojom.SimpleType.DOUBLE), | 163 simple_type=mojom_types_mojom.SimpleType.DOUBLE), |
| 162 default_value=mojom_types_mojom.ConstantOccurrence( | 164 default_value=mojom_types_mojom.DefaultFieldValue( |
| 163 value=mojom_types_mojom.ConstantValue(double_value=15))), | 165 value=mojom_types_mojom.Value( |
| 166 literal_value=mojom_types_mojom.LiteralValue(double_value=15)))), |
| 164 ] | 167 ] |
| 165 mojom_struct.decl_data.source_file_info = mojom_types_mojom.SourceFileInfo( | 168 mojom_struct.decl_data.source_file_info = mojom_types_mojom.SourceFileInfo( |
| 166 file_name=mojom_file.file_name) | 169 file_name=mojom_file.file_name) |
| 167 | 170 |
| 168 struct = module.Struct() | 171 struct = module.Struct() |
| 169 translator = mojom_translator.FileTranslator(graph, file_name) | 172 translator = mojom_translator.FileTranslator(graph, file_name) |
| 170 translator.StructFromMojom( | 173 translator.StructFromMojom( |
| 171 struct, mojom_types_mojom.UserDefinedType(struct_type=mojom_struct)) | 174 struct, mojom_types_mojom.UserDefinedType(struct_type=mojom_struct)) |
| 172 | 175 |
| 173 self.assertEquals('FirstStruct', struct.name) | 176 self.assertEquals('FirstStruct', struct.name) |
| (...skipping 11 matching lines...) Expand all Loading... |
| 185 self.assertEquals(15, struct.fields[1].default) | 188 self.assertEquals(15, struct.fields[1].default) |
| 186 | 189 |
| 187 def test_constant(self): | 190 def test_constant(self): |
| 188 graph = mojom_files_mojom.MojomFileGraph() | 191 graph = mojom_files_mojom.MojomFileGraph() |
| 189 | 192 |
| 190 mojom_const = mojom_types_mojom.DeclaredConstant() | 193 mojom_const = mojom_types_mojom.DeclaredConstant() |
| 191 mojom_const.decl_data = mojom_types_mojom.DeclarationData( | 194 mojom_const.decl_data = mojom_types_mojom.DeclarationData( |
| 192 short_name='foo') | 195 short_name='foo') |
| 193 mojom_const.type = mojom_types_mojom.Type( | 196 mojom_const.type = mojom_types_mojom.Type( |
| 194 simple_type=mojom_types_mojom.SimpleType.INT64) | 197 simple_type=mojom_types_mojom.SimpleType.INT64) |
| 195 mojom_const.value = mojom_types_mojom.ConstantOccurrence() | 198 mojom_const.value = mojom_types_mojom.Value() |
| 196 mojom_const.value.value = mojom_types_mojom.ConstantValue( | 199 mojom_const.value.literal_value = mojom_types_mojom.LiteralValue( |
| 197 int64_value=20) | 200 int64_value=20) |
| 198 | 201 |
| 199 struct = module.Struct() | 202 struct = module.Struct() |
| 200 const = mojom_translator.FileTranslator(graph, None).ConstFromMojom( | 203 const = mojom_translator.FileTranslator(graph, None).ConstFromMojom( |
| 201 mojom_const, struct) | 204 mojom_const, struct) |
| 202 | 205 |
| 203 self.assertEquals(mojom_const.decl_data.short_name, const.name) | 206 self.assertEquals(mojom_const.decl_data.short_name, const.name) |
| 204 self.assertEquals(module.INT64, const.kind) | 207 self.assertEquals(module.INT64, const.kind) |
| 205 self.assertEquals(20, const.value) | 208 self.assertEquals(20, const.value) |
| 206 self.assertEquals(struct, const.parent_kind) | 209 self.assertEquals(struct, const.parent_kind) |
| 207 | 210 |
| 208 def test_enum(self): | 211 def test_enum(self): |
| 209 file_name = 'a.mojom' | 212 file_name = 'a.mojom' |
| 210 mojom_enum = mojom_types_mojom.MojomEnum() | 213 mojom_enum = mojom_types_mojom.MojomEnum() |
| 211 mojom_enum.decl_data = mojom_types_mojom.DeclarationData( | 214 mojom_enum.decl_data = mojom_types_mojom.DeclarationData( |
| 212 short_name='AnEnum', | 215 short_name='AnEnum', |
| 213 source_file_info=mojom_types_mojom.SourceFileInfo(file_name=file_name)) | 216 source_file_info=mojom_types_mojom.SourceFileInfo(file_name=file_name)) |
| 214 value1 = mojom_types_mojom.EnumValue( | 217 value1 = mojom_types_mojom.EnumValue( |
| 215 decl_data=mojom_types_mojom.DeclarationData(short_name='val1'), | 218 decl_data=mojom_types_mojom.DeclarationData(short_name='val1'), |
| 216 value=mojom_types_mojom.ConstantOccurrence( | 219 enum_type_key='AnEnum', |
| 217 value=mojom_types_mojom.ConstantValue(int32_value=20))) | 220 int_value=20) |
| 218 value2 = mojom_types_mojom.EnumValue( | 221 value2 = mojom_types_mojom.EnumValue( |
| 219 decl_data=mojom_types_mojom.DeclarationData(short_name='val2'), | 222 decl_data=mojom_types_mojom.DeclarationData(short_name='val2'), |
| 220 value=mojom_types_mojom.ConstantOccurrence( | 223 enum_type_key='AnEnum', |
| 221 value=mojom_types_mojom.ConstantValue(int32_value=70))) | 224 int_value=70) |
| 222 mojom_enum.values = [value1, value2] | 225 mojom_enum.values = [value1, value2] |
| 223 | 226 |
| 224 | 227 |
| 225 graph = mojom_files_mojom.MojomFileGraph() | 228 graph = mojom_files_mojom.MojomFileGraph() |
| 226 enum = module.Enum() | 229 enum = module.Enum() |
| 227 translator = mojom_translator.FileTranslator(graph, file_name) | 230 translator = mojom_translator.FileTranslator(graph, file_name) |
| 228 translator.EnumFromMojom( | 231 translator.EnumFromMojom( |
| 229 enum, mojom_types_mojom.UserDefinedType(enum_type=mojom_enum), None) | 232 enum, mojom_types_mojom.UserDefinedType(enum_type=mojom_enum), None) |
| 230 | 233 |
| 231 self.assertEquals(translator._module, enum.module) | 234 self.assertEquals(translator._module, enum.module) |
| 232 self.assertEquals(mojom_enum.decl_data.short_name, enum.name) | 235 self.assertEquals(mojom_enum.decl_data.short_name, enum.name) |
| 233 self.assertEquals(len(mojom_enum.values), len(enum.fields)) | 236 self.assertEquals(len(mojom_enum.values), len(enum.fields)) |
| 234 | 237 |
| 235 self.assertEquals(value1.decl_data.short_name, enum.fields[0].name) | 238 self.assertEquals(value1.decl_data.short_name, enum.fields[0].name) |
| 236 self.assertEquals(value2.decl_data.short_name, enum.fields[1].name) | 239 self.assertEquals(value2.decl_data.short_name, enum.fields[1].name) |
| 237 | 240 |
| 238 self.assertEquals(value1.value.value.int32_value, enum.fields[0].value) | 241 self.assertEquals(value1.int_value, enum.fields[0].value) |
| 239 self.assertEquals(value2.value.value.int32_value, enum.fields[1].value) | 242 self.assertEquals(value2.int_value, enum.fields[1].value) |
| 240 | 243 |
| 241 self.assertEquals(value1.value.value.int32_value, | 244 self.assertEquals(value1.int_value, |
| 242 enum.fields[0].numeric_value) | 245 enum.fields[0].numeric_value) |
| 243 self.assertEquals(value2.value.value.int32_value, | 246 self.assertEquals(value2.int_value, |
| 244 enum.fields[1].numeric_value) | 247 enum.fields[1].numeric_value) |
| 245 | 248 |
| 246 def test_unions(self): | 249 def test_unions(self): |
| 247 file_name = 'a.mojom' | 250 file_name = 'a.mojom' |
| 248 mojom_union = mojom_types_mojom.MojomUnion() | 251 mojom_union = mojom_types_mojom.MojomUnion() |
| 249 mojom_union.decl_data = mojom_types_mojom.DeclarationData( | 252 mojom_union.decl_data = mojom_types_mojom.DeclarationData( |
| 250 short_name='AUnion', | 253 short_name='AUnion', |
| 251 source_file_info=mojom_types_mojom.SourceFileInfo(file_name=file_name)) | 254 source_file_info=mojom_types_mojom.SourceFileInfo(file_name=file_name)) |
| 252 | 255 |
| 253 field1 = mojom_types_mojom.UnionField( | 256 field1 = mojom_types_mojom.UnionField( |
| (...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 418 param1.decl_data.short_name, method.response_parameters[0].name) | 421 param1.decl_data.short_name, method.response_parameters[0].name) |
| 419 | 422 |
| 420 def test_parameter(self): | 423 def test_parameter(self): |
| 421 # Parameters are encoded as fields in a struct. | 424 # Parameters are encoded as fields in a struct. |
| 422 mojom_param = mojom_types_mojom.StructField( | 425 mojom_param = mojom_types_mojom.StructField( |
| 423 decl_data=mojom_types_mojom.DeclarationData( | 426 decl_data=mojom_types_mojom.DeclarationData( |
| 424 short_name='param0', | 427 short_name='param0', |
| 425 declared_ordinal=5), | 428 declared_ordinal=5), |
| 426 type=mojom_types_mojom.Type( | 429 type=mojom_types_mojom.Type( |
| 427 simple_type=mojom_types_mojom.SimpleType.UINT64), | 430 simple_type=mojom_types_mojom.SimpleType.UINT64), |
| 428 default_value=mojom_types_mojom.ConstantOccurrence( | 431 default_value=mojom_types_mojom.Value( |
| 429 value=mojom_types_mojom.ConstantValue(uint64_value=20))) | 432 literal_value=mojom_types_mojom.LiteralValue(uint64_value=20))) |
| 430 | 433 |
| 431 graph = mojom_files_mojom.MojomFileGraph() | 434 graph = mojom_files_mojom.MojomFileGraph() |
| 432 translator = mojom_translator.FileTranslator(graph, '') | 435 translator = mojom_translator.FileTranslator(graph, '') |
| 433 param = translator.ParamFromMojom(mojom_param) | 436 param = translator.ParamFromMojom(mojom_param) |
| 434 | 437 |
| 435 self.assertEquals(mojom_param.decl_data.short_name, param.name) | 438 self.assertEquals(mojom_param.decl_data.short_name, param.name) |
| 436 self.assertEquals(module.UINT64, param.kind) | 439 self.assertEquals(module.UINT64, param.kind) |
| 437 self.assertEquals(mojom_param.decl_data.declared_ordinal, param.ordinal) | 440 self.assertEquals(mojom_param.decl_data.declared_ordinal, param.ordinal) |
| 438 self.assertEquals( | |
| 439 mojom_param.default_value.value.uint64_value, param.default) | |
| 440 | 441 |
| 441 | 442 |
| 442 class TestEvalConst(unittest.TestCase): | 443 class TestEvalValue(unittest.TestCase): |
| 443 | 444 |
| 444 def test_resolved_simple(self): | 445 def test_literal_value(self): |
| 445 mojom = mojom_types_mojom.ConstantOccurrence() | 446 mojom = mojom_types_mojom.Value() |
| 446 mojom.value = mojom_types_mojom.ConstantValue(int64_value=20) | 447 mojom.literal_value = mojom_types_mojom.LiteralValue(int64_value=20) |
| 447 | 448 |
| 448 graph = mojom_files_mojom.MojomFileGraph() | 449 graph = mojom_files_mojom.MojomFileGraph() |
| 449 const = mojom_translator.FileTranslator(graph, None).EvalConst(mojom) | 450 const = mojom_translator.FileTranslator(graph, None).EvalValue(mojom) |
| 450 | 451 |
| 451 self.assertEquals(20, const) | 452 self.assertEquals(20, const) |
| 452 | 453 |
| 453 def test_resolved_enum(self): | 454 def test_resolved_user_defined_values(self): |
| 454 # TODO(azani): Handle resolved enums. | 455 # TODO(azani): Write this. |
| 455 pass | 456 pass |
| 456 | 457 |
| 457 def test_builtin_const(self): | 458 def test_builtin_const(self): |
| 458 mojom = mojom_types_mojom.ConstantOccurrence() | 459 mojom = mojom_types_mojom.Value() |
| 459 mojom.value = mojom_types_mojom.ConstantValue() | |
| 460 | 460 |
| 461 graph = mojom_files_mojom.MojomFileGraph() | 461 graph = mojom_files_mojom.MojomFileGraph() |
| 462 | 462 |
| 463 gold = [ | 463 gold = [ |
| 464 (mojom_types_mojom.BuiltinConstantValue.DOUBLE_INFINITY, | 464 (mojom_types_mojom.BuiltinConstantValue.DOUBLE_INFINITY, |
| 465 'double.INFINITY'), | 465 'double.INFINITY'), |
| 466 (mojom_types_mojom.BuiltinConstantValue.DOUBLE_NEGATIVE_INFINITY, | 466 (mojom_types_mojom.BuiltinConstantValue.DOUBLE_NEGATIVE_INFINITY, |
| 467 'double.NEGATIVE_INFINITY'), | 467 'double.NEGATIVE_INFINITY'), |
| 468 (mojom_types_mojom.BuiltinConstantValue.DOUBLE_NAN, | 468 (mojom_types_mojom.BuiltinConstantValue.DOUBLE_NAN, |
| 469 'double.DOUBLE_NAN'), | 469 'double.DOUBLE_NAN'), |
| 470 (mojom_types_mojom.BuiltinConstantValue.FLOAT_INFINITY, | 470 (mojom_types_mojom.BuiltinConstantValue.FLOAT_INFINITY, |
| 471 'float.INFINITY'), | 471 'float.INFINITY'), |
| 472 (mojom_types_mojom.BuiltinConstantValue.FLOAT_NEGATIVE_INFINITY, | 472 (mojom_types_mojom.BuiltinConstantValue.FLOAT_NEGATIVE_INFINITY, |
| 473 'float.NEGATIVE_INFINITY'), | 473 'float.NEGATIVE_INFINITY'), |
| 474 (mojom_types_mojom.BuiltinConstantValue.FLOAT_NAN, 'float.NAN'), | 474 (mojom_types_mojom.BuiltinConstantValue.FLOAT_NAN, 'float.NAN'), |
| 475 ] | 475 ] |
| 476 | 476 |
| 477 for mojom_builtin, string in gold: | 477 for mojom_builtin, string in gold: |
| 478 mojom.value.builtin_value = mojom_builtin | 478 mojom.builtin_value = mojom_builtin |
| 479 const = mojom_translator.FileTranslator(graph, None).EvalConst(mojom) | 479 const = mojom_translator.FileTranslator(graph, None).EvalValue(mojom) |
| 480 self.assertIsInstance(const, module.BuiltinValue) | 480 self.assertIsInstance(const, module.BuiltinValue) |
| 481 self.assertEquals(string, const.value) | 481 self.assertEquals(string, const.value) |
| 482 | 482 |
| 483 | 483 |
| 484 | 484 |
| 485 | 485 |
| 486 # TODO(azani): Set the path of modules correctly. | 486 # TODO(azani): Set the path of modules correctly. |
| 487 | 487 |
| 488 class TestKindFromMojom(unittest.TestCase): | 488 class TestKindFromMojom(unittest.TestCase): |
| 489 | 489 |
| (...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 638 result2 = t.KindFromMojom(mojom_type) | 638 result2 = t.KindFromMojom(mojom_type) |
| 639 self.assertIs(result, result2) | 639 self.assertIs(result, result2) |
| 640 | 640 |
| 641 # Nullable type reference | 641 # Nullable type reference |
| 642 mojom_type.type_reference.nullable = True | 642 mojom_type.type_reference.nullable = True |
| 643 nullable_result = t.KindFromMojom(mojom_type) | 643 nullable_result = t.KindFromMojom(mojom_type) |
| 644 self.assertTrue(module.IsNullableKind(nullable_result)) | 644 self.assertTrue(module.IsNullableKind(nullable_result)) |
| 645 | 645 |
| 646 if __name__ == '__main__': | 646 if __name__ == '__main__': |
| 647 unittest.main() | 647 unittest.main() |
| OLD | NEW |