| Index: mojo/public/tools/bindings/pylib/mojom_tests/parse/parser_unittest.py
|
| diff --git a/mojo/public/tools/bindings/pylib/mojom_tests/parse/parser_unittest.py b/mojo/public/tools/bindings/pylib/mojom_tests/parse/parser_unittest.py
|
| index 2ee83cdd14eba49589d8e7a032f1b5a9d76e43d1..ee4d9bdf2abad84a7c9978cef9ceaff107bdf61e 100644
|
| --- a/mojo/public/tools/bindings/pylib/mojom_tests/parse/parser_unittest.py
|
| +++ b/mojo/public/tools/bindings/pylib/mojom_tests/parse/parser_unittest.py
|
| @@ -433,6 +433,75 @@ struct MyStruct {
|
| r" handle<wtf_is_this> foo;$"):
|
| parser.Parse(source, "my_file.mojom")
|
|
|
| + def testValidDefaultValues(self):
|
| + """Tests default values that are valid (to the parser)."""
|
| + source = """\
|
| +struct MyStruct {
|
| + int16 a0 = 0;
|
| + uint16 a1 = 0x0;
|
| + uint16 a2 = 0x00;
|
| + uint16 a3 = 0x01;
|
| + uint16 a4 = 0xcd;
|
| + int32 a5 = 12345;
|
| + int64 a6 = -12345;
|
| + int64 a7 = +12345;
|
| + uint32 a8 = 0x12cd3;
|
| + uint32 a9 = -0x12cD3;
|
| + uint32 a10 = +0x12CD3;
|
| + bool a11 = true;
|
| + bool a12 = false;
|
| + float a13 = 1.2345;
|
| + float a14 = -1.2345;
|
| + float a15 = +1.2345;
|
| + float a16 = 123.;
|
| + float a17 = .123;
|
| + double a18 = 1.23E10;
|
| + double a19 = 1.E-10;
|
| + double a20 = .5E+10;
|
| + double a21 = -1.23E10;
|
| + double a22 = +.123E10;
|
| +};
|
| +"""
|
| + expected = \
|
| +[('MODULE',
|
| + '',
|
| + None,
|
| + [('STRUCT',
|
| + 'MyStruct',
|
| + None,
|
| + [('FIELD', 'int16', 'a0', ast.Ordinal(None), ('EXPRESSION', ['0'])),
|
| + ('FIELD', 'uint16', 'a1', ast.Ordinal(None), ('EXPRESSION', ['0x0'])),
|
| + ('FIELD', 'uint16', 'a2', ast.Ordinal(None), ('EXPRESSION', ['0x00'])),
|
| + ('FIELD', 'uint16', 'a3', ast.Ordinal(None), ('EXPRESSION', ['0x01'])),
|
| + ('FIELD', 'uint16', 'a4', ast.Ordinal(None), ('EXPRESSION', ['0xcd'])),
|
| + ('FIELD', 'int32', 'a5', ast.Ordinal(None), ('EXPRESSION', ['12345'])),
|
| + ('FIELD', 'int64', 'a6', ast.Ordinal(None),
|
| + ('EXPRESSION', ['-', ('EXPRESSION', ['12345'])])),
|
| + ('FIELD', 'int64', 'a7', ast.Ordinal(None),
|
| + ('EXPRESSION', ['+', ('EXPRESSION', ['12345'])])),
|
| + ('FIELD', 'uint32', 'a8', ast.Ordinal(None), ('EXPRESSION', ['0x12cd3'])),
|
| + ('FIELD', 'uint32', 'a9', ast.Ordinal(None),
|
| + ('EXPRESSION', ['-', ('EXPRESSION', ['0x12cD3'])])),
|
| + ('FIELD', 'uint32', 'a10', ast.Ordinal(None),
|
| + ('EXPRESSION', ['+', ('EXPRESSION', ['0x12CD3'])])),
|
| + ('FIELD', 'bool', 'a11', ast.Ordinal(None), ('EXPRESSION', ['true'])),
|
| + ('FIELD', 'bool', 'a12', ast.Ordinal(None), ('EXPRESSION', ['false'])),
|
| + ('FIELD', 'float', 'a13', ast.Ordinal(None), ('EXPRESSION', ['1.2345'])),
|
| + ('FIELD', 'float', 'a14', ast.Ordinal(None),
|
| + ('EXPRESSION', ['-', ('EXPRESSION', ['1.2345'])])),
|
| + ('FIELD', 'float', 'a15', ast.Ordinal(None),
|
| + ('EXPRESSION', ['+', ('EXPRESSION', ['1.2345'])])),
|
| + ('FIELD', 'float', 'a16', ast.Ordinal(None), ('EXPRESSION', ['123.'])),
|
| + ('FIELD', 'float', 'a17', ast.Ordinal(None), ('EXPRESSION', ['.123'])),
|
| + ('FIELD', 'double', 'a18', ast.Ordinal(None), ('EXPRESSION', ['1.23E10'])),
|
| + ('FIELD', 'double', 'a19', ast.Ordinal(None), ('EXPRESSION', ['1.E-10'])),
|
| + ('FIELD', 'double', 'a20', ast.Ordinal(None), ('EXPRESSION', ['.5E+10'])),
|
| + ('FIELD', 'double', 'a21', ast.Ordinal(None),
|
| + ('EXPRESSION', ['-', ('EXPRESSION', ['1.23E10'])])),
|
| + ('FIELD', 'double', 'a22', ast.Ordinal(None),
|
| + ('EXPRESSION', ['+', ('EXPRESSION', ['.123E10'])]))])])]
|
| + self.assertEquals(parser.Parse(source, "my_file.mojom"), expected)
|
| +
|
|
|
| if __name__ == "__main__":
|
| unittest.main()
|
|
|