blob: 82c21ff016ada626a0bf23d0c565cfbdad70fc2d [file] [log] [blame]
// META: title=NativeIO API: Transferred buffer is of the same type as input.
// META: global=dedicatedworker
// META: script=resources/support.js
'use strict';
const kViewTypes = [
Int8Array,
Uint8Array,
Uint8ClampedArray,
Int16Array,
Uint16Array,
Int32Array,
Uint32Array,
Float32Array,
Float64Array,
BigInt64Array,
BigUint64Array,
];
kViewTypes.forEach(view_type => {
test(testCase => {
reserveAndCleanupCapacitySync(testCase);
const file = createFileSync(testCase, 'test_file');
const {buffer} = file.write(new view_type(4), 0);
assert_true(
buffer instanceof view_type,
`NativeIOFileSync.write() should return a ${view_type.name}`);
assert_equals(
buffer.length, 4,
`NativeIOFileSync.write() should return a ${view_type.name} of the ` +
`same length as the input`);
}, `NativeIOFileSync.write returns a ${view_type.name} when given a ` +
`${view_type.name}`);
});
test(testCase => {
reserveAndCleanupCapacitySync(testCase);
const file = createFileSync(testCase, 'test_file');
const {buffer} = file.write(new DataView(new ArrayBuffer(4)), 0);
assert_true(
buffer instanceof DataView,
'NativeIOFileSync.write() should return a DataView');
assert_equals(
buffer.byteLength, 4,
'NativeIOFileSync.write() should return a DataView of the same ' +
'byte length as the input');
}, 'NativeIOFileSync.write returns a DataView when given a DataView');
kViewTypes.forEach(view_type => {
test(testCase => {
reserveAndCleanupCapacitySync(testCase);
const file = createFileSync(testCase, 'test_file');
const {buffer} = file.read(new view_type(4), 0);
assert_true(
buffer instanceof view_type,
`NativeIOFileSync.read() should return a ${view_type.name}`);
assert_equals(
buffer.length, 4,
`NativeIOFileSync.read() should return a ${view_type.name} of the ` +
`same length as the input`);
}, `NativeIOFileSync.read returns a ${view_type.name} when given a ` +
`${view_type.name}`);
});
test(testCase => {
reserveAndCleanupCapacitySync(testCase);
const file = createFileSync(testCase, 'test_file');
const {buffer} = file.read(new DataView(new ArrayBuffer(4)), 0);
assert_true(
buffer instanceof DataView,
'NativeIOFileSync.read() should return a DataView');
assert_equals(
buffer.byteLength, 4,
'NativeIOFileSync.read() should return a DataView of the same ' +
'byte length as the input');
}, 'NativeIOFileSync.read returns a DataView when given a DataView ' +
'buffer');