blob: ef07dfca533ee89ee1facde6916b2e4b42eaf2b1 [file] [log] [blame]
// META: title=NativeIO API: Written bytes are read back.
// META: global=window,worker
// META: script=resources/support.js
'use strict';
promise_test(async testCase => {
await reserveAndCleanupCapacity(testCase);
const file = await storageFoundation.open('test_file');
testCase.add_cleanup(async () => {
await file.close();
await storageFoundation.delete('test_file');
});
const {buffer: writeBuffer, writtenBytes} =
await file.write(new Uint8Array([64, 65, 66, 67]), 0);
assert_equals(
writtenBytes, 4,
'NativeIOFile.write() should resolve with the number of bytes written');
const {buffer: readBuffer, readBytes} = await file.read(new Uint8Array(4), 0);
assert_equals(
readBytes, 4,
'NativeIOFile.read() should return the number of bytes read');
assert_array_equals(
readBuffer, writeBuffer, 'the bytes read should match the bytes written');
}, 'NativeIOFile.read returns bytes written by NativeIOFile.write');
promise_test(async testCase => {
await reserveAndCleanupCapacity(testCase);
const file = await createFile(testCase, 'test_file');
const inputBuffer = new Uint8Array(4);
const readPromise = file.read(inputBuffer, 0);
assert_equals(
inputBuffer.byteLength, 0,
'NativeIOFile.read() should detach the input buffer immediately');
const readResult = await readPromise;
assert_equals(
readResult.buffer.byteLength, 4,
'NativeIOFile.read() should return a buffer with the same byteLength as' +
'the input buffer');
}, 'NativeIOFile.read detaches the input buffer');
promise_test(async testCase => {
await reserveAndCleanupCapacity(testCase);
const file = await createFile(testCase, 'test_file');
const inputBuffer = new Uint8Array(4);
const writePromise = file.write(inputBuffer, 0);
assert_equals(
inputBuffer.byteLength, 0,
'NativeIOFile.write() should detach the input buffer immediately');
const writeResult = await writePromise;
assert_equals(
writeResult.buffer.byteLength, 4,
'NativeIOFile.write() should return a buffer with the same byteLength' +
'as the input buffer');
}, 'NativeIOFile.write detaches the input buffer');