| Index: third_party/mojo/src/mojo/public/tools/bindings/pylib/mojom_tests/generate/pack_unittest.py
|
| diff --git a/third_party/mojo/src/mojo/public/tools/bindings/pylib/mojom_tests/generate/pack_unittest.py b/third_party/mojo/src/mojo/public/tools/bindings/pylib/mojom_tests/generate/pack_unittest.py
|
| index 329e242a7e9aa3cab612096772d7cba2ee6640ad..c1400035fafbcaa6801d6f0137b03d8a377a2caa 100644
|
| --- a/third_party/mojo/src/mojo/public/tools/bindings/pylib/mojom_tests/generate/pack_unittest.py
|
| +++ b/third_party/mojo/src/mojo/public/tools/bindings/pylib/mojom_tests/generate/pack_unittest.py
|
| @@ -52,3 +52,45 @@ class PackTest(unittest.TestCase):
|
| self.assertEquals(0, ps.packed_fields[0].min_version)
|
| self.assertEquals(1, ps.packed_fields[1].min_version)
|
| self.assertEquals(0, ps.packed_fields[2].min_version)
|
| +
|
| + def testGetVersionInfoEmptyStruct(self):
|
| + """Tests that pack.GetVersionInfo() never returns an empty list, even for
|
| + empty structs.
|
| + """
|
| + struct = mojom.Struct('test')
|
| + ps = pack.PackedStruct(struct)
|
| +
|
| + versions = pack.GetVersionInfo(ps)
|
| + self.assertEquals(1, len(versions))
|
| + self.assertEquals(0, versions[0].version)
|
| + self.assertEquals(0, versions[0].num_fields)
|
| + self.assertEquals(8, versions[0].num_bytes)
|
| +
|
| + def testGetVersionInfoComplexOrder(self):
|
| + """Tests pack.GetVersionInfo() using a struct whose definition order,
|
| + ordinal order and pack order for fields are all different.
|
| + """
|
| + struct = mojom.Struct('test')
|
| + struct.AddField('field_3', mojom.BOOL, ordinal=3,
|
| + attributes={'MinVersion': 3})
|
| + struct.AddField('field_0', mojom.INT32, ordinal=0)
|
| + struct.AddField('field_1', mojom.INT64, ordinal=1,
|
| + attributes={'MinVersion': 2})
|
| + struct.AddField('field_2', mojom.INT64, ordinal=2,
|
| + attributes={'MinVersion': 3})
|
| + ps = pack.PackedStruct(struct)
|
| +
|
| + versions = pack.GetVersionInfo(ps)
|
| + self.assertEquals(3, len(versions))
|
| +
|
| + self.assertEquals(0, versions[0].version)
|
| + self.assertEquals(1, versions[0].num_fields)
|
| + self.assertEquals(16, versions[0].num_bytes)
|
| +
|
| + self.assertEquals(2, versions[1].version)
|
| + self.assertEquals(2, versions[1].num_fields)
|
| + self.assertEquals(24, versions[1].num_bytes)
|
| +
|
| + self.assertEquals(3, versions[2].version)
|
| + self.assertEquals(4, versions[2].num_fields)
|
| + self.assertEquals(32, versions[2].num_bytes)
|
|
|