| OLD | NEW |
| 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 // VMOptions=--optimization_counter_threshold=10 --no-background_compilation | 4 // VMOptions=--optimization_counter_threshold=10 --no-background_compilation |
| 5 | 5 |
| 6 import 'dart:typed_data'; | 6 import 'dart:typed_data'; |
| 7 import 'package:expect/expect.dart'; | 7 import 'package:expect/expect.dart'; |
| 8 | 8 |
| 9 unalignedUint16() { | 9 unalignedUint16() { |
| 10 var bytes = new ByteData(64); | 10 var bytes = new ByteData(64); |
| 11 bytes.setUint16(0, 0xABCD); | 11 bytes.setUint16(0, 0xABCD, Endianness.HOST_ENDIAN); |
| 12 Expect.equals(0xABCD, bytes.getUint16(0)); | 12 Expect.equals(0xABCD, bytes.getUint16(0, Endianness.HOST_ENDIAN)); |
| 13 bytes.setUint16(1, 0xBCDE); | 13 bytes.setUint16(1, 0xBCDE, Endianness.HOST_ENDIAN); |
| 14 Expect.equals(0xBCDE, bytes.getUint16(1)); | 14 Expect.equals(0xBCDE, bytes.getUint16(1, Endianness.HOST_ENDIAN)); |
| 15 } | 15 } |
| 16 | 16 |
| 17 unalignedInt16() { | 17 unalignedInt16() { |
| 18 var bytes = new ByteData(64); | 18 var bytes = new ByteData(64); |
| 19 bytes.setInt16(0, -0x1234); | 19 bytes.setInt16(0, -0x1234, Endianness.HOST_ENDIAN); |
| 20 Expect.equals(-0x1234, bytes.getInt16(0)); | 20 Expect.equals(-0x1234, bytes.getInt16(0, Endianness.HOST_ENDIAN)); |
| 21 bytes.setInt16(1, -0x2345); | 21 bytes.setInt16(1, -0x2345, Endianness.HOST_ENDIAN); |
| 22 Expect.equals(-0x2345, bytes.getInt16(1)); | 22 Expect.equals(-0x2345, bytes.getInt16(1, Endianness.HOST_ENDIAN)); |
| 23 } | 23 } |
| 24 | 24 |
| 25 unalignedUint32() { | 25 unalignedUint32() { |
| 26 var bytes = new ByteData(64); | 26 var bytes = new ByteData(64); |
| 27 bytes.setUint32(0, 0xABCDABCD); | 27 bytes.setUint32(0, 0xABCDABCD, Endianness.HOST_ENDIAN); |
| 28 Expect.equals(0xABCDABCD, bytes.getUint32(0)); | 28 Expect.equals(0xABCDABCD, bytes.getUint32(0, Endianness.HOST_ENDIAN)); |
| 29 bytes.setUint32(1, 0xBCDEBCDE); | 29 bytes.setUint32(1, 0xBCDEBCDE, Endianness.HOST_ENDIAN); |
| 30 Expect.equals(0xBCDEBCDE, bytes.getUint32(1)); | 30 Expect.equals(0xBCDEBCDE, bytes.getUint32(1, Endianness.HOST_ENDIAN)); |
| 31 bytes.setUint32(2, 0xABCDABCD); | 31 bytes.setUint32(2, 0xABCDABCD, Endianness.HOST_ENDIAN); |
| 32 Expect.equals(0xABCDABCD, bytes.getUint32(2)); | 32 Expect.equals(0xABCDABCD, bytes.getUint32(2, Endianness.HOST_ENDIAN)); |
| 33 bytes.setUint32(3, 0xBCDEBCDE); | 33 bytes.setUint32(3, 0xBCDEBCDE, Endianness.HOST_ENDIAN); |
| 34 Expect.equals(0xBCDEBCDE, bytes.getUint32(3)); | 34 Expect.equals(0xBCDEBCDE, bytes.getUint32(3, Endianness.HOST_ENDIAN)); |
| 35 } | 35 } |
| 36 | 36 |
| 37 unalignedInt32() { | 37 unalignedInt32() { |
| 38 var bytes = new ByteData(64); | 38 var bytes = new ByteData(64); |
| 39 bytes.setInt32(0, -0x12341234); | 39 bytes.setInt32(0, -0x12341234, Endianness.HOST_ENDIAN); |
| 40 Expect.equals(-0x12341234, bytes.getInt32(0)); | 40 Expect.equals(-0x12341234, bytes.getInt32(0, Endianness.HOST_ENDIAN)); |
| 41 bytes.setInt32(1, -0x23452345); | 41 bytes.setInt32(1, -0x23452345, Endianness.HOST_ENDIAN); |
| 42 Expect.equals(-0x23452345, bytes.getInt32(1)); | 42 Expect.equals(-0x23452345, bytes.getInt32(1, Endianness.HOST_ENDIAN)); |
| 43 bytes.setInt32(2, -0x12341234); | 43 bytes.setInt32(2, -0x12341234, Endianness.HOST_ENDIAN); |
| 44 Expect.equals(-0x12341234, bytes.getInt32(2)); | 44 Expect.equals(-0x12341234, bytes.getInt32(2, Endianness.HOST_ENDIAN)); |
| 45 bytes.setInt32(3, -0x23452345); | 45 bytes.setInt32(3, -0x23452345, Endianness.HOST_ENDIAN); |
| 46 Expect.equals(-0x23452345, bytes.getInt32(3)); | 46 Expect.equals(-0x23452345, bytes.getInt32(3, Endianness.HOST_ENDIAN)); |
| 47 } | 47 } |
| 48 | 48 |
| 49 unalignedUint64() { | 49 unalignedUint64() { |
| 50 var bytes = new ByteData(64); | 50 var bytes = new ByteData(64); |
| 51 bytes.setUint64(0, 0xABCDABCD); | 51 bytes.setUint64(0, 0xABCDABCD12345678, Endianness.HOST_ENDIAN); |
| 52 Expect.equals(0xABCDABCD, bytes.getUint64(0)); | 52 Expect.equals(0xABCDABCD12345678, bytes.getUint64(0, Endianness.HOST_ENDIAN)); |
| 53 bytes.setUint64(1, 0xBCDEBCDE); | 53 bytes.setUint64(1, 0xBCDEBCDE12345678, Endianness.HOST_ENDIAN); |
| 54 Expect.equals(0xBCDEBCDE, bytes.getUint64(1)); | 54 Expect.equals(0xBCDEBCDE12345678, bytes.getUint64(1, Endianness.HOST_ENDIAN)); |
| 55 bytes.setUint64(2, 0xABCDABCD); | 55 bytes.setUint64(2, 0xABCDABCD12345678, Endianness.HOST_ENDIAN); |
| 56 Expect.equals(0xABCDABCD, bytes.getUint64(2)); | 56 Expect.equals(0xABCDABCD12345678, bytes.getUint64(2, Endianness.HOST_ENDIAN)); |
| 57 bytes.setUint64(3, 0xBCDEBCDE); | 57 bytes.setUint64(3, 0xBCDEBCDE12345678, Endianness.HOST_ENDIAN); |
| 58 Expect.equals(0xBCDEBCDE, bytes.getUint64(3)); | 58 Expect.equals(0xBCDEBCDE12345678, bytes.getUint64(3, Endianness.HOST_ENDIAN)); |
| 59 bytes.setUint64(4, 0xABCDABCD); | 59 bytes.setUint64(4, 0xABCDABCD12345678, Endianness.HOST_ENDIAN); |
| 60 Expect.equals(0xABCDABCD, bytes.getUint64(4)); | 60 Expect.equals(0xABCDABCD12345678, bytes.getUint64(4, Endianness.HOST_ENDIAN)); |
| 61 bytes.setUint64(5, 0xBCDEBCDE); | 61 bytes.setUint64(5, 0xBCDEBCDE12345678, Endianness.HOST_ENDIAN); |
| 62 Expect.equals(0xBCDEBCDE, bytes.getUint64(5)); | 62 Expect.equals(0xBCDEBCDE12345678, bytes.getUint64(5, Endianness.HOST_ENDIAN)); |
| 63 bytes.setUint64(6, 0xABCDABCD); | 63 bytes.setUint64(6, 0xABCDABCD12345678, Endianness.HOST_ENDIAN); |
| 64 Expect.equals(0xABCDABCD, bytes.getUint64(6)); | 64 Expect.equals(0xABCDABCD12345678, bytes.getUint64(6, Endianness.HOST_ENDIAN)); |
| 65 bytes.setUint64(7, 0xBCDEBCDE); | 65 bytes.setUint64(7, 0xBCDEBCDE12345678, Endianness.HOST_ENDIAN); |
| 66 Expect.equals(0xBCDEBCDE, bytes.getUint64(7)); | 66 Expect.equals(0xBCDEBCDE12345678, bytes.getUint64(7, Endianness.HOST_ENDIAN)); |
| 67 } | 67 } |
| 68 | 68 |
| 69 unalignedInt64() { | 69 unalignedInt64() { |
| 70 var bytes = new ByteData(64); | 70 var bytes = new ByteData(64); |
| 71 bytes.setInt64(0, -0x12341234); | 71 bytes.setInt64(0, -0x12341234ABCDABCD, Endianness.HOST_ENDIAN); |
| 72 Expect.equals(-0x12341234, bytes.getInt64(0)); | 72 Expect.equals(-0x12341234ABCDABCD, bytes.getInt64(0, Endianness.HOST_ENDIAN)); |
| 73 bytes.setInt64(1, -0x23452345); | 73 bytes.setInt64(1, -0x23452345ABCDABCD, Endianness.HOST_ENDIAN); |
| 74 Expect.equals(-0x23452345, bytes.getInt64(1)); | 74 Expect.equals(-0x23452345ABCDABCD, bytes.getInt64(1, Endianness.HOST_ENDIAN)); |
| 75 bytes.setInt64(2, -0x12341234); | 75 bytes.setInt64(2, -0x12341234ABCDABCD, Endianness.HOST_ENDIAN); |
| 76 Expect.equals(-0x12341234, bytes.getInt64(2)); | 76 Expect.equals(-0x12341234ABCDABCD, bytes.getInt64(2, Endianness.HOST_ENDIAN)); |
| 77 bytes.setInt64(3, -0x23452345); | 77 bytes.setInt64(3, -0x23452345ABCDABCD, Endianness.HOST_ENDIAN); |
| 78 Expect.equals(-0x23452345, bytes.getInt64(3)); | 78 Expect.equals(-0x23452345ABCDABCD, bytes.getInt64(3, Endianness.HOST_ENDIAN)); |
| 79 bytes.setInt64(4, -0x12341234); | 79 bytes.setInt64(4, -0x12341234ABCDABCD, Endianness.HOST_ENDIAN); |
| 80 Expect.equals(-0x12341234, bytes.getInt64(4)); | 80 Expect.equals(-0x12341234ABCDABCD, bytes.getInt64(4, Endianness.HOST_ENDIAN)); |
| 81 bytes.setInt64(5, -0x23452345); | 81 bytes.setInt64(5, -0x23452345ABCDABCD, Endianness.HOST_ENDIAN); |
| 82 Expect.equals(-0x23452345, bytes.getInt64(5)); | 82 Expect.equals(-0x23452345ABCDABCD, bytes.getInt64(5, Endianness.HOST_ENDIAN)); |
| 83 bytes.setInt64(6, -0x12341234); | 83 bytes.setInt64(6, -0x12341234ABCDABCD, Endianness.HOST_ENDIAN); |
| 84 Expect.equals(-0x12341234, bytes.getInt64(6)); | 84 Expect.equals(-0x12341234ABCDABCD, bytes.getInt64(6, Endianness.HOST_ENDIAN)); |
| 85 bytes.setInt64(7, -0x23452345); | 85 bytes.setInt64(7, -0x23452345ABCDABCD, Endianness.HOST_ENDIAN); |
| 86 Expect.equals(-0x23452345, bytes.getInt64(7)); | 86 Expect.equals(-0x23452345ABCDABCD, bytes.getInt64(7, Endianness.HOST_ENDIAN)); |
| 87 } | 87 } |
| 88 | 88 |
| 89 main() { | 89 main() { |
| 90 for (var i = 0; i < 20; i++) { | 90 for (var i = 0; i < 20; i++) { |
| 91 unalignedUint16(); | 91 unalignedUint16(); |
| 92 unalignedInt16(); | 92 unalignedInt16(); |
| 93 unalignedUint32(); | 93 unalignedUint32(); |
| 94 unalignedInt32(); | 94 unalignedInt32(); |
| 95 unalignedUint64(); | 95 unalignedUint64(); |
| 96 unalignedInt64(); | 96 unalignedInt64(); |
| 97 } | 97 } |
| 98 } | 98 } |
| OLD | NEW |