Skip to content

Commit 8e34b5a

Browse files
committed
1 parent 04fb977 commit 8e34b5a

File tree

3 files changed

+75
-55
lines changed

3 files changed

+75
-55
lines changed

.travis.yml

+1-2
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@ dart:
44

55
dart_task:
66
- test: -p vm
7-
# TODO: reinstate once https://github.com/dart-lang/typed_data/issues/16 is fixed
8-
# - test: -p firefox
7+
- test: -p firefox
98
- dartfmt
109
- dartanalyzer
1110

test/typed_buffers_test.dart

+55-53
Original file line numberDiff line numberDiff line change
@@ -2,29 +2,65 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
// Tests typed-data buffer classes.
5+
@TestOn('!vm')
66

77
import "dart:typed_data";
88

99
import "package:test/test.dart";
1010
import "package:typed_data/typed_buffers.dart";
1111

12-
main() {
13-
testUint(8, (l) => new Uint8Buffer(l));
14-
testInt(8, (l) => new Int8Buffer(l));
12+
const List<int> browserSafeIntSamples = const [
13+
0x8000000000000000, // 2^63
14+
0x100000001,
15+
0x100000000, // 2^32
16+
0x0ffffffff,
17+
0xaaaaaaaa,
18+
0x80000001,
19+
0x80000000, // 2^31
20+
0x7fffffff,
21+
0x55555555,
22+
0x10001,
23+
0x10000, // 2^16
24+
0x0ffff,
25+
0xaaaa,
26+
0x8001,
27+
0x8000, // 2^15
28+
0x7fff,
29+
0x5555,
30+
0x101,
31+
0x100, // 2^8
32+
0x0ff,
33+
0xaa,
34+
0x81,
35+
0x80, // 2^7
36+
0x7f,
37+
0x55,
38+
0x02,
39+
0x01,
40+
0x00
41+
];
42+
43+
void main() {
44+
initTests(browserSafeIntSamples);
45+
}
46+
47+
void initTests(List<int> intSamples) {
48+
testUint(intSamples, 8, (l) => new Uint8Buffer(l));
49+
testInt(intSamples, 8, (l) => new Int8Buffer(l));
1550
test("Uint8ClampedBuffer", () {
16-
testIntBuffer(8, 0, 255, (l) => new Uint8ClampedBuffer(l), clampUint8);
51+
testIntBuffer(
52+
intSamples, 8, 0, 255, (l) => new Uint8ClampedBuffer(l), clampUint8);
1753
});
18-
testUint(16, (l) => new Uint16Buffer(l));
19-
testInt(16, (l) => new Int16Buffer(l));
20-
testUint(32, (l) => new Uint32Buffer(l));
54+
testUint(intSamples, 16, (l) => new Uint16Buffer(l));
55+
testInt(intSamples, 16, (l) => new Int16Buffer(l));
56+
testUint(intSamples, 32, (l) => new Uint32Buffer(l));
2157

22-
testInt(32, (l) => new Int32Buffer(l));
58+
testInt(intSamples, 32, (l) => new Int32Buffer(l));
2359

24-
testUint(64, (l) => new Uint64Buffer(l),
60+
testUint(intSamples, 64, (l) => new Uint64Buffer(l),
2561
// JS doesn't support 64-bit ints, so only test this on the VM.
2662
testOn: "dart-vm");
27-
testInt(64, (l) => new Int64Buffer(l),
63+
testInt(intSamples, 64, (l) => new Int64Buffer(l),
2864
// JS doesn't support 64-bit ints, so only test this on the VM.
2965
testOn: "dart-vm");
3066

@@ -185,42 +221,6 @@ const floatSamples = const [
185221
16777215.0
186222
];
187223

188-
const List<int> intSamples = const [
189-
0x0ffffffffffffffff,
190-
0xaaaaaaaaaaaaaaaa,
191-
0x8000000000000001,
192-
0x8000000000000000, // 2^63
193-
0x7fffffffffffffff,
194-
0x5555555555555555,
195-
0x100000001,
196-
0x100000000, // 2^32
197-
0x0ffffffff,
198-
0xaaaaaaaa,
199-
0x80000001,
200-
0x80000000, // 2^31
201-
0x7fffffff,
202-
0x55555555,
203-
0x10001,
204-
0x10000, // 2^16
205-
0x0ffff,
206-
0xaaaa,
207-
0x8001,
208-
0x8000, // 2^15
209-
0x7fff,
210-
0x5555,
211-
0x101,
212-
0x100, // 2^8
213-
0x0ff,
214-
0xaa,
215-
0x81,
216-
0x80, // 2^7
217-
0x7f,
218-
0x55,
219-
0x02,
220-
0x01,
221-
0x00
222-
];
223-
224224
int clampUint8(x) => x < 0 ? 0 : x > 255 ? 255 : x;
225225

226226
void doubleEqual(x, y) {
@@ -366,11 +366,12 @@ void testFloatBuffer(
366366
});
367367
}
368368

369-
void testInt(int bits, buffer(int length), {String testOn}) {
369+
void testInt(List<int> intSamples, int bits, buffer(int length),
370+
{String testOn}) {
370371
int min = -(1 << (bits - 1));
371372
int max = -(min + 1);
372373
test("Int${bits}Buffer", () {
373-
testIntBuffer(bits, min, max, buffer, intRounder(bits));
374+
testIntBuffer(intSamples, bits, min, max, buffer, intRounder(bits));
374375
}, testOn: testOn);
375376
}
376377

@@ -433,8 +434,8 @@ void testInt32x4Buffer(List<int> intSamples) {
433434
});
434435
}
435436

436-
void testIntBuffer(
437-
int bits, int min, int max, create(int length), int round(int val)) {
437+
void testIntBuffer(List<int> intSamples, int bits, int min, int max,
438+
create(int length), int round(int val)) {
438439
assert(round(min) == min);
439440
assert(round(max) == max);
440441
// All int buffers default to the value 0.
@@ -504,12 +505,13 @@ void testIntBuffer(
504505
expect(buffer[1], equals(min));
505506
}
506507

507-
void testUint(int bits, buffer(int length), {String testOn}) {
508+
void testUint(List<int> intSamples, int bits, buffer(int length),
509+
{String testOn}) {
508510
int min = 0;
509511
var rounder = uintRounder(bits);
510512
int max = rounder(-1);
511513
test("Uint${bits}Buffer", () {
512-
testIntBuffer(bits, min, max, buffer, rounder);
514+
testIntBuffer(intSamples, bits, min, max, buffer, rounder);
513515
}, testOn: testOn);
514516
}
515517

test/typed_buffers_vm_test.dart

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
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.
4+
5+
@TestOn('vm')
6+
import 'package:test/test.dart';
7+
8+
import 'typed_buffers_test.dart';
9+
10+
void main() {
11+
var browserUnsafe = [
12+
0x0ffffffffffffffff,
13+
0xaaaaaaaaaaaaaaaa,
14+
0x8000000000000001,
15+
0x7fffffffffffffff,
16+
0x5555555555555555,
17+
];
18+
initTests(<int>[]..addAll(browserSafeIntSamples)..addAll(browserUnsafe));
19+
}

0 commit comments

Comments
 (0)