blob: d1db256ba30a58515c097a483cd8a72ca2c43eae [file] [log] [blame] [edit]
// META: title=Synchronous NativeIO API: Written bytes are read back.
// META: global=dedicatedworker
// META: script=resources/support.js
'use strict';
test(testCase => {
reserveAndCleanupCapacitySync(testCase);
const file = storageFoundation.openSync('test_file');
testCase.add_cleanup(() => {
file.close();
storageFoundation.deleteSync('test_file');
});
const {buffer: writeBuffer, writtenBytes} = file.write(new Uint8Array([64, 65, 66, 67]) , 0);
assert_equals(
writtenBytes, 4,
'NativeIOFileSync.write() should resolve with the number of bytes written');
const {buffer: readBuffer, readBytes} = file.read(new Uint8Array(4), 0);
assert_equals(
readBytes, 4,
'NativeIOFileSync.read() should return the number of bytes read');
assert_array_equals(
readBuffer, writeBuffer, 'the bytes read should match the bytes written');
}, 'NativeIOFileSync.read returns bytes written by NativeIOFileSync.write');
test(testCase => {
reserveAndCleanupCapacitySync(testCase);
const file = createFileSync(testCase, 'test_file');
const inputBuffer = new Uint8Array(4);
const originalByteLength = inputBuffer.byteLength;
const readResult = file.read(inputBuffer, 0);
assert_equals(
readResult.buffer.byteLength, originalByteLength,
'NativeIOFileSync.read() should return a buffer with the same ' +
'byteLength as the input buffer');
assert_equals(
inputBuffer.byteLength, 0,
'NativeIOFileSync.read() should detach the input buffer');
}, 'NativeIOFileSync.read detaches the input buffer');
test(testCase => {
reserveAndCleanupCapacitySync(testCase);
const file = createFileSync(testCase, 'test_file');
const inputBuffer = new Uint8Array(4);
const originalByteLength = inputBuffer.byteLength;
const writeResult = file.write(inputBuffer, 0);
assert_equals(
writeResult.buffer.byteLength, originalByteLength,
'NativeIOFileSync.write() should return a buffer with the same ' +
'byteLength as the input buffer');
assert_equals(
inputBuffer.byteLength, 0,
'NativeIOFileSync.write() should detach the input buffer');
}, 'NativeIOFileSync.write detaches the input buffer');