Index: tests/lib/typed_data/setRange_3_test.dart |
diff --git a/tests/lib/typed_data/setRange_3_test.dart b/tests/lib/typed_data/setRange_3_test.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..9774811d5c1c971783c80e4cb811e48c58ca3f58 |
--- /dev/null |
+++ b/tests/lib/typed_data/setRange_3_test.dart |
@@ -0,0 +1,35 @@ |
+// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
+// for details. All rights reserved. Use of this source code is governed by a |
+// BSD-style license that can be found in the LICENSE file. |
+ |
+import 'setRange_lib.dart'; |
+import 'package:expect/expect.dart'; |
+import 'dart:typed_data'; |
+ |
+expandContractTest() { |
+ // Copying between views that have different element sizes can't be done with |
+ // a single scan-up or scan-down. |
+ // |
+ // Typed lists a1 and a2 share a buffer as follows: |
+ // |
+ // a1: aaaabbbbccccddddeeeeffffgggghhhh |
+ // a2: abcdefgh |
+ |
+ var a1 = new Int32List(8); |
+ var buffer = a1.buffer; |
+ var a2 = new Int8List.view(buffer, 12, 8); |
+ |
+ initialize(a2); |
+ Expect.equals('[1, 2, 3, 4, 5, 6, 7, 8]', '$a2'); |
+ a1.setRange(0, 8, a2); |
+ Expect.equals('[1, 2, 3, 4, 5, 6, 7, 8]', '$a1'); |
+ |
+ initialize(a1); |
+ Expect.equals('[1, 2, 3, 4, 5, 6, 7, 8]', '$a1'); |
+ a2.setRange(0, 8, a1); |
+ Expect.equals('[1, 2, 3, 4, 5, 6, 7, 8]', '$a2'); |
+} |
+ |
+main() { |
+ expandContractTest(); |
+} |