mirror of
https://github.com/denoland/deno.git
synced 2024-12-19 05:45:09 -05:00
fb24fd37c9
This PR enables node compat test cases found passing by using the tool added in #27122 The percentage of passing test case increases from 16.16% to 30.43% by this change.
69 lines
1.4 KiB
JavaScript
69 lines
1.4 KiB
JavaScript
// deno-fmt-ignore-file
|
|
// deno-lint-ignore-file
|
|
|
|
// Copyright Joyent and Node contributors. All rights reserved. MIT license.
|
|
// Taken from Node 20.11.1
|
|
// This file is automatically generated by `tests/node_compat/runner/setup.ts`. Do not modify this file manually.
|
|
|
|
'use strict';
|
|
|
|
const common = require('../common');
|
|
|
|
const {
|
|
open,
|
|
} = require('fs/promises');
|
|
|
|
const {
|
|
Buffer,
|
|
} = require('buffer');
|
|
|
|
class Source {
|
|
async start(controller) {
|
|
this.file = await open(__filename);
|
|
this.controller = controller;
|
|
}
|
|
|
|
async pull(controller) {
|
|
const byobRequest = controller.byobRequest;
|
|
const view = byobRequest.view;
|
|
|
|
const {
|
|
bytesRead,
|
|
} = await this.file.read({
|
|
buffer: view,
|
|
offset: view.byteOffset,
|
|
length: view.byteLength
|
|
});
|
|
|
|
if (bytesRead === 0) {
|
|
await this.file.close();
|
|
this.controller.close();
|
|
}
|
|
|
|
byobRequest.respond(bytesRead);
|
|
}
|
|
|
|
get type() { return 'bytes'; }
|
|
|
|
get autoAllocateChunkSize() { return 1024; }
|
|
}
|
|
|
|
(async () => {
|
|
const source = new Source();
|
|
const stream = new ReadableStream(source);
|
|
|
|
const { emitWarning } = process;
|
|
|
|
process.emitWarning = common.mustNotCall();
|
|
|
|
try {
|
|
const reader = stream.getReader({ mode: 'byob' });
|
|
|
|
let result;
|
|
do {
|
|
result = await reader.read(Buffer.alloc(100));
|
|
} while (!result.done);
|
|
} finally {
|
|
process.emitWarning = emitWarning;
|
|
}
|
|
})().then(common.mustCall());
|