| OLD | NEW |
| 1 # Copyright 2013 The Chromium Authors. All rights reserved. | 1 # Copyright 2013 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 sys | 5 import sys |
| 6 | 6 |
| 7 import module as mojom | 7 import module as mojom |
| 8 import pack | 8 import pack |
| 9 import test_support | 9 import test_support |
| 10 | 10 |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 81 | 81 |
| 82 | 82 |
| 83 def TestPaddingPackedOverflow(): | 83 def TestPaddingPackedOverflow(): |
| 84 kinds = (mojom.INT8, mojom.INT32, mojom.INT16, mojom.INT8, mojom.INT8) | 84 kinds = (mojom.INT8, mojom.INT32, mojom.INT16, mojom.INT8, mojom.INT8) |
| 85 # 2 bytes should be packed together first, followed by short, then by int. | 85 # 2 bytes should be packed together first, followed by short, then by int. |
| 86 fields = (1, 4, 3, 2, 5) | 86 fields = (1, 4, 3, 2, 5) |
| 87 offsets = (0, 1, 2, 4, 8) | 87 offsets = (0, 1, 2, 4, 8) |
| 88 return TestSequence(kinds, fields, offsets) | 88 return TestSequence(kinds, fields, offsets) |
| 89 | 89 |
| 90 | 90 |
| 91 def TestNullableTypes(): |
| 92 kinds = (mojom.STRING.MakeNullableKind(), |
| 93 mojom.HANDLE.MakeNullableKind(), |
| 94 mojom.Struct('test_struct').MakeNullableKind(), |
| 95 mojom.DCPIPE.MakeNullableKind(), |
| 96 mojom.Array().MakeNullableKind(), |
| 97 mojom.DPPIPE.MakeNullableKind(), |
| 98 mojom.FixedArray(5).MakeNullableKind(), |
| 99 mojom.MSGPIPE.MakeNullableKind(), |
| 100 mojom.Interface('test_inteface').MakeNullableKind(), |
| 101 mojom.SHAREDBUFFER.MakeNullableKind(), |
| 102 mojom.InterfaceRequest().MakeNullableKind()) |
| 103 fields = (1, 2, 4, 3, 5, 6, 8, 7, 9, 10, 11) |
| 104 offsets = (0, 8, 12, 16, 24, 32, 36, 40, 48, 52, 56) |
| 105 return TestSequence(kinds, fields, offsets) |
| 106 |
| 107 |
| 91 def TestAllTypes(): | 108 def TestAllTypes(): |
| 92 struct = mojom.Struct('test') | |
| 93 array = mojom.Array() | |
| 94 return TestSequence( | 109 return TestSequence( |
| 95 (mojom.BOOL, mojom.INT8, mojom.STRING, mojom.UINT8, | 110 (mojom.BOOL, mojom.INT8, mojom.STRING, mojom.UINT8, |
| 96 mojom.INT16, mojom.DOUBLE, mojom.UINT16, | 111 mojom.INT16, mojom.DOUBLE, mojom.UINT16, |
| 97 mojom.INT32, mojom.UINT32, mojom.INT64, | 112 mojom.INT32, mojom.UINT32, mojom.INT64, |
| 98 mojom.FLOAT, mojom.STRING, mojom.HANDLE, | 113 mojom.FLOAT, mojom.STRING, mojom.HANDLE, |
| 99 mojom.UINT64, mojom.Struct('test'), mojom.Array()), | 114 mojom.UINT64, mojom.Struct('test'), mojom.Array(), |
| 100 (1, 2, 4, 5, 7, 3, 6, 8, 9, 10, 11, 13, 12, 14, 15, 16, 17), | 115 mojom.STRING.MakeNullableKind()), |
| 101 (0, 1, 2, 4, 6, 8, 16, 24, 28, 32, 40, 44, 48, 56, 64, 72, 80)) | 116 (1, 2, 4, 5, 7, 3, 6, 8, 9, 10, 11, 13, 12, 14, 15, 16, 17, 18), |
| 117 (0, 1, 2, 4, 6, 8, 16, 24, 28, 32, 40, 44, 48, 56, 64, 72, 80, 88)) |
| 102 | 118 |
| 103 | 119 |
| 104 def TestPaddingPackedOutOfOrderByOrdinal(): | 120 def TestPaddingPackedOutOfOrderByOrdinal(): |
| 105 errors = 0 | 121 errors = 0 |
| 106 struct = mojom.Struct('test') | 122 struct = mojom.Struct('test') |
| 107 struct.AddField('testfield1', mojom.INT8) | 123 struct.AddField('testfield1', mojom.INT8) |
| 108 struct.AddField('testfield3', mojom.UINT8, 3) | 124 struct.AddField('testfield3', mojom.UINT8, 3) |
| 109 struct.AddField('testfield2', mojom.INT32, 2) | 125 struct.AddField('testfield2', mojom.INT32, 2) |
| 110 ps = pack.PackedStruct(struct) | 126 ps = pack.PackedStruct(struct) |
| 111 errors += EXPECT_EQ(3, len(ps.packed_fields)) | 127 errors += EXPECT_EQ(3, len(ps.packed_fields)) |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 158 return errors | 174 return errors |
| 159 | 175 |
| 160 | 176 |
| 161 def Main(args): | 177 def Main(args): |
| 162 errors = 0 | 178 errors = 0 |
| 163 errors += RunTest(TestZeroFields) | 179 errors += RunTest(TestZeroFields) |
| 164 errors += RunTest(TestOneField) | 180 errors += RunTest(TestOneField) |
| 165 errors += RunTest(TestPaddingPackedInOrder) | 181 errors += RunTest(TestPaddingPackedInOrder) |
| 166 errors += RunTest(TestPaddingPackedOutOfOrder) | 182 errors += RunTest(TestPaddingPackedOutOfOrder) |
| 167 errors += RunTest(TestPaddingPackedOverflow) | 183 errors += RunTest(TestPaddingPackedOverflow) |
| 184 errors += RunTest(TestNullableTypes) |
| 168 errors += RunTest(TestAllTypes) | 185 errors += RunTest(TestAllTypes) |
| 169 errors += RunTest(TestPaddingPackedOutOfOrderByOrdinal) | 186 errors += RunTest(TestPaddingPackedOutOfOrderByOrdinal) |
| 170 errors += RunTest(TestBools) | 187 errors += RunTest(TestBools) |
| 171 | 188 |
| 172 return errors | 189 return errors |
| 173 | 190 |
| 174 | 191 |
| 175 if __name__ == '__main__': | 192 if __name__ == '__main__': |
| 176 sys.exit(Main(sys.argv[1:])) | 193 sys.exit(Main(sys.argv[1:])) |
| OLD | NEW |