Skip to content

Commit 63d3c30

Browse files
dantehemersonmhdawson
authored andcommittedMay 27, 2022
test: add tests for TypedArray
Add tests for TypedArray#ElementSize Add tests for TypedArray#BufferLength Add tests for TypedArray#ByteOffset PR-URL: #1179 Reviewed-By: Kevin Eady <kevin.c.eady@gmail.com> Reviewed-By: Michael Dawson <midawson@redhat.com
1 parent 358ac2f commit 63d3c30

File tree

2 files changed

+35
-9
lines changed

2 files changed

+35
-9
lines changed
 

‎test/typedarray.cc

+20
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,21 @@ Value GetTypedArrayLength(const CallbackInfo& info) {
184184
return Number::New(info.Env(), static_cast<double>(array.ElementLength()));
185185
}
186186

187+
Value GetTypedArraySize(const CallbackInfo& info) {
188+
TypedArray array = info[0].As<TypedArray>();
189+
return Number::New(info.Env(), static_cast<double>(array.ElementSize()));
190+
}
191+
192+
Value GetTypedArrayByteOffset(const CallbackInfo& info) {
193+
TypedArray array = info[0].As<TypedArray>();
194+
return Number::New(info.Env(), static_cast<double>(array.ByteOffset()));
195+
}
196+
197+
Value GetTypedArrayByteLength(const CallbackInfo& info) {
198+
TypedArray array = info[0].As<TypedArray>();
199+
return Number::New(info.Env(), static_cast<double>(array.ByteLength()));
200+
}
201+
187202
Value GetTypedArrayBuffer(const CallbackInfo& info) {
188203
TypedArray array = info[0].As<TypedArray>();
189204
return array.ArrayBuffer();
@@ -287,6 +302,11 @@ Object InitTypedArray(Env env) {
287302
Function::New(env, CreateInvalidTypedArray);
288303
exports["getTypedArrayType"] = Function::New(env, GetTypedArrayType);
289304
exports["getTypedArrayLength"] = Function::New(env, GetTypedArrayLength);
305+
exports["getTypedArraySize"] = Function::New(env, GetTypedArraySize);
306+
exports["getTypedArrayByteOffset"] =
307+
Function::New(env, GetTypedArrayByteOffset);
308+
exports["getTypedArrayByteLength"] =
309+
Function::New(env, GetTypedArrayByteLength);
290310
exports["getTypedArrayBuffer"] = Function::New(env, GetTypedArrayBuffer);
291311
exports["getTypedArrayElement"] = Function::New(env, GetTypedArrayElement);
292312
exports["setTypedArrayElement"] = Function::New(env, SetTypedArrayElement);

‎test/typedarray.js

+15-9
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,15 @@ module.exports = require('./common').runTest(test);
66

77
function test (binding) {
88
const testData = [
9-
['int8', Int8Array],
10-
['uint8', Uint8Array],
11-
['uint8_clamped', Uint8ClampedArray],
12-
['int16', Int16Array],
13-
['uint16', Uint16Array],
14-
['int32', Int32Array],
15-
['uint32', Uint32Array],
16-
['float32', Float32Array],
17-
['float64', Float64Array]
9+
['int8', Int8Array, 1],
10+
['uint8', Uint8Array, 1],
11+
['uint8_clamped', Uint8ClampedArray, 1],
12+
['int16', Int16Array, 2],
13+
['uint16', Uint16Array, 2],
14+
['int32', Int32Array, 4],
15+
['uint32', Uint32Array, 4],
16+
['float32', Float32Array, 4],
17+
['float64', Float64Array, 8]
1818
];
1919

2020
testData.forEach(data => {
@@ -24,6 +24,9 @@ function test (binding) {
2424
assert.ok(t instanceof data[1]);
2525
assert.strictEqual(binding.typedarray.getTypedArrayType(t), data[0]);
2626
assert.strictEqual(binding.typedarray.getTypedArrayLength(t), length);
27+
assert.strictEqual(binding.typedarray.getTypedArraySize(t), data[2]);
28+
assert.strictEqual(binding.typedarray.getTypedArrayByteOffset(t), 0);
29+
assert.strictEqual(binding.typedarray.getTypedArrayByteLength(t), data[2] * length);
2730

2831
t[3] = 11;
2932
assert.strictEqual(binding.typedarray.getTypedArrayElement(t, 3), 11);
@@ -49,6 +52,9 @@ function test (binding) {
4952
assert.ok(t instanceof data[1]);
5053
assert.strictEqual(binding.typedarray.getTypedArrayType(t), data[0]);
5154
assert.strictEqual(binding.typedarray.getTypedArrayLength(t), length);
55+
assert.strictEqual(binding.typedarray.getTypedArraySize(t), data[2]);
56+
assert.strictEqual(binding.typedarray.getTypedArrayByteOffset(t), offset);
57+
assert.strictEqual(binding.typedarray.getTypedArrayByteLength(t), data[2] * length);
5258

5359
t[3] = 11;
5460
assert.strictEqual(binding.typedarray.getTypedArrayElement(t, 3), 11);

0 commit comments

Comments
 (0)
Please sign in to comment.