@libp2p/interface-compliance-tests 5.2.0-9891ecd73 → 5.2.0-dab5cf724
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-test.d.ts","sourceRoot":"","sources":["../../../src/stream-muxer/base-test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"base-test.d.ts","sourceRoot":"","sources":["../../../src/stream-muxer/base-test.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAU,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;iCAQ3C,UAAU,kBAAkB,CAAC,KAAG,IAAI;AAA5D,wBA8KC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { expect } from 'aegir/chai';
|
|
2
2
|
import all from 'it-all';
|
|
3
|
-
import { byteStream } from 'it-byte-stream';
|
|
4
3
|
import drain from 'it-drain';
|
|
5
4
|
import map from 'it-map';
|
|
6
5
|
import { duplexPair } from 'it-pair/duplex';
|
|
@@ -149,200 +148,6 @@ export default (common) => {
|
|
|
149
148
|
expect(listenerChunks).to.be.eql(['hey']);
|
|
150
149
|
expect(dialerChunks).to.be.eql(['hello']);
|
|
151
150
|
});
|
|
152
|
-
it('should echo a small value via a pipe', async () => {
|
|
153
|
-
const p = duplexPair();
|
|
154
|
-
const onDialerStreamPromise = defer();
|
|
155
|
-
const onDataReceivedPromise = defer();
|
|
156
|
-
const dialerFactory = await common.setup();
|
|
157
|
-
const dialer = dialerFactory.createStreamMuxer({
|
|
158
|
-
direction: 'outbound',
|
|
159
|
-
onIncomingStream: (stream) => {
|
|
160
|
-
onDialerStreamPromise.resolve(stream);
|
|
161
|
-
}
|
|
162
|
-
});
|
|
163
|
-
const listenerFactory = await common.setup();
|
|
164
|
-
const listener = listenerFactory.createStreamMuxer({
|
|
165
|
-
direction: 'inbound',
|
|
166
|
-
onIncomingStream: (stream) => {
|
|
167
|
-
void Promise.resolve().then(async () => {
|
|
168
|
-
const output = new Uint8ArrayList();
|
|
169
|
-
for await (const buf of stream.source) {
|
|
170
|
-
output.append(buf);
|
|
171
|
-
}
|
|
172
|
-
onDataReceivedPromise.resolve(output.subarray());
|
|
173
|
-
});
|
|
174
|
-
}
|
|
175
|
-
});
|
|
176
|
-
void pipe(p[0], dialer, p[0]);
|
|
177
|
-
void pipe(p[1], listener, p[1]);
|
|
178
|
-
const stream = await dialer.newStream();
|
|
179
|
-
const input = Uint8Array.from([0, 1, 2, 3, 4]);
|
|
180
|
-
await pipe([input], stream);
|
|
181
|
-
await stream.close();
|
|
182
|
-
expect(await onDataReceivedPromise.promise).to.equalBytes(input);
|
|
183
|
-
});
|
|
184
|
-
it('should echo a large value via a pipe', async () => {
|
|
185
|
-
const p = duplexPair();
|
|
186
|
-
const onDialerStreamPromise = defer();
|
|
187
|
-
const onDataReceivedPromise = defer();
|
|
188
|
-
const dialerFactory = await common.setup();
|
|
189
|
-
const dialer = dialerFactory.createStreamMuxer({
|
|
190
|
-
direction: 'outbound',
|
|
191
|
-
onIncomingStream: (stream) => {
|
|
192
|
-
onDialerStreamPromise.resolve(stream);
|
|
193
|
-
}
|
|
194
|
-
});
|
|
195
|
-
const listenerFactory = await common.setup();
|
|
196
|
-
const listener = listenerFactory.createStreamMuxer({
|
|
197
|
-
direction: 'inbound',
|
|
198
|
-
onIncomingStream: (stream) => {
|
|
199
|
-
void Promise.resolve().then(async () => {
|
|
200
|
-
const output = new Uint8ArrayList();
|
|
201
|
-
for await (const buf of stream.source) {
|
|
202
|
-
output.append(buf);
|
|
203
|
-
}
|
|
204
|
-
onDataReceivedPromise.resolve(output.subarray());
|
|
205
|
-
});
|
|
206
|
-
}
|
|
207
|
-
});
|
|
208
|
-
void pipe(p[0], dialer, p[0]);
|
|
209
|
-
void pipe(p[1], listener, p[1]);
|
|
210
|
-
const stream = await dialer.newStream();
|
|
211
|
-
const input = Uint8Array.from(new Array(1024 * 1024 * 10).fill(0));
|
|
212
|
-
await pipe([input], stream);
|
|
213
|
-
await stream.close();
|
|
214
|
-
expect(await onDataReceivedPromise.promise).to.equalBytes(input);
|
|
215
|
-
});
|
|
216
|
-
it('should echo a small value via sink', async () => {
|
|
217
|
-
const p = duplexPair();
|
|
218
|
-
const onDialerStreamPromise = defer();
|
|
219
|
-
const onDataReceivedPromise = defer();
|
|
220
|
-
const dialerFactory = await common.setup();
|
|
221
|
-
const dialer = dialerFactory.createStreamMuxer({
|
|
222
|
-
direction: 'outbound',
|
|
223
|
-
onIncomingStream: (stream) => {
|
|
224
|
-
onDialerStreamPromise.resolve(stream);
|
|
225
|
-
}
|
|
226
|
-
});
|
|
227
|
-
const listenerFactory = await common.setup();
|
|
228
|
-
const listener = listenerFactory.createStreamMuxer({
|
|
229
|
-
direction: 'inbound',
|
|
230
|
-
onIncomingStream: (stream) => {
|
|
231
|
-
void Promise.resolve().then(async () => {
|
|
232
|
-
const output = new Uint8ArrayList();
|
|
233
|
-
for await (const buf of stream.source) {
|
|
234
|
-
output.append(buf);
|
|
235
|
-
}
|
|
236
|
-
onDataReceivedPromise.resolve(output.subarray());
|
|
237
|
-
});
|
|
238
|
-
}
|
|
239
|
-
});
|
|
240
|
-
void pipe(p[0], dialer, p[0]);
|
|
241
|
-
void pipe(p[1], listener, p[1]);
|
|
242
|
-
const stream = await dialer.newStream();
|
|
243
|
-
const input = Uint8Array.from([0, 1, 2, 3, 4]);
|
|
244
|
-
await stream.sink([input]);
|
|
245
|
-
await stream.close();
|
|
246
|
-
expect(await onDataReceivedPromise.promise).to.equalBytes(input);
|
|
247
|
-
});
|
|
248
|
-
it('should echo a large value via sink', async () => {
|
|
249
|
-
const p = duplexPair();
|
|
250
|
-
const onDialerStreamPromise = defer();
|
|
251
|
-
const onDataReceivedPromise = defer();
|
|
252
|
-
const dialerFactory = await common.setup();
|
|
253
|
-
const dialer = dialerFactory.createStreamMuxer({
|
|
254
|
-
direction: 'outbound',
|
|
255
|
-
onIncomingStream: (stream) => {
|
|
256
|
-
onDialerStreamPromise.resolve(stream);
|
|
257
|
-
}
|
|
258
|
-
});
|
|
259
|
-
const listenerFactory = await common.setup();
|
|
260
|
-
const listener = listenerFactory.createStreamMuxer({
|
|
261
|
-
direction: 'inbound',
|
|
262
|
-
onIncomingStream: (stream) => {
|
|
263
|
-
void Promise.resolve().then(async () => {
|
|
264
|
-
const output = new Uint8ArrayList();
|
|
265
|
-
for await (const buf of stream.source) {
|
|
266
|
-
output.append(buf);
|
|
267
|
-
}
|
|
268
|
-
onDataReceivedPromise.resolve(output.subarray());
|
|
269
|
-
});
|
|
270
|
-
}
|
|
271
|
-
});
|
|
272
|
-
void pipe(p[0], dialer, p[0]);
|
|
273
|
-
void pipe(p[1], listener, p[1]);
|
|
274
|
-
const stream = await dialer.newStream();
|
|
275
|
-
const input = Uint8Array.from(new Array(1024 * 1024 * 10).fill(0));
|
|
276
|
-
await stream.sink([input]);
|
|
277
|
-
await stream.close();
|
|
278
|
-
expect(await onDataReceivedPromise.promise).to.equalBytes(input);
|
|
279
|
-
});
|
|
280
|
-
it('should echo a small value via a pushable', async () => {
|
|
281
|
-
const p = duplexPair();
|
|
282
|
-
const onDialerStreamPromise = defer();
|
|
283
|
-
const onDataReceivedPromise = defer();
|
|
284
|
-
const dialerFactory = await common.setup();
|
|
285
|
-
const dialer = dialerFactory.createStreamMuxer({
|
|
286
|
-
direction: 'outbound',
|
|
287
|
-
onIncomingStream: (stream) => {
|
|
288
|
-
onDialerStreamPromise.resolve(stream);
|
|
289
|
-
}
|
|
290
|
-
});
|
|
291
|
-
const listenerFactory = await common.setup();
|
|
292
|
-
const listener = listenerFactory.createStreamMuxer({
|
|
293
|
-
direction: 'inbound',
|
|
294
|
-
onIncomingStream: (stream) => {
|
|
295
|
-
void Promise.resolve().then(async () => {
|
|
296
|
-
const output = new Uint8ArrayList();
|
|
297
|
-
for await (const buf of stream.source) {
|
|
298
|
-
output.append(buf);
|
|
299
|
-
}
|
|
300
|
-
onDataReceivedPromise.resolve(output.subarray());
|
|
301
|
-
});
|
|
302
|
-
}
|
|
303
|
-
});
|
|
304
|
-
void pipe(p[0], dialer, p[0]);
|
|
305
|
-
void pipe(p[1], listener, p[1]);
|
|
306
|
-
const stream = await dialer.newStream();
|
|
307
|
-
const input = Uint8Array.from([0, 1, 2, 3, 4]);
|
|
308
|
-
const pushable = byteStream(stream);
|
|
309
|
-
await pushable.write(input);
|
|
310
|
-
await pushable.unwrap().close();
|
|
311
|
-
expect(await onDataReceivedPromise.promise).to.equalBytes(input);
|
|
312
|
-
});
|
|
313
|
-
it('should echo a large value via a pushable', async () => {
|
|
314
|
-
const p = duplexPair();
|
|
315
|
-
const onDialerStreamPromise = defer();
|
|
316
|
-
const onDataReceivedPromise = defer();
|
|
317
|
-
const dialerFactory = await common.setup();
|
|
318
|
-
const dialer = dialerFactory.createStreamMuxer({
|
|
319
|
-
direction: 'outbound',
|
|
320
|
-
onIncomingStream: (stream) => {
|
|
321
|
-
onDialerStreamPromise.resolve(stream);
|
|
322
|
-
}
|
|
323
|
-
});
|
|
324
|
-
const listenerFactory = await common.setup();
|
|
325
|
-
const listener = listenerFactory.createStreamMuxer({
|
|
326
|
-
direction: 'inbound',
|
|
327
|
-
onIncomingStream: (stream) => {
|
|
328
|
-
void Promise.resolve().then(async () => {
|
|
329
|
-
const output = new Uint8ArrayList();
|
|
330
|
-
for await (const buf of stream.source) {
|
|
331
|
-
output.append(buf);
|
|
332
|
-
}
|
|
333
|
-
onDataReceivedPromise.resolve(output.subarray());
|
|
334
|
-
});
|
|
335
|
-
}
|
|
336
|
-
});
|
|
337
|
-
void pipe(p[0], dialer, p[0]);
|
|
338
|
-
void pipe(p[1], listener, p[1]);
|
|
339
|
-
const stream = await dialer.newStream();
|
|
340
|
-
const input = Uint8Array.from(new Array(1024 * 1024 * 10).fill(0));
|
|
341
|
-
const pushable = byteStream(stream);
|
|
342
|
-
await pushable.write(input);
|
|
343
|
-
await pushable.unwrap().close();
|
|
344
|
-
expect(await onDataReceivedPromise.promise).to.equalBytes(input);
|
|
345
|
-
});
|
|
346
151
|
});
|
|
347
152
|
};
|
|
348
153
|
//# sourceMappingURL=base-test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-test.js","sourceRoot":"","sources":["../../../src/stream-muxer/base-test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"base-test.js","sourceRoot":"","sources":["../../../src/stream-muxer/base-test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libp2p/interface-compliance-tests",
|
|
3
|
-
"version": "5.2.0-
|
|
3
|
+
"version": "5.2.0-dab5cf724",
|
|
4
4
|
"description": "Compliance tests for JS libp2p interfaces",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
6
|
"homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/interface-compliance-tests#readme",
|
|
@@ -111,40 +111,39 @@
|
|
|
111
111
|
"test:electron-main": "aegir test -t electron-main"
|
|
112
112
|
},
|
|
113
113
|
"dependencies": {
|
|
114
|
-
"@libp2p/interface": "1.1.2-
|
|
115
|
-
"@libp2p/interface-internal": "1.0.7-
|
|
116
|
-
"@libp2p/logger": "4.0.5-
|
|
117
|
-
"@libp2p/multistream-select": "5.1.2-
|
|
118
|
-
"@libp2p/peer-collections": "5.1.5-
|
|
119
|
-
"@libp2p/peer-id": "4.0.5-
|
|
120
|
-
"@libp2p/peer-id-factory": "4.0.5-
|
|
121
|
-
"@libp2p/utils": "5.2.3-
|
|
122
|
-
"@multiformats/multiaddr": "^12.1.
|
|
114
|
+
"@libp2p/interface": "1.1.2-dab5cf724",
|
|
115
|
+
"@libp2p/interface-internal": "1.0.7-dab5cf724",
|
|
116
|
+
"@libp2p/logger": "4.0.5-dab5cf724",
|
|
117
|
+
"@libp2p/multistream-select": "5.1.2-dab5cf724",
|
|
118
|
+
"@libp2p/peer-collections": "5.1.5-dab5cf724",
|
|
119
|
+
"@libp2p/peer-id": "4.0.5-dab5cf724",
|
|
120
|
+
"@libp2p/peer-id-factory": "4.0.5-dab5cf724",
|
|
121
|
+
"@libp2p/utils": "5.2.3-dab5cf724",
|
|
122
|
+
"@multiformats/multiaddr": "^12.1.10",
|
|
123
123
|
"abortable-iterator": "^5.0.1",
|
|
124
|
-
"aegir": "^42.
|
|
124
|
+
"aegir": "^42.0.0",
|
|
125
125
|
"delay": "^6.0.0",
|
|
126
|
-
"it-all": "^3.0.
|
|
127
|
-
"it-
|
|
128
|
-
"it-
|
|
129
|
-
"it-
|
|
130
|
-
"it-ndjson": "^1.0.5",
|
|
126
|
+
"it-all": "^3.0.2",
|
|
127
|
+
"it-drain": "^3.0.2",
|
|
128
|
+
"it-map": "^3.0.4",
|
|
129
|
+
"it-ndjson": "^1.0.3",
|
|
131
130
|
"it-pair": "^2.0.6",
|
|
132
131
|
"it-pipe": "^3.0.1",
|
|
133
|
-
"it-protobuf-stream": "^1.1.
|
|
132
|
+
"it-protobuf-stream": "^1.1.1",
|
|
134
133
|
"it-pushable": "^3.2.3",
|
|
135
134
|
"it-stream-types": "^2.0.1",
|
|
136
|
-
"it-to-buffer": "^4.0.
|
|
135
|
+
"it-to-buffer": "^4.0.2",
|
|
137
136
|
"merge-options": "^3.0.4",
|
|
138
137
|
"p-defer": "^4.0.0",
|
|
139
138
|
"p-event": "^6.0.0",
|
|
140
139
|
"p-limit": "^5.0.0",
|
|
141
140
|
"p-wait-for": "^5.0.2",
|
|
142
|
-
"protons-runtime": "^5.
|
|
143
|
-
"sinon": "^17.0.
|
|
144
|
-
"uint8arraylist": "^2.4.
|
|
145
|
-
"uint8arrays": "^5.0.
|
|
141
|
+
"protons-runtime": "^5.0.0",
|
|
142
|
+
"sinon": "^17.0.0",
|
|
143
|
+
"uint8arraylist": "^2.4.7",
|
|
144
|
+
"uint8arrays": "^5.0.0"
|
|
146
145
|
},
|
|
147
146
|
"devDependencies": {
|
|
148
|
-
"protons": "^7.
|
|
147
|
+
"protons": "^7.3.0"
|
|
149
148
|
}
|
|
150
149
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { expect } from 'aegir/chai'
|
|
2
2
|
import all from 'it-all'
|
|
3
|
-
import { byteStream } from 'it-byte-stream'
|
|
4
3
|
import drain from 'it-drain'
|
|
5
4
|
import map from 'it-map'
|
|
6
5
|
import { duplexPair } from 'it-pair/duplex'
|
|
@@ -192,247 +191,5 @@ export default (common: TestSetup<StreamMuxerFactory>): void => {
|
|
|
192
191
|
expect(listenerChunks).to.be.eql(['hey'])
|
|
193
192
|
expect(dialerChunks).to.be.eql(['hello'])
|
|
194
193
|
})
|
|
195
|
-
|
|
196
|
-
it('should echo a small value via a pipe', async () => {
|
|
197
|
-
const p = duplexPair<Uint8Array | Uint8ArrayList>()
|
|
198
|
-
const onDialerStreamPromise: DeferredPromise<Stream> = defer()
|
|
199
|
-
const onDataReceivedPromise: DeferredPromise<Uint8Array> = defer()
|
|
200
|
-
const dialerFactory = await common.setup()
|
|
201
|
-
const dialer = dialerFactory.createStreamMuxer({
|
|
202
|
-
direction: 'outbound',
|
|
203
|
-
onIncomingStream: (stream) => {
|
|
204
|
-
onDialerStreamPromise.resolve(stream)
|
|
205
|
-
}
|
|
206
|
-
})
|
|
207
|
-
const listenerFactory = await common.setup()
|
|
208
|
-
const listener = listenerFactory.createStreamMuxer({
|
|
209
|
-
direction: 'inbound',
|
|
210
|
-
onIncomingStream: (stream) => {
|
|
211
|
-
void Promise.resolve().then(async () => {
|
|
212
|
-
const output = new Uint8ArrayList()
|
|
213
|
-
|
|
214
|
-
for await (const buf of stream.source) {
|
|
215
|
-
output.append(buf)
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
onDataReceivedPromise.resolve(output.subarray())
|
|
219
|
-
})
|
|
220
|
-
}
|
|
221
|
-
})
|
|
222
|
-
|
|
223
|
-
void pipe(p[0], dialer, p[0])
|
|
224
|
-
void pipe(p[1], listener, p[1])
|
|
225
|
-
|
|
226
|
-
const stream = await dialer.newStream()
|
|
227
|
-
const input = Uint8Array.from([0, 1, 2, 3, 4])
|
|
228
|
-
|
|
229
|
-
await pipe(
|
|
230
|
-
[input],
|
|
231
|
-
stream
|
|
232
|
-
)
|
|
233
|
-
await stream.close()
|
|
234
|
-
|
|
235
|
-
expect(await onDataReceivedPromise.promise).to.equalBytes(input)
|
|
236
|
-
})
|
|
237
|
-
|
|
238
|
-
it('should echo a large value via a pipe', async () => {
|
|
239
|
-
const p = duplexPair<Uint8Array | Uint8ArrayList>()
|
|
240
|
-
const onDialerStreamPromise: DeferredPromise<Stream> = defer()
|
|
241
|
-
const onDataReceivedPromise: DeferredPromise<Uint8Array> = defer()
|
|
242
|
-
const dialerFactory = await common.setup()
|
|
243
|
-
const dialer = dialerFactory.createStreamMuxer({
|
|
244
|
-
direction: 'outbound',
|
|
245
|
-
onIncomingStream: (stream) => {
|
|
246
|
-
onDialerStreamPromise.resolve(stream)
|
|
247
|
-
}
|
|
248
|
-
})
|
|
249
|
-
const listenerFactory = await common.setup()
|
|
250
|
-
const listener = listenerFactory.createStreamMuxer({
|
|
251
|
-
direction: 'inbound',
|
|
252
|
-
onIncomingStream: (stream) => {
|
|
253
|
-
void Promise.resolve().then(async () => {
|
|
254
|
-
const output = new Uint8ArrayList()
|
|
255
|
-
|
|
256
|
-
for await (const buf of stream.source) {
|
|
257
|
-
output.append(buf)
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
onDataReceivedPromise.resolve(output.subarray())
|
|
261
|
-
})
|
|
262
|
-
}
|
|
263
|
-
})
|
|
264
|
-
|
|
265
|
-
void pipe(p[0], dialer, p[0])
|
|
266
|
-
void pipe(p[1], listener, p[1])
|
|
267
|
-
|
|
268
|
-
const stream = await dialer.newStream()
|
|
269
|
-
const input = Uint8Array.from(new Array(1024 * 1024 * 10).fill(0))
|
|
270
|
-
|
|
271
|
-
await pipe(
|
|
272
|
-
[input],
|
|
273
|
-
stream
|
|
274
|
-
)
|
|
275
|
-
await stream.close()
|
|
276
|
-
|
|
277
|
-
expect(await onDataReceivedPromise.promise).to.equalBytes(input)
|
|
278
|
-
})
|
|
279
|
-
|
|
280
|
-
it('should echo a small value via sink', async () => {
|
|
281
|
-
const p = duplexPair<Uint8Array | Uint8ArrayList>()
|
|
282
|
-
const onDialerStreamPromise: DeferredPromise<Stream> = defer()
|
|
283
|
-
const onDataReceivedPromise: DeferredPromise<Uint8Array> = defer()
|
|
284
|
-
const dialerFactory = await common.setup()
|
|
285
|
-
const dialer = dialerFactory.createStreamMuxer({
|
|
286
|
-
direction: 'outbound',
|
|
287
|
-
onIncomingStream: (stream) => {
|
|
288
|
-
onDialerStreamPromise.resolve(stream)
|
|
289
|
-
}
|
|
290
|
-
})
|
|
291
|
-
const listenerFactory = await common.setup()
|
|
292
|
-
const listener = listenerFactory.createStreamMuxer({
|
|
293
|
-
direction: 'inbound',
|
|
294
|
-
onIncomingStream: (stream) => {
|
|
295
|
-
void Promise.resolve().then(async () => {
|
|
296
|
-
const output = new Uint8ArrayList()
|
|
297
|
-
|
|
298
|
-
for await (const buf of stream.source) {
|
|
299
|
-
output.append(buf)
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
onDataReceivedPromise.resolve(output.subarray())
|
|
303
|
-
})
|
|
304
|
-
}
|
|
305
|
-
})
|
|
306
|
-
|
|
307
|
-
void pipe(p[0], dialer, p[0])
|
|
308
|
-
void pipe(p[1], listener, p[1])
|
|
309
|
-
|
|
310
|
-
const stream = await dialer.newStream()
|
|
311
|
-
const input = Uint8Array.from([0, 1, 2, 3, 4])
|
|
312
|
-
|
|
313
|
-
await stream.sink([input])
|
|
314
|
-
await stream.close()
|
|
315
|
-
|
|
316
|
-
expect(await onDataReceivedPromise.promise).to.equalBytes(input)
|
|
317
|
-
})
|
|
318
|
-
|
|
319
|
-
it('should echo a large value via sink', async () => {
|
|
320
|
-
const p = duplexPair<Uint8Array | Uint8ArrayList>()
|
|
321
|
-
const onDialerStreamPromise: DeferredPromise<Stream> = defer()
|
|
322
|
-
const onDataReceivedPromise: DeferredPromise<Uint8Array> = defer()
|
|
323
|
-
const dialerFactory = await common.setup()
|
|
324
|
-
const dialer = dialerFactory.createStreamMuxer({
|
|
325
|
-
direction: 'outbound',
|
|
326
|
-
onIncomingStream: (stream) => {
|
|
327
|
-
onDialerStreamPromise.resolve(stream)
|
|
328
|
-
}
|
|
329
|
-
})
|
|
330
|
-
const listenerFactory = await common.setup()
|
|
331
|
-
const listener = listenerFactory.createStreamMuxer({
|
|
332
|
-
direction: 'inbound',
|
|
333
|
-
onIncomingStream: (stream) => {
|
|
334
|
-
void Promise.resolve().then(async () => {
|
|
335
|
-
const output = new Uint8ArrayList()
|
|
336
|
-
|
|
337
|
-
for await (const buf of stream.source) {
|
|
338
|
-
output.append(buf)
|
|
339
|
-
}
|
|
340
|
-
|
|
341
|
-
onDataReceivedPromise.resolve(output.subarray())
|
|
342
|
-
})
|
|
343
|
-
}
|
|
344
|
-
})
|
|
345
|
-
|
|
346
|
-
void pipe(p[0], dialer, p[0])
|
|
347
|
-
void pipe(p[1], listener, p[1])
|
|
348
|
-
|
|
349
|
-
const stream = await dialer.newStream()
|
|
350
|
-
const input = Uint8Array.from(new Array(1024 * 1024 * 10).fill(0))
|
|
351
|
-
|
|
352
|
-
await stream.sink([input])
|
|
353
|
-
await stream.close()
|
|
354
|
-
|
|
355
|
-
expect(await onDataReceivedPromise.promise).to.equalBytes(input)
|
|
356
|
-
})
|
|
357
|
-
|
|
358
|
-
it('should echo a small value via a pushable', async () => {
|
|
359
|
-
const p = duplexPair<Uint8Array | Uint8ArrayList>()
|
|
360
|
-
const onDialerStreamPromise: DeferredPromise<Stream> = defer()
|
|
361
|
-
const onDataReceivedPromise: DeferredPromise<Uint8Array> = defer()
|
|
362
|
-
const dialerFactory = await common.setup()
|
|
363
|
-
const dialer = dialerFactory.createStreamMuxer({
|
|
364
|
-
direction: 'outbound',
|
|
365
|
-
onIncomingStream: (stream) => {
|
|
366
|
-
onDialerStreamPromise.resolve(stream)
|
|
367
|
-
}
|
|
368
|
-
})
|
|
369
|
-
const listenerFactory = await common.setup()
|
|
370
|
-
const listener = listenerFactory.createStreamMuxer({
|
|
371
|
-
direction: 'inbound',
|
|
372
|
-
onIncomingStream: (stream) => {
|
|
373
|
-
void Promise.resolve().then(async () => {
|
|
374
|
-
const output = new Uint8ArrayList()
|
|
375
|
-
|
|
376
|
-
for await (const buf of stream.source) {
|
|
377
|
-
output.append(buf)
|
|
378
|
-
}
|
|
379
|
-
|
|
380
|
-
onDataReceivedPromise.resolve(output.subarray())
|
|
381
|
-
})
|
|
382
|
-
}
|
|
383
|
-
})
|
|
384
|
-
|
|
385
|
-
void pipe(p[0], dialer, p[0])
|
|
386
|
-
void pipe(p[1], listener, p[1])
|
|
387
|
-
|
|
388
|
-
const stream = await dialer.newStream()
|
|
389
|
-
const input = Uint8Array.from([0, 1, 2, 3, 4])
|
|
390
|
-
|
|
391
|
-
const pushable = byteStream(stream)
|
|
392
|
-
await pushable.write(input)
|
|
393
|
-
await pushable.unwrap().close()
|
|
394
|
-
|
|
395
|
-
expect(await onDataReceivedPromise.promise).to.equalBytes(input)
|
|
396
|
-
})
|
|
397
|
-
|
|
398
|
-
it('should echo a large value via a pushable', async () => {
|
|
399
|
-
const p = duplexPair<Uint8Array | Uint8ArrayList>()
|
|
400
|
-
const onDialerStreamPromise: DeferredPromise<Stream> = defer()
|
|
401
|
-
const onDataReceivedPromise: DeferredPromise<Uint8Array> = defer()
|
|
402
|
-
const dialerFactory = await common.setup()
|
|
403
|
-
const dialer = dialerFactory.createStreamMuxer({
|
|
404
|
-
direction: 'outbound',
|
|
405
|
-
onIncomingStream: (stream) => {
|
|
406
|
-
onDialerStreamPromise.resolve(stream)
|
|
407
|
-
}
|
|
408
|
-
})
|
|
409
|
-
const listenerFactory = await common.setup()
|
|
410
|
-
const listener = listenerFactory.createStreamMuxer({
|
|
411
|
-
direction: 'inbound',
|
|
412
|
-
onIncomingStream: (stream) => {
|
|
413
|
-
void Promise.resolve().then(async () => {
|
|
414
|
-
const output = new Uint8ArrayList()
|
|
415
|
-
|
|
416
|
-
for await (const buf of stream.source) {
|
|
417
|
-
output.append(buf)
|
|
418
|
-
}
|
|
419
|
-
|
|
420
|
-
onDataReceivedPromise.resolve(output.subarray())
|
|
421
|
-
})
|
|
422
|
-
}
|
|
423
|
-
})
|
|
424
|
-
|
|
425
|
-
void pipe(p[0], dialer, p[0])
|
|
426
|
-
void pipe(p[1], listener, p[1])
|
|
427
|
-
|
|
428
|
-
const stream = await dialer.newStream()
|
|
429
|
-
const input = Uint8Array.from(new Array(1024 * 1024 * 10).fill(0))
|
|
430
|
-
|
|
431
|
-
const pushable = byteStream(stream)
|
|
432
|
-
await pushable.write(input)
|
|
433
|
-
await pushable.unwrap().close()
|
|
434
|
-
|
|
435
|
-
expect(await onDataReceivedPromise.promise).to.equalBytes(input)
|
|
436
|
-
})
|
|
437
194
|
})
|
|
438
195
|
}
|