// 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 { Readable } = require('stream');

// Make sure that readable completes
// even when reading larger buffer.
const bufferSize = 10 * 1024 * 1024;
let n = 0;
const r = new Readable({
  read() {
    // Try to fill readable buffer piece by piece.
    r.push(Buffer.alloc(bufferSize / 10));

    if (n++ > 10) {
      r.push(null);
    }
  }
});

r.on('readable', () => {
  while (true) {
    const ret = r.read(bufferSize);
    if (ret === null)
      break;
  }
});
r.on('end', common.mustCall());