@theia/process 1.17.0-next.ff9e0507 → 1.18.0-next.04e2816d
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.
- package/lib/common/process-common-module.js +3 -3
- package/lib/common/process-common-module.js.map +1 -1
- package/lib/common/shell-command-builder.js +54 -129
- package/lib/common/shell-command-builder.js.map +1 -1
- package/lib/common/shell-command-builder.slow-spec.js +162 -291
- package/lib/common/shell-command-builder.slow-spec.js.map +1 -1
- package/lib/common/shell-quoting.js +22 -22
- package/lib/common/shell-quoting.js.map +1 -1
- package/lib/common/shell-quoting.spec.js +34 -84
- package/lib/common/shell-quoting.spec.js.map +1 -1
- package/lib/node/dev-null-stream.js +10 -27
- package/lib/node/dev-null-stream.js.map +1 -1
- package/lib/node/multi-ring-buffer.js +104 -195
- package/lib/node/multi-ring-buffer.js.map +1 -1
- package/lib/node/multi-ring-buffer.spec.js +220 -468
- package/lib/node/multi-ring-buffer.spec.js.map +1 -1
- package/lib/node/process-backend-module.js +25 -31
- package/lib/node/process-backend-module.js.map +1 -1
- package/lib/node/process-manager.js +37 -65
- package/lib/node/process-manager.js.map +1 -1
- package/lib/node/process.js +68 -131
- package/lib/node/process.js.map +1 -1
- package/lib/node/pseudo-pty.js +8 -9
- package/lib/node/pseudo-pty.js.map +1 -1
- package/lib/node/raw-process.js +60 -92
- package/lib/node/raw-process.js.map +1 -1
- package/lib/node/raw-process.spec.js +114 -238
- package/lib/node/raw-process.spec.js.map +1 -1
- package/lib/node/task-terminal-process.js +13 -29
- package/lib/node/task-terminal-process.js.map +1 -1
- package/lib/node/terminal-process.js +75 -103
- package/lib/node/terminal-process.js.map +1 -1
- package/lib/node/terminal-process.spec.js +55 -132
- package/lib/node/terminal-process.spec.js.map +1 -1
- package/lib/node/test/process-test-container.js +4 -4
- package/lib/node/test/process-test-container.js.map +1 -1
- package/lib/node/utils.js +12 -45
- package/lib/node/utils.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-ring-buffer.js","sourceRoot":"","sources":["../../src/node/multi-ring-buffer.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;kFAckF
|
|
1
|
+
{"version":3,"file":"multi-ring-buffer.js","sourceRoot":"","sources":["../../src/node/multi-ring-buffer.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,485 +14,270 @@
|
|
|
14
14
|
*
|
|
15
15
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
16
16
|
********************************************************************************/
|
|
17
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
18
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
19
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
20
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
21
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
22
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
23
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
24
|
-
});
|
|
25
|
-
};
|
|
26
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
27
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
28
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
29
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
30
|
-
function step(op) {
|
|
31
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
32
|
-
while (_) try {
|
|
33
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
34
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
35
|
-
switch (op[0]) {
|
|
36
|
-
case 0: case 1: t = op; break;
|
|
37
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
38
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
39
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
40
|
-
default:
|
|
41
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
42
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
43
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
44
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
45
|
-
if (t[2]) _.ops.pop();
|
|
46
|
-
_.trys.pop(); continue;
|
|
47
|
-
}
|
|
48
|
-
op = body.call(thisArg, _);
|
|
49
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
50
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
|
-
var __values = (this && this.__values) || function(o) {
|
|
54
|
-
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
55
|
-
if (m) return m.call(o);
|
|
56
|
-
if (o && typeof o.length === "number") return {
|
|
57
|
-
next: function () {
|
|
58
|
-
if (o && i >= o.length) o = void 0;
|
|
59
|
-
return { value: o && o[i++], done: !o };
|
|
60
|
-
}
|
|
61
|
-
};
|
|
62
|
-
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
63
|
-
};
|
|
64
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
18
|
+
const chai = require("chai");
|
|
19
|
+
const multi_ring_buffer_1 = require("./multi-ring-buffer");
|
|
20
|
+
const expect = chai.expect;
|
|
68
21
|
describe('MultiRingBuffer', function () {
|
|
69
22
|
it('expect buffer to be empty initialized', function () {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
23
|
+
const size = 2;
|
|
24
|
+
const compareTo = Buffer.from('0000', 'hex');
|
|
25
|
+
const ringBuffer = new multi_ring_buffer_1.MultiRingBuffer({ size });
|
|
73
26
|
// eslint-disable-next-line no-unused-expressions
|
|
74
27
|
expect(ringBuffer['buffer'].equals(compareTo)).to.be.true;
|
|
75
28
|
});
|
|
76
29
|
it('expect enq and deq a string with unicode characters > 1 byte and no wrap around', function () {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
30
|
+
const ringBufferSize = 15;
|
|
31
|
+
const ringBuffer = new multi_ring_buffer_1.MultiRingBuffer({ size: ringBufferSize });
|
|
32
|
+
const buffer = '\u00bd + \u00bc = \u00be';
|
|
33
|
+
const bufferByteLength = Buffer.byteLength(buffer, 'utf8');
|
|
81
34
|
ringBuffer.enq(buffer);
|
|
82
35
|
expect(ringBuffer.size()).to.be.equal(bufferByteLength);
|
|
83
36
|
});
|
|
84
37
|
it('expect enq and deq a string with unicode characters > 1 byte and wrap around', function () {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
38
|
+
const buffer = '\u00bd + \u00bc = \u00be';
|
|
39
|
+
const ringBufferSize = Buffer.byteLength(buffer[buffer.length - 1]);
|
|
40
|
+
const ringBuffer = new multi_ring_buffer_1.MultiRingBuffer({ size: ringBufferSize });
|
|
88
41
|
ringBuffer.enq(buffer);
|
|
89
42
|
expect(ringBuffer.size()).to.be.equal(ringBufferSize);
|
|
90
|
-
|
|
91
|
-
|
|
43
|
+
const reader = ringBuffer.getReader();
|
|
44
|
+
const readBuffer = ringBuffer.deq(reader);
|
|
92
45
|
expect(ringBuffer).to.not.be.equal(undefined);
|
|
93
46
|
if (readBuffer !== undefined) {
|
|
94
47
|
expect(readBuffer).to.be.equal(buffer[buffer.length - 1].toString());
|
|
95
48
|
}
|
|
96
49
|
});
|
|
97
50
|
it('expect enq a string < ring buffer size ', function () {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
51
|
+
const size = 5;
|
|
52
|
+
const ringBuffer = new multi_ring_buffer_1.MultiRingBuffer({ size });
|
|
53
|
+
const buffer = 'test';
|
|
101
54
|
ringBuffer.enq(buffer);
|
|
102
55
|
expect(ringBuffer.size()).to.be.equal(buffer.length);
|
|
103
56
|
expect(ringBuffer.empty()).to.be.equal(false);
|
|
104
|
-
|
|
57
|
+
const reader = ringBuffer.getReader();
|
|
105
58
|
expect(ringBuffer.sizeForReader(reader)).to.be.equal(buffer.length);
|
|
106
59
|
expect(ringBuffer.emptyForReader(reader)).to.be.equal(false);
|
|
107
60
|
});
|
|
108
61
|
it('expect deq a string < ring buffer size ', function () {
|
|
109
|
-
|
|
110
|
-
|
|
62
|
+
const ringBuffer = new multi_ring_buffer_1.MultiRingBuffer({ size: 5 });
|
|
63
|
+
const buffer = 'test';
|
|
111
64
|
ringBuffer.enq(buffer);
|
|
112
65
|
expect(ringBuffer.size()).to.be.equal(4);
|
|
113
|
-
|
|
114
|
-
|
|
66
|
+
const reader = ringBuffer.getReader();
|
|
67
|
+
const readBuffer = ringBuffer.deq(reader);
|
|
115
68
|
expect(ringBuffer.size()).to.be.equal(4);
|
|
116
69
|
expect(ringBuffer.sizeForReader(reader)).to.be.equal(0);
|
|
117
70
|
expect(readBuffer).to.equal(buffer);
|
|
118
71
|
});
|
|
119
72
|
it('expect deq a string > ring buffer size ', function () {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
73
|
+
const size = 5;
|
|
74
|
+
const ringBuffer = new multi_ring_buffer_1.MultiRingBuffer({ size });
|
|
75
|
+
const buffer = 'testabcd';
|
|
123
76
|
ringBuffer.enq(buffer);
|
|
124
77
|
expect(ringBuffer.size()).to.be.equal(size);
|
|
125
|
-
|
|
126
|
-
|
|
78
|
+
const reader = ringBuffer.getReader();
|
|
79
|
+
const readBuffer = ringBuffer.deq(reader);
|
|
127
80
|
expect(ringBuffer.size()).to.be.equal(size);
|
|
128
81
|
expect(ringBuffer.sizeForReader(reader)).to.be.equal(0);
|
|
129
82
|
expect(readBuffer).to.equal(buffer.substr(buffer.length - size));
|
|
130
83
|
});
|
|
131
84
|
it('expect enq deq enq deq a string > ring buffer size ', function () {
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
for (
|
|
85
|
+
const size = 5;
|
|
86
|
+
const ringBuffer = new multi_ring_buffer_1.MultiRingBuffer({ size });
|
|
87
|
+
const buffer = '12345678';
|
|
88
|
+
for (let i = 0; i < 2; i++) {
|
|
136
89
|
ringBuffer.enq(buffer);
|
|
137
90
|
expect(ringBuffer.size()).to.be.equal(size);
|
|
138
|
-
|
|
139
|
-
|
|
91
|
+
const reader = ringBuffer.getReader();
|
|
92
|
+
const readBuffer = ringBuffer.deq(reader);
|
|
140
93
|
expect(ringBuffer.size()).to.be.equal(size);
|
|
141
94
|
expect(ringBuffer.sizeForReader(reader)).to.be.equal(0);
|
|
142
95
|
expect(readBuffer).to.equal(buffer.substr(buffer.length - size));
|
|
143
96
|
}
|
|
144
97
|
});
|
|
145
98
|
it('expect enq a string == ring buffer size then one > ring buffer size and dequeue them ', function () {
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
var buffer = buffers_1_1.value;
|
|
153
|
-
ringBuffer.enq(buffer);
|
|
154
|
-
expect(ringBuffer.size()).to.be.equal(size);
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
158
|
-
finally {
|
|
159
|
-
try {
|
|
160
|
-
if (buffers_1_1 && !buffers_1_1.done && (_a = buffers_1.return)) _a.call(buffers_1);
|
|
161
|
-
}
|
|
162
|
-
finally { if (e_1) throw e_1.error; }
|
|
99
|
+
const size = 5;
|
|
100
|
+
const ringBuffer = new multi_ring_buffer_1.MultiRingBuffer({ size });
|
|
101
|
+
const buffers = ['12345', '12345678'];
|
|
102
|
+
for (const buffer of buffers) {
|
|
103
|
+
ringBuffer.enq(buffer);
|
|
104
|
+
expect(ringBuffer.size()).to.be.equal(size);
|
|
163
105
|
}
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
if (i === 0) {
|
|
171
|
-
expect(readBuffer).to.equal(buffers[buffers.length - 1].substr(buffers[buffers.length - 1].length - size));
|
|
172
|
-
}
|
|
173
|
-
else {
|
|
174
|
-
expect(readBuffer).to.equal(undefined);
|
|
175
|
-
}
|
|
176
|
-
i++;
|
|
106
|
+
const reader = ringBuffer.getReader();
|
|
107
|
+
let i = 0;
|
|
108
|
+
for (const _ of buffers) {
|
|
109
|
+
const readBuffer = ringBuffer.deq(reader);
|
|
110
|
+
if (i === 0) {
|
|
111
|
+
expect(readBuffer).to.equal(buffers[buffers.length - 1].substr(buffers[buffers.length - 1].length - size));
|
|
177
112
|
}
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
finally {
|
|
181
|
-
try {
|
|
182
|
-
if (buffers_2_1 && !buffers_2_1.done && (_b = buffers_2.return)) _b.call(buffers_2);
|
|
113
|
+
else {
|
|
114
|
+
expect(readBuffer).to.equal(undefined);
|
|
183
115
|
}
|
|
184
|
-
|
|
116
|
+
i++;
|
|
185
117
|
}
|
|
186
118
|
expect(ringBuffer.sizeForReader(reader)).to.be.equal(0);
|
|
187
119
|
});
|
|
188
120
|
it('expect enq a string == ring buffer size then one < ring buffer size and dequeue them ', function () {
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
var buffer = buffers_3_1.value;
|
|
196
|
-
ringBuffer.enq(buffer);
|
|
197
|
-
expect(ringBuffer.size()).to.be.equal(size);
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
201
|
-
finally {
|
|
202
|
-
try {
|
|
203
|
-
if (buffers_3_1 && !buffers_3_1.done && (_a = buffers_3.return)) _a.call(buffers_3);
|
|
204
|
-
}
|
|
205
|
-
finally { if (e_3) throw e_3.error; }
|
|
121
|
+
const size = 5;
|
|
122
|
+
const ringBuffer = new multi_ring_buffer_1.MultiRingBuffer({ size });
|
|
123
|
+
const buffers = ['12345', '123'];
|
|
124
|
+
for (const buffer of buffers) {
|
|
125
|
+
ringBuffer.enq(buffer);
|
|
126
|
+
expect(ringBuffer.size()).to.be.equal(size);
|
|
206
127
|
}
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
if (i === 0) {
|
|
214
|
-
expect(readBuffer).to.equal('45123');
|
|
215
|
-
}
|
|
216
|
-
else {
|
|
217
|
-
expect(readBuffer).to.equal(undefined);
|
|
218
|
-
}
|
|
219
|
-
i++;
|
|
128
|
+
const reader = ringBuffer.getReader();
|
|
129
|
+
let i = 0;
|
|
130
|
+
for (const _ of buffers) {
|
|
131
|
+
const readBuffer = ringBuffer.deq(reader);
|
|
132
|
+
if (i === 0) {
|
|
133
|
+
expect(readBuffer).to.equal('45123');
|
|
220
134
|
}
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
finally {
|
|
224
|
-
try {
|
|
225
|
-
if (buffers_4_1 && !buffers_4_1.done && (_b = buffers_4.return)) _b.call(buffers_4);
|
|
135
|
+
else {
|
|
136
|
+
expect(readBuffer).to.equal(undefined);
|
|
226
137
|
}
|
|
227
|
-
|
|
138
|
+
i++;
|
|
228
139
|
}
|
|
229
140
|
expect(ringBuffer.sizeForReader(reader)).to.be.equal(0);
|
|
230
141
|
});
|
|
231
142
|
it('expect enq a string == ring buffer size then one < ring buffer then one < buffer size and dequeue ', function () {
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
var buffer = buffers_5_1.value;
|
|
239
|
-
ringBuffer.enq(buffer);
|
|
240
|
-
expect(ringBuffer.size()).to.be.equal(size);
|
|
241
|
-
}
|
|
143
|
+
const size = 5;
|
|
144
|
+
const ringBuffer = new multi_ring_buffer_1.MultiRingBuffer({ size });
|
|
145
|
+
const buffers = ['12345', '123', '678'];
|
|
146
|
+
for (const buffer of buffers) {
|
|
147
|
+
ringBuffer.enq(buffer);
|
|
148
|
+
expect(ringBuffer.size()).to.be.equal(size);
|
|
242
149
|
}
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
150
|
+
const reader = ringBuffer.getReader();
|
|
151
|
+
let i = 0;
|
|
152
|
+
for (const _ of buffers) {
|
|
153
|
+
const readBuffer = ringBuffer.deq(reader);
|
|
154
|
+
if (i === 0) {
|
|
155
|
+
expect(readBuffer).to.equal('23678');
|
|
247
156
|
}
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
var reader = ringBuffer.getReader();
|
|
251
|
-
var i = 0;
|
|
252
|
-
try {
|
|
253
|
-
for (var buffers_6 = __values(buffers), buffers_6_1 = buffers_6.next(); !buffers_6_1.done; buffers_6_1 = buffers_6.next()) {
|
|
254
|
-
var _3 = buffers_6_1.value;
|
|
255
|
-
var readBuffer = ringBuffer.deq(reader);
|
|
256
|
-
if (i === 0) {
|
|
257
|
-
expect(readBuffer).to.equal('23678');
|
|
258
|
-
}
|
|
259
|
-
else {
|
|
260
|
-
expect(readBuffer).to.equal(undefined);
|
|
261
|
-
}
|
|
262
|
-
i++;
|
|
157
|
+
else {
|
|
158
|
+
expect(readBuffer).to.equal(undefined);
|
|
263
159
|
}
|
|
264
|
-
|
|
265
|
-
catch (e_6_1) { e_6 = { error: e_6_1 }; }
|
|
266
|
-
finally {
|
|
267
|
-
try {
|
|
268
|
-
if (buffers_6_1 && !buffers_6_1.done && (_b = buffers_6.return)) _b.call(buffers_6);
|
|
269
|
-
}
|
|
270
|
-
finally { if (e_6) throw e_6.error; }
|
|
160
|
+
i++;
|
|
271
161
|
}
|
|
272
162
|
expect(ringBuffer.sizeForReader(reader)).to.be.equal(0);
|
|
273
163
|
});
|
|
274
164
|
it('expect enq buffer size then enq 1 to dequeue the right value', function () {
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
var buffer = buffers_7_1.value;
|
|
282
|
-
ringBuffer.enq(buffer);
|
|
283
|
-
expect(ringBuffer.size()).to.be.equal(size);
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
catch (e_7_1) { e_7 = { error: e_7_1 }; }
|
|
287
|
-
finally {
|
|
288
|
-
try {
|
|
289
|
-
if (buffers_7_1 && !buffers_7_1.done && (_a = buffers_7.return)) _a.call(buffers_7);
|
|
290
|
-
}
|
|
291
|
-
finally { if (e_7) throw e_7.error; }
|
|
165
|
+
const size = 5;
|
|
166
|
+
const ringBuffer = new multi_ring_buffer_1.MultiRingBuffer({ size });
|
|
167
|
+
const buffers = ['12345', '1'];
|
|
168
|
+
for (const buffer of buffers) {
|
|
169
|
+
ringBuffer.enq(buffer);
|
|
170
|
+
expect(ringBuffer.size()).to.be.equal(size);
|
|
292
171
|
}
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
if (i === 0) {
|
|
300
|
-
expect(readBuffer).to.equal('23451');
|
|
301
|
-
}
|
|
302
|
-
else {
|
|
303
|
-
expect(readBuffer).to.equal(undefined);
|
|
304
|
-
}
|
|
305
|
-
i++;
|
|
172
|
+
const reader = ringBuffer.getReader();
|
|
173
|
+
let i = 0;
|
|
174
|
+
for (const _ of buffers) {
|
|
175
|
+
const readBuffer = ringBuffer.deq(reader);
|
|
176
|
+
if (i === 0) {
|
|
177
|
+
expect(readBuffer).to.equal('23451');
|
|
306
178
|
}
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
finally {
|
|
310
|
-
try {
|
|
311
|
-
if (buffers_8_1 && !buffers_8_1.done && (_b = buffers_8.return)) _b.call(buffers_8);
|
|
179
|
+
else {
|
|
180
|
+
expect(readBuffer).to.equal(undefined);
|
|
312
181
|
}
|
|
313
|
-
|
|
182
|
+
i++;
|
|
314
183
|
}
|
|
315
184
|
expect(ringBuffer.sizeForReader(reader)).to.be.equal(0);
|
|
316
185
|
});
|
|
317
186
|
it('expect enq buffer size then enq 1 twice to dequeue the right value', function () {
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
var buffer = buffers_9_1.value;
|
|
325
|
-
ringBuffer.enq(buffer);
|
|
326
|
-
expect(ringBuffer.size()).to.be.equal(size);
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
catch (e_9_1) { e_9 = { error: e_9_1 }; }
|
|
330
|
-
finally {
|
|
331
|
-
try {
|
|
332
|
-
if (buffers_9_1 && !buffers_9_1.done && (_a = buffers_9.return)) _a.call(buffers_9);
|
|
333
|
-
}
|
|
334
|
-
finally { if (e_9) throw e_9.error; }
|
|
187
|
+
const size = 5;
|
|
188
|
+
const ringBuffer = new multi_ring_buffer_1.MultiRingBuffer({ size });
|
|
189
|
+
const buffers = ['12345', '1', '12345', '1'];
|
|
190
|
+
for (const buffer of buffers) {
|
|
191
|
+
ringBuffer.enq(buffer);
|
|
192
|
+
expect(ringBuffer.size()).to.be.equal(size);
|
|
335
193
|
}
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
if (i === 0) {
|
|
343
|
-
expect(readBuffer).to.equal('23451');
|
|
344
|
-
}
|
|
345
|
-
else {
|
|
346
|
-
expect(readBuffer).to.equal(undefined);
|
|
347
|
-
}
|
|
348
|
-
i++;
|
|
194
|
+
const reader = ringBuffer.getReader();
|
|
195
|
+
let i = 0;
|
|
196
|
+
for (const _ of buffers) {
|
|
197
|
+
const readBuffer = ringBuffer.deq(reader);
|
|
198
|
+
if (i === 0) {
|
|
199
|
+
expect(readBuffer).to.equal('23451');
|
|
349
200
|
}
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
finally {
|
|
353
|
-
try {
|
|
354
|
-
if (buffers_10_1 && !buffers_10_1.done && (_b = buffers_10.return)) _b.call(buffers_10);
|
|
201
|
+
else {
|
|
202
|
+
expect(readBuffer).to.equal(undefined);
|
|
355
203
|
}
|
|
356
|
-
|
|
204
|
+
i++;
|
|
357
205
|
}
|
|
358
206
|
expect(ringBuffer.sizeForReader(reader)).to.be.equal(0);
|
|
359
207
|
});
|
|
360
208
|
it('expect enq buffer size of various sizes dequeue the right value', function () {
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
var buffer = buffers_11_1.value;
|
|
368
|
-
ringBuffer.enq(buffer);
|
|
369
|
-
expect(ringBuffer.size()).to.be.equal(size);
|
|
370
|
-
}
|
|
371
|
-
}
|
|
372
|
-
catch (e_11_1) { e_11 = { error: e_11_1 }; }
|
|
373
|
-
finally {
|
|
374
|
-
try {
|
|
375
|
-
if (buffers_11_1 && !buffers_11_1.done && (_a = buffers_11.return)) _a.call(buffers_11);
|
|
376
|
-
}
|
|
377
|
-
finally { if (e_11) throw e_11.error; }
|
|
209
|
+
const size = 5;
|
|
210
|
+
const ringBuffer = new multi_ring_buffer_1.MultiRingBuffer({ size });
|
|
211
|
+
const buffers = ['12345', '123', '678', '12345', '1', '12345', '123', '12', '12', '1', '12', '123', '1234', '12345', '1', '12'];
|
|
212
|
+
for (const buffer of buffers) {
|
|
213
|
+
ringBuffer.enq(buffer);
|
|
214
|
+
expect(ringBuffer.size()).to.be.equal(size);
|
|
378
215
|
}
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
if (i === 0) {
|
|
386
|
-
expect(readBuffer).to.equal('45112');
|
|
387
|
-
}
|
|
388
|
-
else {
|
|
389
|
-
expect(readBuffer).to.equal(undefined);
|
|
390
|
-
}
|
|
391
|
-
i++;
|
|
216
|
+
const reader = ringBuffer.getReader();
|
|
217
|
+
let i = 0;
|
|
218
|
+
for (const _ of buffers) {
|
|
219
|
+
const readBuffer = ringBuffer.deq(reader);
|
|
220
|
+
if (i === 0) {
|
|
221
|
+
expect(readBuffer).to.equal('45112');
|
|
392
222
|
}
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
finally {
|
|
396
|
-
try {
|
|
397
|
-
if (buffers_12_1 && !buffers_12_1.done && (_b = buffers_12.return)) _b.call(buffers_12);
|
|
223
|
+
else {
|
|
224
|
+
expect(readBuffer).to.equal(undefined);
|
|
398
225
|
}
|
|
399
|
-
|
|
226
|
+
i++;
|
|
400
227
|
}
|
|
401
228
|
expect(ringBuffer.sizeForReader(reader)).to.be.equal(0);
|
|
402
229
|
});
|
|
403
230
|
it('expect enq buffer sizes < buffer size to dequeue normally', function () {
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
for (var buffers_13 = __values(buffers), buffers_13_1 = buffers_13.next(); !buffers_13_1.done; buffers_13_1 = buffers_13.next()) {
|
|
410
|
-
var buffer = buffers_13_1.value;
|
|
411
|
-
ringBuffer.enq(buffer);
|
|
412
|
-
}
|
|
413
|
-
}
|
|
414
|
-
catch (e_13_1) { e_13 = { error: e_13_1 }; }
|
|
415
|
-
finally {
|
|
416
|
-
try {
|
|
417
|
-
if (buffers_13_1 && !buffers_13_1.done && (_a = buffers_13.return)) _a.call(buffers_13);
|
|
418
|
-
}
|
|
419
|
-
finally { if (e_13) throw e_13.error; }
|
|
231
|
+
const size = 5;
|
|
232
|
+
const ringBuffer = new multi_ring_buffer_1.MultiRingBuffer({ size });
|
|
233
|
+
const buffers = ['1', '1'];
|
|
234
|
+
for (const buffer of buffers) {
|
|
235
|
+
ringBuffer.enq(buffer);
|
|
420
236
|
}
|
|
421
237
|
expect(ringBuffer.size()).to.be.equal(2);
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
if (i === 0) {
|
|
429
|
-
expect(readBuffer).to.equal('11');
|
|
430
|
-
}
|
|
431
|
-
else {
|
|
432
|
-
expect(readBuffer).to.equal(undefined);
|
|
433
|
-
}
|
|
434
|
-
i++;
|
|
238
|
+
const reader = ringBuffer.getReader();
|
|
239
|
+
let i = 0;
|
|
240
|
+
for (const _ of buffers) {
|
|
241
|
+
const readBuffer = ringBuffer.deq(reader);
|
|
242
|
+
if (i === 0) {
|
|
243
|
+
expect(readBuffer).to.equal('11');
|
|
435
244
|
}
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
finally {
|
|
439
|
-
try {
|
|
440
|
-
if (buffers_14_1 && !buffers_14_1.done && (_b = buffers_14.return)) _b.call(buffers_14);
|
|
245
|
+
else {
|
|
246
|
+
expect(readBuffer).to.equal(undefined);
|
|
441
247
|
}
|
|
442
|
-
|
|
248
|
+
i++;
|
|
443
249
|
}
|
|
444
250
|
expect(ringBuffer.sizeForReader(reader)).to.be.equal(0);
|
|
445
251
|
});
|
|
446
252
|
it('expect enq buffer size of various sizes dequeue the right value', function () {
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
for (var buffers_15 = __values(buffers), buffers_15_1 = buffers_15.next(); !buffers_15_1.done; buffers_15_1 = buffers_15.next()) {
|
|
453
|
-
var buffer = buffers_15_1.value;
|
|
454
|
-
ringBuffer.enq(buffer);
|
|
455
|
-
}
|
|
456
|
-
}
|
|
457
|
-
catch (e_15_1) { e_15 = { error: e_15_1 }; }
|
|
458
|
-
finally {
|
|
459
|
-
try {
|
|
460
|
-
if (buffers_15_1 && !buffers_15_1.done && (_a = buffers_15.return)) _a.call(buffers_15);
|
|
461
|
-
}
|
|
462
|
-
finally { if (e_15) throw e_15.error; }
|
|
253
|
+
const size = 5;
|
|
254
|
+
const ringBuffer = new multi_ring_buffer_1.MultiRingBuffer({ size });
|
|
255
|
+
const buffers = ['1', '1', '12', '12'];
|
|
256
|
+
for (const buffer of buffers) {
|
|
257
|
+
ringBuffer.enq(buffer);
|
|
463
258
|
}
|
|
464
259
|
expect(ringBuffer.size()).to.be.equal(size);
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
if (i === 0) {
|
|
472
|
-
expect(readBuffer).to.equal('11212');
|
|
473
|
-
}
|
|
474
|
-
else {
|
|
475
|
-
expect(readBuffer).to.equal(undefined);
|
|
476
|
-
}
|
|
477
|
-
i++;
|
|
260
|
+
const reader = ringBuffer.getReader();
|
|
261
|
+
let i = 0;
|
|
262
|
+
for (const _ of buffers) {
|
|
263
|
+
const readBuffer = ringBuffer.deq(reader);
|
|
264
|
+
if (i === 0) {
|
|
265
|
+
expect(readBuffer).to.equal('11212');
|
|
478
266
|
}
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
finally {
|
|
482
|
-
try {
|
|
483
|
-
if (buffers_16_1 && !buffers_16_1.done && (_b = buffers_16.return)) _b.call(buffers_16);
|
|
267
|
+
else {
|
|
268
|
+
expect(readBuffer).to.equal(undefined);
|
|
484
269
|
}
|
|
485
|
-
|
|
270
|
+
i++;
|
|
486
271
|
}
|
|
487
272
|
expect(ringBuffer.sizeForReader(reader)).to.be.equal(0);
|
|
488
273
|
});
|
|
489
274
|
it('expect multiple enq and deq to deq the right values', function () {
|
|
490
|
-
|
|
491
|
-
|
|
275
|
+
const size = 5;
|
|
276
|
+
const ringBuffer = new multi_ring_buffer_1.MultiRingBuffer({ size });
|
|
492
277
|
ringBuffer.enq('12345');
|
|
493
278
|
expect(ringBuffer.size()).to.be.equal(size);
|
|
494
|
-
|
|
495
|
-
|
|
279
|
+
const reader = ringBuffer.getReader();
|
|
280
|
+
let readBuffer = ringBuffer.deq(reader);
|
|
496
281
|
expect(readBuffer).to.equal('12345');
|
|
497
282
|
ringBuffer.enq('123');
|
|
498
283
|
readBuffer = ringBuffer.deq(reader);
|
|
@@ -502,147 +287,114 @@ describe('MultiRingBuffer', function () {
|
|
|
502
287
|
expect(readBuffer).to.equal('12345');
|
|
503
288
|
expect(ringBuffer.sizeForReader(reader)).to.be.equal(0);
|
|
504
289
|
});
|
|
505
|
-
it('expect data from stream on enq', function () {
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
astream = ringBuffer.getStream();
|
|
515
|
-
p = new Promise(function (resolve) {
|
|
516
|
-
astream.on('data', function (chunk) {
|
|
517
|
-
expect(chunk).to.be.equal(buffer);
|
|
518
|
-
resolve();
|
|
519
|
-
});
|
|
520
|
-
});
|
|
521
|
-
ringBuffer.enq(buffer);
|
|
522
|
-
return [4 /*yield*/, p];
|
|
523
|
-
case 1:
|
|
524
|
-
_a.sent();
|
|
525
|
-
return [2 /*return*/];
|
|
526
|
-
}
|
|
290
|
+
it('expect data from stream on enq', async function () {
|
|
291
|
+
const size = 5;
|
|
292
|
+
const ringBuffer = new multi_ring_buffer_1.MultiRingBuffer({ size });
|
|
293
|
+
const buffer = 'abc';
|
|
294
|
+
const astream = ringBuffer.getStream();
|
|
295
|
+
const p = new Promise(resolve => {
|
|
296
|
+
astream.on('data', (chunk) => {
|
|
297
|
+
expect(chunk).to.be.equal(buffer);
|
|
298
|
+
resolve();
|
|
527
299
|
});
|
|
528
300
|
});
|
|
301
|
+
ringBuffer.enq(buffer);
|
|
302
|
+
await p;
|
|
529
303
|
});
|
|
530
|
-
it('expect data from stream when data is already ended', function () {
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
astream = ringBuffer.getStream();
|
|
541
|
-
p = new Promise(function (resolve) {
|
|
542
|
-
astream.on('data', function (chunk) {
|
|
543
|
-
expect(chunk).to.be.equal(buffer);
|
|
544
|
-
resolve();
|
|
545
|
-
});
|
|
546
|
-
});
|
|
547
|
-
return [4 /*yield*/, p];
|
|
548
|
-
case 1:
|
|
549
|
-
_a.sent();
|
|
550
|
-
return [2 /*return*/];
|
|
551
|
-
}
|
|
304
|
+
it('expect data from stream when data is already ended', async function () {
|
|
305
|
+
const size = 5;
|
|
306
|
+
const ringBuffer = new multi_ring_buffer_1.MultiRingBuffer({ size });
|
|
307
|
+
const buffer = 'abc';
|
|
308
|
+
ringBuffer.enq(buffer);
|
|
309
|
+
const astream = ringBuffer.getStream();
|
|
310
|
+
const p = new Promise(resolve => {
|
|
311
|
+
astream.on('data', (chunk) => {
|
|
312
|
+
expect(chunk).to.be.equal(buffer);
|
|
313
|
+
resolve();
|
|
552
314
|
});
|
|
553
315
|
});
|
|
316
|
+
await p;
|
|
554
317
|
});
|
|
555
318
|
it('expect disposing of a stream to delete it from the ringbuffer', function () {
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
319
|
+
const size = 5;
|
|
320
|
+
const ringBuffer = new multi_ring_buffer_1.MultiRingBuffer({ size });
|
|
321
|
+
const astream = ringBuffer.getStream();
|
|
559
322
|
astream.dispose();
|
|
560
323
|
expect(ringBuffer.streamsSize()).to.be.equal(0);
|
|
561
324
|
expect(ringBuffer.readersSize()).to.be.equal(0);
|
|
562
325
|
});
|
|
563
326
|
it('expect disposing of a reader to delete it from the ringbuffer', function () {
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
327
|
+
const size = 5;
|
|
328
|
+
const ringBuffer = new multi_ring_buffer_1.MultiRingBuffer({ size });
|
|
329
|
+
const reader = ringBuffer.getReader();
|
|
567
330
|
ringBuffer.closeReader(reader);
|
|
568
331
|
expect(ringBuffer.readersSize()).to.be.equal(0);
|
|
569
332
|
});
|
|
570
333
|
it('expect enq a string in utf8 and get it in hex', function () {
|
|
571
|
-
|
|
572
|
-
|
|
334
|
+
const ringBuffer = new multi_ring_buffer_1.MultiRingBuffer({ size: 5 });
|
|
335
|
+
const buffer = 'test';
|
|
573
336
|
ringBuffer.enq(buffer);
|
|
574
337
|
expect(ringBuffer.size()).to.be.equal(4);
|
|
575
|
-
|
|
576
|
-
|
|
338
|
+
const reader = ringBuffer.getReader();
|
|
339
|
+
const readBuffer = ringBuffer.deq(reader, -1, 'hex');
|
|
577
340
|
expect(readBuffer).to.equal('74657374');
|
|
578
341
|
});
|
|
579
342
|
it('expect enq a string in hex and get it in utf8', function () {
|
|
580
|
-
|
|
581
|
-
|
|
343
|
+
const ringBuffer = new multi_ring_buffer_1.MultiRingBuffer({ size: 5 });
|
|
344
|
+
const buffer = '74657374';
|
|
582
345
|
ringBuffer.enq(buffer, 'hex');
|
|
583
346
|
expect(ringBuffer.size()).to.be.equal(4);
|
|
584
|
-
|
|
585
|
-
|
|
347
|
+
const reader = ringBuffer.getReader();
|
|
348
|
+
const readBuffer = ringBuffer.deq(reader);
|
|
586
349
|
expect(readBuffer).to.equal('test');
|
|
587
350
|
});
|
|
588
|
-
it('expect data from stream in hex when enq in uf8', function () {
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
astream = ringBuffer.getStream('hex');
|
|
599
|
-
p = new Promise(function (resolve) {
|
|
600
|
-
astream.on('data', function (chunk) {
|
|
601
|
-
expect(chunk).to.be.equal('74657374');
|
|
602
|
-
resolve();
|
|
603
|
-
});
|
|
604
|
-
});
|
|
605
|
-
return [4 /*yield*/, p];
|
|
606
|
-
case 1:
|
|
607
|
-
_a.sent();
|
|
608
|
-
return [2 /*return*/];
|
|
609
|
-
}
|
|
351
|
+
it('expect data from stream in hex when enq in uf8', async function () {
|
|
352
|
+
const size = 5;
|
|
353
|
+
const ringBuffer = new multi_ring_buffer_1.MultiRingBuffer({ size });
|
|
354
|
+
const buffer = 'test';
|
|
355
|
+
ringBuffer.enq(buffer);
|
|
356
|
+
const astream = ringBuffer.getStream('hex');
|
|
357
|
+
const p = new Promise(resolve => {
|
|
358
|
+
astream.on('data', (chunk) => {
|
|
359
|
+
expect(chunk).to.be.equal('74657374');
|
|
360
|
+
resolve();
|
|
610
361
|
});
|
|
611
362
|
});
|
|
363
|
+
await p;
|
|
612
364
|
});
|
|
613
365
|
it('expect deq a string < ring buffer size with the internal encoding in hex ', function () {
|
|
614
|
-
|
|
615
|
-
|
|
366
|
+
const ringBuffer = new multi_ring_buffer_1.MultiRingBuffer({ size: 5, encoding: 'hex' });
|
|
367
|
+
const buffer = 'test';
|
|
616
368
|
ringBuffer.enq(buffer);
|
|
617
369
|
expect(ringBuffer.size()).to.be.equal(4);
|
|
618
|
-
|
|
619
|
-
|
|
370
|
+
const reader = ringBuffer.getReader();
|
|
371
|
+
const readBuffer = ringBuffer.deq(reader);
|
|
620
372
|
expect(ringBuffer.size()).to.be.equal(4);
|
|
621
373
|
expect(ringBuffer.sizeForReader(reader)).to.be.equal(0);
|
|
622
374
|
expect(readBuffer).to.equal(buffer);
|
|
623
375
|
});
|
|
624
376
|
it('expect the ringbuffer to be empty if we enq an empty string', function () {
|
|
625
|
-
|
|
626
|
-
|
|
377
|
+
const ringBuffer = new multi_ring_buffer_1.MultiRingBuffer({ size: 5 });
|
|
378
|
+
const buffer = '';
|
|
627
379
|
ringBuffer.enq(buffer);
|
|
628
380
|
expect(ringBuffer.size()).to.be.equal(0);
|
|
629
381
|
expect(ringBuffer.empty()).to.be.equal(true);
|
|
630
382
|
});
|
|
631
383
|
it('expect an invalid reader count to be zero', function () {
|
|
632
|
-
|
|
384
|
+
const ringBuffer = new multi_ring_buffer_1.MultiRingBuffer({ size: 5 });
|
|
633
385
|
expect(ringBuffer.sizeForReader(1)).to.be.equal(0);
|
|
634
386
|
});
|
|
635
387
|
it('expect an invalid reader to be empty', function () {
|
|
636
|
-
|
|
388
|
+
const ringBuffer = new multi_ring_buffer_1.MultiRingBuffer({ size: 5 });
|
|
637
389
|
expect(ringBuffer.emptyForReader(1)).to.be.equal(true);
|
|
638
390
|
});
|
|
639
391
|
it('expect partially deq a string < ring buffer size ', function () {
|
|
640
|
-
|
|
641
|
-
|
|
392
|
+
const ringBuffer = new multi_ring_buffer_1.MultiRingBuffer({ size: 5 });
|
|
393
|
+
const buffer = 'test';
|
|
642
394
|
ringBuffer.enq(buffer);
|
|
643
395
|
expect(ringBuffer.size()).to.be.equal(4);
|
|
644
|
-
|
|
645
|
-
|
|
396
|
+
const reader = ringBuffer.getReader();
|
|
397
|
+
let readBuffer = ringBuffer.deq(reader, 2);
|
|
646
398
|
expect(ringBuffer.size()).to.be.equal(4);
|
|
647
399
|
expect(ringBuffer.sizeForReader(reader)).to.be.equal(2);
|
|
648
400
|
expect(readBuffer).to.equal('te');
|
|
@@ -652,13 +404,13 @@ describe('MultiRingBuffer', function () {
|
|
|
652
404
|
expect(readBuffer).to.equal('st');
|
|
653
405
|
});
|
|
654
406
|
it('expect partially deq a string < ring buffer size then enq and deq again ', function () {
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
407
|
+
const ringBuffer = new multi_ring_buffer_1.MultiRingBuffer({ size: 5 });
|
|
408
|
+
const buffer = 'test';
|
|
409
|
+
const secondBuffer = 'abcd';
|
|
658
410
|
ringBuffer.enq(buffer);
|
|
659
411
|
expect(ringBuffer.size()).to.be.equal(4);
|
|
660
|
-
|
|
661
|
-
|
|
412
|
+
const reader = ringBuffer.getReader();
|
|
413
|
+
let readBuffer = ringBuffer.deq(reader, 2);
|
|
662
414
|
expect(ringBuffer.size()).to.be.equal(4);
|
|
663
415
|
expect(ringBuffer.sizeForReader(reader)).to.be.equal(2);
|
|
664
416
|
expect(readBuffer).to.equal('te');
|