Skip to content

Commit 847b91a

Browse files
Guy BedfordJakeChampion
authored andcommitted
try more direct test case
1 parent 5607e31 commit 847b91a

File tree

1 file changed

+6
-107
lines changed
  • integration-tests/js-compute/fixtures/byob/bin

1 file changed

+6
-107
lines changed

integration-tests/js-compute/fixtures/byob/bin/index.js

Lines changed: 6 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -11,118 +11,17 @@ function strictEqual (a, b, description) {
1111
}
1212

1313
addEventListener("fetch", async (event) => {
14-
let cnt = 0;
1514
const stream = new ReadableStream({
1615
type: 'bytes',
1716
autoAllocateChunkSize: 1024,
1817
async pull (controller) {
1918
const view = controller.byobRequest.view;
20-
cnt++;
21-
if (cnt === 1) {
22-
}
23-
else if (cnt === 2) {
24-
let cnt = 0;
25-
const stream = new ReadableStream({
26-
type: 'bytes',
27-
autoAllocateChunkSize: 1024,
28-
start (controller) {
29-
},
30-
pull (controller) {
31-
cnt++;
32-
const view = controller.byobRequest?.view;
33-
if (cnt < 3) {
34-
view[0] = 1;
35-
view[1] = 2;
36-
view[2] = 3;
37-
controller.byobRequest.respond(3);
38-
} else if (cnt == 3) {
39-
controller.enqueue(new Uint8Array([1,2,4]));
40-
}
41-
if (cnt === 3)
42-
return controller.close();
43-
}
44-
});
45-
46-
const byobReader = stream.getReader();
47-
let buf;
48-
let result;
49-
let offset = 0;
50-
while (true) {
51-
if (buf && cnt < 3) {
52-
const output = new Uint8Array(buf);
53-
strictEqual(output[0], 1);
54-
strictEqual(output[1], 2);
55-
strictEqual(output[2], 3);
56-
strictEqual(output[3], 0);
57-
strictEqual(output.byteLength, 1024);
58-
}
59-
result = await byobReader.read();
60-
if (result.done)
61-
break;
62-
offset += result.value.byteLength;
63-
buf = result.value.buffer;
64-
}
65-
66-
strictEqual(cnt, 3);
67-
const output = new Uint8Array(buf);
68-
strictEqual(output[0], 1);
69-
strictEqual(output[1], 2);
70-
strictEqual(output[2], 4);
71-
strictEqual(output[3], undefined);
72-
strictEqual(output.byteLength, 3);
73-
view[0] = 104;
74-
view[1] = 101;
75-
view[2] = 121;
76-
view[3] = 49;
77-
controller.byobRequest.respond(4);
78-
}
79-
else if (cnt === 3) {
80-
let cnt = 0;
81-
const stream = new ReadableStream({
82-
type: 'bytes',
83-
start (controller) {
84-
},
85-
pull (controller) {
86-
cnt++;
87-
const view = controller.byobRequest?.view;
88-
if (view) {
89-
view[0] = 1;
90-
view[1] = 2;
91-
view[2] = 3;
92-
controller.byobRequest.respond(3);
93-
}
94-
if (cnt === 3)
95-
return controller.close();
96-
}
97-
});
98-
99-
const byobReader = stream.getReader({ mode: 'byob' });
100-
let buf = new ArrayBuffer(10);
101-
let result;
102-
let offset = 0;
103-
do {
104-
result = await byobReader.read(new Uint8Array(buf, offset));
105-
offset += result.value.byteLength;
106-
buf = result.value.buffer;
107-
} while(!result.done);
108-
109-
const out = new Uint8Array(buf);
110-
if (out[0] === 1 && out[1] === 2 && out[2] === 3 && out[3] === 1 && out[4] === 2 && out[5] === 3 && out[6] === 1 && out[7] === 2 && out[8] === 3) {
111-
view[0] = 104;
112-
view[1] = 101;
113-
view[2] = 121;
114-
view[3] = 50;
115-
controller.byobRequest.respond(4);
116-
}
117-
}
118-
else if (cnt === 4) {
119-
view[0] = 104;
120-
view[1] = 101;
121-
view[2] = 121;
122-
view[3] = 51;
123-
controller.byobRequest.respond(4);
124-
controller.close();
125-
}
19+
view[0] = 104;
20+
view[1] = 101;
21+
view[2] = 121;
22+
view[3] = 51;
23+
controller.byobRequest.respond(4);
24+
controller.close();
12625
}
12726
});
12827
event.respondWith(new Response(stream));

0 commit comments

Comments
 (0)