summaryrefslogtreecommitdiff
path: root/std/io/streams_test.ts
diff options
context:
space:
mode:
Diffstat (limited to 'std/io/streams_test.ts')
-rw-r--r--std/io/streams_test.ts189
1 files changed, 0 insertions, 189 deletions
diff --git a/std/io/streams_test.ts b/std/io/streams_test.ts
deleted file mode 100644
index 594fc2357..000000000
--- a/std/io/streams_test.ts
+++ /dev/null
@@ -1,189 +0,0 @@
-// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license.
-
-import { assert, assertEquals } from "../testing/asserts.ts";
-import {
- readableStreamFromAsyncIterator,
- readerFromStreamReader,
- writableStreamFromWriter,
- writerFromStreamWriter,
-} from "./streams.ts";
-
-function repeat(c: string, bytes: number): Uint8Array {
- assertEquals(c.length, 1);
- const ui8 = new Uint8Array(bytes);
- ui8.fill(c.charCodeAt(0));
- return ui8;
-}
-
-Deno.test("toWriterCheck", async function (): Promise<void> {
- const written: string[] = [];
- const chunks: string[] = ["hello", "deno", "land"];
- const writableStream = new WritableStream({
- write(chunk): void {
- const decoder = new TextDecoder();
- written.push(decoder.decode(chunk));
- },
- });
-
- const encoder = new TextEncoder();
- const writer = writerFromStreamWriter(writableStream.getWriter());
-
- for (const chunk of chunks) {
- const n = await writer.write(encoder.encode(chunk));
- // stream writers always write all the bytes
- assertEquals(n, chunk.length);
- }
-
- assertEquals(written, chunks);
-});
-
-Deno.test("toReaderCheck", async function (): Promise<void> {
- const chunks: string[] = ["hello", "deno", "land"];
- const expected = chunks.slice();
- const readChunks: Uint8Array[] = [];
- const readableStream = new ReadableStream({
- pull(controller): void {
- const encoder = new TextEncoder();
- const chunk = chunks.shift();
- if (!chunk) return controller.close();
- controller.enqueue(encoder.encode(chunk));
- },
- });
-
- const decoder = new TextDecoder();
- const reader = readerFromStreamReader(readableStream.getReader());
-
- let i = 0;
-
- while (true) {
- const b = new Uint8Array(1024);
- const n = await reader.read(b);
-
- if (n === null) break;
-
- readChunks.push(b.subarray(0, n));
- assert(i < expected.length);
-
- i++;
- }
-
- assertEquals(
- expected,
- readChunks.map((chunk) => decoder.decode(chunk)),
- );
-});
-
-Deno.test("toReaderBigChunksCheck", async function (): Promise<void> {
- const bufSize = 1024;
- const chunkSize = 3 * bufSize;
- const writer = new Deno.Buffer();
-
- // A readable stream can enqueue chunks bigger than Copy bufSize
- // Reader returned by toReader should enqueue exceeding bytes
- const chunks: string[] = [
- "a".repeat(chunkSize),
- "b".repeat(chunkSize),
- "c".repeat(chunkSize),
- ];
- const expected = chunks.slice();
- const readableStream = new ReadableStream({
- pull(controller): void {
- const encoder = new TextEncoder();
- const chunk = chunks.shift();
- if (!chunk) return controller.close();
-
- controller.enqueue(encoder.encode(chunk));
- },
- });
-
- const reader = readerFromStreamReader(readableStream.getReader());
- const n = await Deno.copy(reader, writer, { bufSize });
-
- const expectedWritten = chunkSize * expected.length;
- assertEquals(n, chunkSize * expected.length);
- assertEquals(writer.length, expectedWritten);
-});
-
-Deno.test("toReaderBigIrregularChunksCheck", async function (): Promise<void> {
- const bufSize = 1024;
- const chunkSize = 3 * bufSize;
- const writer = new Deno.Buffer();
-
- // A readable stream can enqueue chunks bigger than Copy bufSize
- // Reader returned by toReader should enqueue exceeding bytes
- const chunks: Uint8Array[] = [
- repeat("a", chunkSize),
- repeat("b", chunkSize + 253),
- repeat("c", chunkSize + 8),
- ];
- const expected = new Uint8Array(
- chunks
- .slice()
- .map((chunk) => [...chunk])
- .flat(),
- );
- const readableStream = new ReadableStream({
- pull(controller): void {
- const chunk = chunks.shift();
- if (!chunk) return controller.close();
-
- controller.enqueue(chunk);
- },
- });
-
- const reader = readerFromStreamReader(readableStream.getReader());
-
- const n = await Deno.copy(reader, writer, { bufSize });
- assertEquals(n, expected.length);
- assertEquals(expected, writer.bytes());
-});
-
-Deno.test("toWritableCheck", async function (): Promise<void> {
- const written: string[] = [];
- const chunks: string[] = ["hello", "deno", "land"];
- const decoder = new TextDecoder();
-
- // deno-lint-ignore require-await
- async function write(p: Uint8Array): Promise<number> {
- written.push(decoder.decode(p));
- return p.length;
- }
-
- const writableStream = writableStreamFromWriter({ write });
-
- const encoder = new TextEncoder();
- const streamWriter = writableStream.getWriter();
- for (const chunk of chunks) {
- await streamWriter.write(encoder.encode(chunk));
- }
-
- assertEquals(written, chunks);
-});
-
-Deno.test("toReadableCheck", async function (): Promise<void> {
- const chunks: string[] = ["hello", "deno", "land"];
- const expected = chunks.slice();
- const readChunks: string[] = [];
- const encoder = new TextEncoder();
-
- // deno-lint-ignore require-await
- async function read(p: Uint8Array): Promise<number | null> {
- const chunk = chunks.shift();
- if (chunk === undefined) {
- return null;
- } else {
- const encoded = encoder.encode(chunk);
- p.set(encoded);
- return encoded.length;
- }
- }
- const iter = Deno.iter({ read });
- const writableStream = readableStreamFromAsyncIterator(iter);
-
- const decoder = new TextDecoder();
- for await (const chunk of writableStream) {
- readChunks.push(decoder.decode(chunk));
- }
-
- assertEquals(expected, readChunks);
-});