@flemist/test-variants 5.0.3 → 5.0.4
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/README.md +4 -0
- package/build/browser/index.cjs +1 -1
- package/build/browser/index.mjs +1 -1
- package/build/common/index.cjs +1 -1
- package/build/common/index.mjs +1 -1
- package/build/common/test-variants/run/types.d.ts +2 -0
- package/build/common/test-variants/types.d.ts +2 -0
- package/build/{createTestVariants-BaW2oQ-k.mjs → createTestVariants-D3rpiTL9.mjs} +312 -311
- package/build/createTestVariants-cAlu7ujN.js +4 -0
- package/build/node/index.cjs +1 -1
- package/build/node/index.mjs +1 -1
- package/package.json +1 -1
- package/build/createTestVariants-LuHR6HJQ.js +0 -4
|
@@ -2,7 +2,7 @@ import { timeControllerDefault as Q } from "@flemist/time-controller";
|
|
|
2
2
|
import { formatAny as z, deepCloneJsonLike as Je } from "@flemist/simple-utils";
|
|
3
3
|
import { isPromiseLike as M, waitMicrotasks as Xe, combineAbortSignals as ie } from "@flemist/async-utils";
|
|
4
4
|
import { AbortError as Ze, AbortControllerFast as se } from "@flemist/abort-controller-fast";
|
|
5
|
-
import { poolWait as
|
|
5
|
+
import { poolWait as ae, Pool as Ke } from "@flemist/time-limits";
|
|
6
6
|
function Y() {
|
|
7
7
|
if (typeof process < "u" && process.memoryUsage)
|
|
8
8
|
try {
|
|
@@ -19,22 +19,22 @@ function Y() {
|
|
|
19
19
|
}
|
|
20
20
|
return null;
|
|
21
21
|
}
|
|
22
|
-
const Qe = 1e3,
|
|
22
|
+
const Qe = 1e3, q = [];
|
|
23
23
|
function Ye(e) {
|
|
24
24
|
return z(e, { pretty: !0, maxDepth: 5, maxItems: 50 });
|
|
25
25
|
}
|
|
26
26
|
function et(...e) {
|
|
27
27
|
const n = e.map((t) => typeof t == "string" ? t : Ye(t)).join(" ");
|
|
28
|
-
|
|
28
|
+
q.push(n), q.length > Qe && q.shift(), console.log(n);
|
|
29
29
|
}
|
|
30
30
|
function tt() {
|
|
31
|
-
return
|
|
31
|
+
return q.join(`
|
|
32
32
|
`);
|
|
33
33
|
}
|
|
34
34
|
globalThis.__getStressTestLogLast = tt;
|
|
35
35
|
const me = (e, n) => {
|
|
36
36
|
et(n);
|
|
37
|
-
},
|
|
37
|
+
}, x = {
|
|
38
38
|
start: !0,
|
|
39
39
|
progress: 5e3,
|
|
40
40
|
completed: !0,
|
|
@@ -52,14 +52,14 @@ const me = (e, n) => {
|
|
|
52
52
|
func: me
|
|
53
53
|
};
|
|
54
54
|
function ge(e) {
|
|
55
|
-
return e === !1 ? rt : e === !0 || !e ?
|
|
56
|
-
start: e.start ??
|
|
57
|
-
progress: e.progress ??
|
|
58
|
-
completed: e.completed ??
|
|
59
|
-
error: e.error ??
|
|
60
|
-
modeChange: e.modeChange ??
|
|
61
|
-
debug: e.debug ??
|
|
62
|
-
func: e.func ??
|
|
55
|
+
return e === !1 ? rt : e === !0 || !e ? x : {
|
|
56
|
+
start: e.start ?? x.start,
|
|
57
|
+
progress: e.progress ?? x.progress,
|
|
58
|
+
completed: e.completed ?? x.completed,
|
|
59
|
+
error: e.error ?? x.error,
|
|
60
|
+
modeChange: e.modeChange ?? x.modeChange,
|
|
61
|
+
debug: e.debug ?? x.debug,
|
|
62
|
+
func: e.func ?? x.func
|
|
63
63
|
};
|
|
64
64
|
}
|
|
65
65
|
function nt(e, n) {
|
|
@@ -82,108 +82,108 @@ function nt(e, n) {
|
|
|
82
82
|
class T extends Ze {
|
|
83
83
|
}
|
|
84
84
|
const ot = 50, it = 5;
|
|
85
|
-
function
|
|
85
|
+
function le(e, n) {
|
|
86
86
|
return typeof e == "number" ? { iterationsAsync: 0, iterationsSync: e } : e != null && typeof e == "object" ? e : n ? { iterationsAsync: 1, iterationsSync: 0 } : { iterationsAsync: 0, iterationsSync: 1 };
|
|
87
87
|
}
|
|
88
88
|
function st(e, n) {
|
|
89
|
-
const t = n.log;
|
|
90
|
-
let o = null,
|
|
91
|
-
function l
|
|
92
|
-
o == null && (o = { error:
|
|
89
|
+
const t = n.log, i = n.pauseDebuggerOnError ?? !0;
|
|
90
|
+
let o = null, a = 0;
|
|
91
|
+
function r(l, u, f) {
|
|
92
|
+
o == null && (o = { error: l, args: u, tests: f }, t.error && t.func(
|
|
93
93
|
"error",
|
|
94
|
-
`[test-variants] error variant: ${z(
|
|
95
|
-
tests: ${
|
|
96
|
-
${z(
|
|
94
|
+
`[test-variants] error variant: ${z(u, { pretty: !0 })}
|
|
95
|
+
tests: ${f}
|
|
96
|
+
${z(l)}`
|
|
97
97
|
));
|
|
98
98
|
const d = Date.now();
|
|
99
|
-
if (Date.now() - d > ot &&
|
|
99
|
+
if (i && Function("debugger")(), Date.now() - d > ot && a < it) {
|
|
100
100
|
t.func(
|
|
101
101
|
"debug",
|
|
102
|
-
`[test-variants] debug iteration: ${
|
|
103
|
-
),
|
|
102
|
+
`[test-variants] debug iteration: ${a}`
|
|
103
|
+
), a++;
|
|
104
104
|
return;
|
|
105
105
|
}
|
|
106
|
-
const
|
|
107
|
-
throw o = null, n.onError && n.onError(
|
|
106
|
+
const y = o;
|
|
107
|
+
throw o = null, n.onError && n.onError(y), y.error;
|
|
108
108
|
}
|
|
109
|
-
return function(
|
|
109
|
+
return function(u, f, d) {
|
|
110
110
|
try {
|
|
111
|
-
const
|
|
112
|
-
return M(
|
|
113
|
-
(
|
|
114
|
-
(
|
|
115
|
-
) :
|
|
116
|
-
} catch (
|
|
117
|
-
return
|
|
111
|
+
const h = e(u, d);
|
|
112
|
+
return M(h) ? h.then(
|
|
113
|
+
(y) => le(y, !0),
|
|
114
|
+
(y) => r(y, u, f)
|
|
115
|
+
) : le(h, !1);
|
|
116
|
+
} catch (h) {
|
|
117
|
+
return h instanceof T ? void 0 : r(h, u, f);
|
|
118
118
|
}
|
|
119
119
|
};
|
|
120
120
|
}
|
|
121
|
-
function
|
|
122
|
-
for (let
|
|
123
|
-
if (t ? t(e[
|
|
124
|
-
return
|
|
121
|
+
function U(e, n, t) {
|
|
122
|
+
for (let i = 0, o = e.length; i < o; i++)
|
|
123
|
+
if (t ? t(e[i], n) : e[i] === n)
|
|
124
|
+
return i;
|
|
125
125
|
return -1;
|
|
126
126
|
}
|
|
127
|
-
function ue(e, n, t,
|
|
128
|
-
const
|
|
129
|
-
for (let
|
|
130
|
-
const h =
|
|
131
|
-
|
|
127
|
+
function ue(e, n, t, i) {
|
|
128
|
+
const o = Object.keys(e.templates), a = {}, r = [], l = [], u = [], f = o.length;
|
|
129
|
+
for (let d = 0; d < f; d++) {
|
|
130
|
+
const h = o[d];
|
|
131
|
+
a[h] = void 0, r.push(-1), l.push(void 0), u.push(null);
|
|
132
132
|
}
|
|
133
133
|
return {
|
|
134
|
-
args:
|
|
135
|
-
argsNames:
|
|
134
|
+
args: a,
|
|
135
|
+
argsNames: o,
|
|
136
136
|
indexes: r,
|
|
137
|
-
argValues:
|
|
137
|
+
argValues: l,
|
|
138
138
|
argLimits: u,
|
|
139
139
|
attempts: 0,
|
|
140
140
|
templates: e,
|
|
141
141
|
limitArgOnError: t,
|
|
142
142
|
equals: n,
|
|
143
|
-
includeErrorVariant:
|
|
143
|
+
includeErrorVariant: i ?? !1
|
|
144
144
|
};
|
|
145
145
|
}
|
|
146
146
|
function O(e, n) {
|
|
147
|
-
const t = e.templates.templates[n],
|
|
148
|
-
let
|
|
149
|
-
if (typeof t == "function" ?
|
|
150
|
-
return
|
|
151
|
-
let
|
|
152
|
-
const r =
|
|
153
|
-
for (let
|
|
154
|
-
const u =
|
|
155
|
-
|
|
147
|
+
const t = e.templates.templates[n], i = e.templates.extra[n];
|
|
148
|
+
let o;
|
|
149
|
+
if (typeof t == "function" ? o = t(e.args) : o = t, i == null)
|
|
150
|
+
return o;
|
|
151
|
+
let a = null;
|
|
152
|
+
const r = i.length;
|
|
153
|
+
for (let l = 0; l < r; l++) {
|
|
154
|
+
const u = i[l];
|
|
155
|
+
U(o, u, e.equals) < 0 && (a == null ? a = [...o, u] : a.push(u));
|
|
156
156
|
}
|
|
157
|
-
return
|
|
157
|
+
return a ?? o;
|
|
158
158
|
}
|
|
159
|
-
function
|
|
160
|
-
const
|
|
161
|
-
if (
|
|
159
|
+
function w(e, n, t) {
|
|
160
|
+
const i = e.argValues[n].length;
|
|
161
|
+
if (i === 0)
|
|
162
162
|
return -1;
|
|
163
|
-
const
|
|
164
|
-
if (
|
|
165
|
-
return
|
|
166
|
-
let
|
|
167
|
-
if (typeof
|
|
163
|
+
const o = e.argLimits[n];
|
|
164
|
+
if (o == null)
|
|
165
|
+
return i - 1;
|
|
166
|
+
let a = e.limitArgOnError;
|
|
167
|
+
if (typeof a == "function") {
|
|
168
168
|
const r = e.argsNames[n];
|
|
169
|
-
|
|
169
|
+
a = a({
|
|
170
170
|
name: r,
|
|
171
171
|
values: e.argValues[n],
|
|
172
|
-
maxValueIndex:
|
|
172
|
+
maxValueIndex: o
|
|
173
173
|
});
|
|
174
174
|
}
|
|
175
|
-
return !t ||
|
|
175
|
+
return !t || a ? Math.min(o, i - 1) : i - 1;
|
|
176
176
|
}
|
|
177
177
|
function V(e) {
|
|
178
178
|
const n = e.indexes.length;
|
|
179
179
|
for (let t = 0; t < n; t++) {
|
|
180
|
-
const
|
|
181
|
-
if (
|
|
180
|
+
const i = e.argLimits[t];
|
|
181
|
+
if (i == null)
|
|
182
182
|
return !1;
|
|
183
|
-
const
|
|
184
|
-
if (
|
|
183
|
+
const o = e.indexes[t];
|
|
184
|
+
if (o > i)
|
|
185
185
|
return !0;
|
|
186
|
-
if (
|
|
186
|
+
if (o < i)
|
|
187
187
|
return !1;
|
|
188
188
|
}
|
|
189
189
|
return !e.includeErrorVariant;
|
|
@@ -195,24 +195,24 @@ function C(e) {
|
|
|
195
195
|
}
|
|
196
196
|
function pe(e) {
|
|
197
197
|
let n = !1, t = !0;
|
|
198
|
-
const
|
|
199
|
-
let
|
|
200
|
-
for (; r <
|
|
201
|
-
const
|
|
202
|
-
(
|
|
198
|
+
const i = e.indexes.length;
|
|
199
|
+
let o = i, a = !1, r = 0;
|
|
200
|
+
for (; r < i; r++) {
|
|
201
|
+
const l = e.argValues[r] == null;
|
|
202
|
+
(l || a) && (l && (n = !0), e.argValues[r] = O(
|
|
203
203
|
e,
|
|
204
204
|
e.argsNames[r]
|
|
205
205
|
));
|
|
206
|
-
const u =
|
|
206
|
+
const u = w(
|
|
207
207
|
e,
|
|
208
208
|
r,
|
|
209
|
-
r >
|
|
209
|
+
r > o
|
|
210
210
|
);
|
|
211
211
|
if (u < 0) {
|
|
212
212
|
t = !1, e.indexes[r] = -1;
|
|
213
213
|
break;
|
|
214
214
|
}
|
|
215
|
-
|
|
215
|
+
l && (e.indexes[r] = 0, e.args[e.argsNames[r]] = e.argValues[r][0]), (a || e.indexes[r] > u) && (e.indexes[r] = u, e.args[e.argsNames[r]] = e.argValues[r][u], a = !0), o === i && e.indexes[r] < u && (o = r);
|
|
216
216
|
}
|
|
217
217
|
if (V(e))
|
|
218
218
|
return C(e), !1;
|
|
@@ -221,23 +221,23 @@ function pe(e) {
|
|
|
221
221
|
for (r--; r >= 0; r--) {
|
|
222
222
|
if (e.argValues[r] == null)
|
|
223
223
|
continue;
|
|
224
|
-
let
|
|
225
|
-
const u =
|
|
226
|
-
if (
|
|
227
|
-
e.indexes[r] =
|
|
228
|
-
for (let
|
|
229
|
-
e.args[e.argsNames[
|
|
230
|
-
for (r++; r <
|
|
224
|
+
let l = r > o;
|
|
225
|
+
const u = w(e, r, l), f = e.indexes[r] + 1;
|
|
226
|
+
if (f <= u) {
|
|
227
|
+
e.indexes[r] = f, e.args[e.argsNames[r]] = e.argValues[r][f], f < u && (l = !0);
|
|
228
|
+
for (let d = r + 1; d < i; d++)
|
|
229
|
+
e.args[e.argsNames[d]] = void 0;
|
|
230
|
+
for (r++; r < i; r++) {
|
|
231
231
|
e.argValues[r] = O(
|
|
232
232
|
e,
|
|
233
233
|
e.argsNames[r]
|
|
234
234
|
);
|
|
235
|
-
const
|
|
236
|
-
if (
|
|
235
|
+
const d = w(e, r, l);
|
|
236
|
+
if (d < 0)
|
|
237
237
|
break;
|
|
238
|
-
e.indexes[r] = 0, e.args[e.argsNames[r]] = e.argValues[r][0],
|
|
238
|
+
e.indexes[r] = 0, e.args[e.argsNames[r]] = e.argValues[r][0], d > 0 && (l = !0);
|
|
239
239
|
}
|
|
240
|
-
if (r >=
|
|
240
|
+
if (r >= i)
|
|
241
241
|
return V(e) ? (C(e), !1) : !0;
|
|
242
242
|
}
|
|
243
243
|
}
|
|
@@ -246,114 +246,114 @@ function pe(e) {
|
|
|
246
246
|
function H(e) {
|
|
247
247
|
V(e) && C(e);
|
|
248
248
|
let n = !1, t = !0;
|
|
249
|
-
const
|
|
250
|
-
let
|
|
251
|
-
for (; r <
|
|
252
|
-
const
|
|
253
|
-
(
|
|
249
|
+
const i = e.indexes.length;
|
|
250
|
+
let o = i, a = !1, r = 0;
|
|
251
|
+
for (; r < i; r++) {
|
|
252
|
+
const l = e.argValues[r] == null;
|
|
253
|
+
(l || a) && (l && (n = !0), e.argValues[r] = O(
|
|
254
254
|
e,
|
|
255
255
|
e.argsNames[r]
|
|
256
256
|
));
|
|
257
|
-
const u =
|
|
257
|
+
const u = w(
|
|
258
258
|
e,
|
|
259
259
|
r,
|
|
260
|
-
r >
|
|
260
|
+
r > o
|
|
261
261
|
);
|
|
262
262
|
if (u < 0) {
|
|
263
263
|
t = !1, e.indexes[r] = -1;
|
|
264
264
|
break;
|
|
265
265
|
}
|
|
266
|
-
|
|
266
|
+
l && (e.indexes[r] = u, e.args[e.argsNames[r]] = e.argValues[r][u]), (a || e.indexes[r] > u) && (e.indexes[r] = u, e.args[e.argsNames[r]] = e.argValues[r][u], a = !0), o === i && e.indexes[r] < u && (o = r);
|
|
267
267
|
}
|
|
268
|
-
if ((n ||
|
|
268
|
+
if ((n || a) && t && !V(e))
|
|
269
269
|
return !0;
|
|
270
270
|
for (r--; r >= 0; r--) {
|
|
271
271
|
if (e.argValues[r] == null)
|
|
272
272
|
continue;
|
|
273
|
-
let
|
|
274
|
-
const u =
|
|
275
|
-
let
|
|
276
|
-
if (
|
|
277
|
-
e.indexes[r] =
|
|
278
|
-
for (let
|
|
279
|
-
e.args[e.argsNames[
|
|
280
|
-
for (r++; r <
|
|
273
|
+
let l = r > o;
|
|
274
|
+
const u = w(e, r, l);
|
|
275
|
+
let f = e.indexes[r] - 1;
|
|
276
|
+
if (f > u && (f = u), f >= 0) {
|
|
277
|
+
e.indexes[r] = f, e.args[e.argsNames[r]] = e.argValues[r][f], f < u && (l = !0);
|
|
278
|
+
for (let d = r + 1; d < i; d++)
|
|
279
|
+
e.args[e.argsNames[d]] = void 0;
|
|
280
|
+
for (r++; r < i; r++) {
|
|
281
281
|
e.argValues[r] = O(
|
|
282
282
|
e,
|
|
283
283
|
e.argsNames[r]
|
|
284
284
|
);
|
|
285
|
-
const
|
|
286
|
-
if (
|
|
285
|
+
const d = w(e, r, l);
|
|
286
|
+
if (d < 0)
|
|
287
287
|
break;
|
|
288
|
-
e.indexes[r] =
|
|
288
|
+
e.indexes[r] = d, e.args[e.argsNames[r]] = e.argValues[r][d], d > 0 && (l = !0);
|
|
289
289
|
}
|
|
290
|
-
if (r >=
|
|
290
|
+
if (r >= i)
|
|
291
291
|
return !0;
|
|
292
292
|
}
|
|
293
293
|
}
|
|
294
294
|
return C(e), !1;
|
|
295
295
|
}
|
|
296
|
-
function
|
|
296
|
+
function at(e, n) {
|
|
297
297
|
C(e);
|
|
298
|
-
const t = e.argsNames,
|
|
299
|
-
let
|
|
300
|
-
for (let
|
|
301
|
-
const r = t[
|
|
302
|
-
if (
|
|
298
|
+
const t = e.argsNames, i = t.length;
|
|
299
|
+
let o = !1;
|
|
300
|
+
for (let a = 0; a < i; a++) {
|
|
301
|
+
const r = t[a], l = n[r];
|
|
302
|
+
if (l === void 0)
|
|
303
303
|
return null;
|
|
304
|
-
e.argValues[
|
|
305
|
-
const u =
|
|
304
|
+
e.argValues[a] = O(e, r);
|
|
305
|
+
const u = w(e, a, o);
|
|
306
306
|
if (u < 0)
|
|
307
307
|
return null;
|
|
308
|
-
const
|
|
309
|
-
e.argValues[
|
|
310
|
-
|
|
308
|
+
const f = U(
|
|
309
|
+
e.argValues[a],
|
|
310
|
+
l,
|
|
311
311
|
e.equals
|
|
312
312
|
);
|
|
313
|
-
if (
|
|
313
|
+
if (f < 0 || f > u)
|
|
314
314
|
return null;
|
|
315
|
-
e.indexes[
|
|
315
|
+
e.indexes[a] = f, e.args[e.argsNames[a]] = e.argValues[a][f], e.indexes[a] < u && (o = !0);
|
|
316
316
|
}
|
|
317
317
|
return V(e) ? null : e.indexes.slice();
|
|
318
318
|
}
|
|
319
|
-
function
|
|
319
|
+
function lt(e) {
|
|
320
320
|
const n = e.indexes.length;
|
|
321
321
|
if (n === 0)
|
|
322
322
|
return !1;
|
|
323
323
|
let t = !1;
|
|
324
|
-
for (let
|
|
325
|
-
e.argValues[
|
|
326
|
-
const
|
|
327
|
-
if (
|
|
324
|
+
for (let i = 0; i < n; i++) {
|
|
325
|
+
e.argValues[i] = O(e, e.argsNames[i]);
|
|
326
|
+
const o = w(e, i, t);
|
|
327
|
+
if (o < 0)
|
|
328
328
|
return Math.random() < 0.5 ? pe(e) : H(e);
|
|
329
|
-
e.indexes[
|
|
329
|
+
e.indexes[i] = Math.floor(Math.random() * (o + 1)), e.args[e.argsNames[i]] = e.argValues[i][e.indexes[i]], e.indexes[i] < o && (t = !0);
|
|
330
330
|
}
|
|
331
331
|
return V(e) ? H(e) : !0;
|
|
332
332
|
}
|
|
333
|
-
function
|
|
333
|
+
function _(e) {
|
|
334
334
|
return e.mode === "forward" || e.mode === "backward";
|
|
335
335
|
}
|
|
336
|
-
function ut(e, n, t,
|
|
337
|
-
const
|
|
338
|
-
if (typeof
|
|
339
|
-
if (
|
|
336
|
+
function ut(e, n, t, i) {
|
|
337
|
+
const o = n[t], a = e.templates[t];
|
|
338
|
+
if (typeof a != "function") {
|
|
339
|
+
if (U(a, o, i) >= 0)
|
|
340
340
|
return;
|
|
341
|
-
|
|
341
|
+
a.push(o);
|
|
342
342
|
return;
|
|
343
343
|
}
|
|
344
344
|
const r = e.extra[t];
|
|
345
345
|
if (r == null) {
|
|
346
|
-
e.extra[t] = [
|
|
346
|
+
e.extra[t] = [o];
|
|
347
347
|
return;
|
|
348
348
|
}
|
|
349
|
-
|
|
349
|
+
U(r, o, i) >= 0 || r.push(o);
|
|
350
350
|
}
|
|
351
351
|
function ct(e, n, t) {
|
|
352
|
-
for (const
|
|
353
|
-
if (Object.prototype.hasOwnProperty.call(n,
|
|
354
|
-
if (
|
|
352
|
+
for (const i in n)
|
|
353
|
+
if (Object.prototype.hasOwnProperty.call(n, i)) {
|
|
354
|
+
if (i === "seed")
|
|
355
355
|
continue;
|
|
356
|
-
ut(e, n,
|
|
356
|
+
ut(e, n, i, t);
|
|
357
357
|
}
|
|
358
358
|
}
|
|
359
359
|
function ce(e, n) {
|
|
@@ -371,33 +371,33 @@ function dt(e) {
|
|
|
371
371
|
const {
|
|
372
372
|
argsTemplates: n,
|
|
373
373
|
equals: t,
|
|
374
|
-
limitArgOnError:
|
|
375
|
-
includeErrorVariant:
|
|
376
|
-
getSeed:
|
|
374
|
+
limitArgOnError: i,
|
|
375
|
+
includeErrorVariant: o,
|
|
376
|
+
getSeed: a,
|
|
377
377
|
iterationModes: r,
|
|
378
|
-
onModeChange:
|
|
378
|
+
onModeChange: l,
|
|
379
379
|
limitCompletionCount: u,
|
|
380
|
-
limitTests:
|
|
381
|
-
limitTime:
|
|
380
|
+
limitTests: f,
|
|
381
|
+
limitTime: d
|
|
382
382
|
} = e, h = e.timeController ?? Q, y = {
|
|
383
383
|
templates: Je(n),
|
|
384
384
|
extra: {}
|
|
385
385
|
}, p = r == null || r.length === 0 ? ft : r, b = [];
|
|
386
|
-
let
|
|
386
|
+
let E = null, L = null, g = 0, S = 0, I = !1, P = 0;
|
|
387
387
|
function $() {
|
|
388
|
-
I || (I = !0, P = h.now(),
|
|
388
|
+
I || (I = !0, P = h.now(), Se(), g = 0, re(), we());
|
|
389
389
|
}
|
|
390
|
-
function
|
|
390
|
+
function Se() {
|
|
391
391
|
for (let s = 0, c = p.length; s < c; s++)
|
|
392
|
-
b.push(
|
|
392
|
+
b.push(xe());
|
|
393
393
|
}
|
|
394
|
-
function
|
|
394
|
+
function xe() {
|
|
395
395
|
return {
|
|
396
396
|
navigationState: ue(
|
|
397
397
|
y,
|
|
398
398
|
t ?? null,
|
|
399
|
-
|
|
400
|
-
|
|
399
|
+
i ?? null,
|
|
400
|
+
o ?? null
|
|
401
401
|
),
|
|
402
402
|
cycleCount: 0,
|
|
403
403
|
completedCount: 0,
|
|
@@ -406,8 +406,8 @@ function dt(e) {
|
|
|
406
406
|
startTime: null
|
|
407
407
|
};
|
|
408
408
|
}
|
|
409
|
-
function
|
|
410
|
-
|
|
409
|
+
function we() {
|
|
410
|
+
E = ue(
|
|
411
411
|
y,
|
|
412
412
|
t ?? null,
|
|
413
413
|
// Initial values; overwritten in calcIndexes before each use
|
|
@@ -416,17 +416,17 @@ function dt(e) {
|
|
|
416
416
|
);
|
|
417
417
|
}
|
|
418
418
|
function re() {
|
|
419
|
-
|
|
419
|
+
l?.({
|
|
420
420
|
mode: p[g],
|
|
421
421
|
modeIndex: g,
|
|
422
|
-
tests:
|
|
422
|
+
tests: S
|
|
423
423
|
});
|
|
424
424
|
}
|
|
425
425
|
function Me(s) {
|
|
426
426
|
$(), ce(y.templates, s) && ct(y, s, t);
|
|
427
427
|
}
|
|
428
428
|
function ne(s, c) {
|
|
429
|
-
return $(), ce(y.templates, s) ? (
|
|
429
|
+
return $(), ce(y.templates, s) ? (E.limitArgOnError = c?.limitArg ?? i ?? null, E.includeErrorVariant = c?.includeLimit ?? o ?? !1, at(E, s)) : null;
|
|
430
430
|
}
|
|
431
431
|
function Te(s) {
|
|
432
432
|
const c = s?.args;
|
|
@@ -438,9 +438,9 @@ function dt(e) {
|
|
|
438
438
|
L = {
|
|
439
439
|
args: c,
|
|
440
440
|
error: s?.error,
|
|
441
|
-
tests: s?.tests ??
|
|
442
|
-
},
|
|
443
|
-
for (let v = 0,
|
|
441
|
+
tests: s?.tests ?? S
|
|
442
|
+
}, E.argLimits = m;
|
|
443
|
+
for (let v = 0, D = b.length; v < D; v++) {
|
|
444
444
|
const j = b[v].navigationState;
|
|
445
445
|
j.argLimits = m;
|
|
446
446
|
}
|
|
@@ -454,13 +454,13 @@ function dt(e) {
|
|
|
454
454
|
if (!Ae())
|
|
455
455
|
return null;
|
|
456
456
|
for (; ; ) {
|
|
457
|
-
const s =
|
|
457
|
+
const s = qe();
|
|
458
458
|
if (s != null)
|
|
459
|
-
return b[g].testsInLastTurn++,
|
|
459
|
+
return b[g].testsInLastTurn++, S++, s;
|
|
460
460
|
if ($e()) {
|
|
461
461
|
if (!Ge())
|
|
462
462
|
return null;
|
|
463
|
-
|
|
463
|
+
_e();
|
|
464
464
|
break;
|
|
465
465
|
}
|
|
466
466
|
}
|
|
@@ -470,10 +470,10 @@ function dt(e) {
|
|
|
470
470
|
return !(Ce() || Oe() || G() && (Le() || !Ne()) || !Pe());
|
|
471
471
|
}
|
|
472
472
|
function Ce() {
|
|
473
|
-
return
|
|
473
|
+
return f != null && S >= f;
|
|
474
474
|
}
|
|
475
475
|
function Oe() {
|
|
476
|
-
return
|
|
476
|
+
return d != null && h.now() - P >= d;
|
|
477
477
|
}
|
|
478
478
|
function Le() {
|
|
479
479
|
if (!G())
|
|
@@ -501,7 +501,7 @@ function dt(e) {
|
|
|
501
501
|
}
|
|
502
502
|
function Ge() {
|
|
503
503
|
if (G()) {
|
|
504
|
-
const s =
|
|
504
|
+
const s = De();
|
|
505
505
|
if (u != null && s >= u)
|
|
506
506
|
return !1;
|
|
507
507
|
}
|
|
@@ -509,15 +509,15 @@ function dt(e) {
|
|
|
509
509
|
}
|
|
510
510
|
function G() {
|
|
511
511
|
for (let s = 0, c = p.length; s < c; s++)
|
|
512
|
-
if (
|
|
512
|
+
if (_(p[s]))
|
|
513
513
|
return !0;
|
|
514
514
|
return !1;
|
|
515
515
|
}
|
|
516
|
-
function
|
|
516
|
+
function De() {
|
|
517
517
|
let s = !1, c = 1 / 0;
|
|
518
518
|
for (let m = 0, v = b.length; m < v; m++) {
|
|
519
|
-
const
|
|
520
|
-
|
|
519
|
+
const D = b[m], j = p[m];
|
|
520
|
+
_(j) && (s = !0, k(m) && D.completedCount < c && (c = D.completedCount));
|
|
521
521
|
}
|
|
522
522
|
if (!s)
|
|
523
523
|
throw new Error("Unexpected behavior");
|
|
@@ -527,17 +527,17 @@ function dt(e) {
|
|
|
527
527
|
const c = p[s], m = b[s];
|
|
528
528
|
return c.limitTests != null && c.limitTests <= 0 || A(c) && (c.cycles != null && c.cycles <= 0 || c.attemptsPerVariant != null && c.attemptsPerVariant <= 0) ? !1 : m.tryNextVariantAttempts < 2;
|
|
529
529
|
}
|
|
530
|
-
function
|
|
530
|
+
function _e() {
|
|
531
531
|
g = 0;
|
|
532
532
|
for (let s = 0, c = b.length; s < c; s++) {
|
|
533
533
|
const m = b[s];
|
|
534
534
|
m.testsInLastTurn = 0, m.startTime = null;
|
|
535
535
|
}
|
|
536
536
|
}
|
|
537
|
-
function
|
|
537
|
+
function qe() {
|
|
538
538
|
let s = 0;
|
|
539
539
|
for (; s < 2; ) {
|
|
540
|
-
if (!
|
|
540
|
+
if (!Ue())
|
|
541
541
|
return null;
|
|
542
542
|
const c = je();
|
|
543
543
|
if (c != null)
|
|
@@ -548,7 +548,7 @@ function dt(e) {
|
|
|
548
548
|
}
|
|
549
549
|
return null;
|
|
550
550
|
}
|
|
551
|
-
function
|
|
551
|
+
function Ue() {
|
|
552
552
|
const s = p[g];
|
|
553
553
|
return !(Be() || Re() || A(s) && !ke(g));
|
|
554
554
|
}
|
|
@@ -561,7 +561,7 @@ function dt(e) {
|
|
|
561
561
|
return s.limitTime != null && c.startTime != null && h.now() - c.startTime >= s.limitTime;
|
|
562
562
|
}
|
|
563
563
|
function A(s) {
|
|
564
|
-
return
|
|
564
|
+
return _(s);
|
|
565
565
|
}
|
|
566
566
|
function ke(s) {
|
|
567
567
|
const c = p[s], m = b[s];
|
|
@@ -604,7 +604,7 @@ function dt(e) {
|
|
|
604
604
|
m.attempts = 1;
|
|
605
605
|
}
|
|
606
606
|
function N(s) {
|
|
607
|
-
return
|
|
607
|
+
return _(s);
|
|
608
608
|
}
|
|
609
609
|
function F() {
|
|
610
610
|
const s = p[g];
|
|
@@ -620,14 +620,14 @@ function dt(e) {
|
|
|
620
620
|
case "backward":
|
|
621
621
|
return H(m);
|
|
622
622
|
case "random":
|
|
623
|
-
return
|
|
623
|
+
return lt(m);
|
|
624
624
|
default:
|
|
625
625
|
throw new Error(`Unknown mode: ${s.mode}`);
|
|
626
626
|
}
|
|
627
627
|
}
|
|
628
628
|
function oe(s) {
|
|
629
629
|
const c = { ...s };
|
|
630
|
-
return
|
|
630
|
+
return a != null && (c.seed = a({ tests: S })), c;
|
|
631
631
|
}
|
|
632
632
|
return {
|
|
633
633
|
get limit() {
|
|
@@ -643,7 +643,7 @@ function dt(e) {
|
|
|
643
643
|
return b;
|
|
644
644
|
},
|
|
645
645
|
get tests() {
|
|
646
|
-
return
|
|
646
|
+
return S;
|
|
647
647
|
},
|
|
648
648
|
calcIndexes: ne,
|
|
649
649
|
extendTemplates: Me,
|
|
@@ -659,16 +659,16 @@ function ee(e) {
|
|
|
659
659
|
return e <= 0 ? n : n.then(ee);
|
|
660
660
|
}
|
|
661
661
|
function mt(e, n, t) {
|
|
662
|
-
const
|
|
662
|
+
const i = n.limit ? {
|
|
663
663
|
error: n.limit.error,
|
|
664
664
|
args: n.limit.args,
|
|
665
665
|
tests: n.limit.tests
|
|
666
666
|
} : null;
|
|
667
|
-
if (
|
|
668
|
-
throw
|
|
667
|
+
if (i && !t)
|
|
668
|
+
throw i.error;
|
|
669
669
|
return {
|
|
670
670
|
iterations: e.iterations,
|
|
671
|
-
bestError:
|
|
671
|
+
bestError: i
|
|
672
672
|
};
|
|
673
673
|
}
|
|
674
674
|
const fe = 2 ** 31;
|
|
@@ -690,7 +690,7 @@ function gt(e) {
|
|
|
690
690
|
};
|
|
691
691
|
}
|
|
692
692
|
function pt(e) {
|
|
693
|
-
const n = e?.saveErrorVariants, t = n && e.createSaveErrorVariantsStore ? e.createSaveErrorVariantsStore(n) : null,
|
|
693
|
+
const n = e?.saveErrorVariants, t = n && e.createSaveErrorVariantsStore ? e.createSaveErrorVariantsStore(n) : null, i = e?.findBestError, { parallel: o, sequentialOnError: a } = gt(
|
|
694
694
|
e?.parallel
|
|
695
695
|
);
|
|
696
696
|
return {
|
|
@@ -700,59 +700,59 @@ function pt(e) {
|
|
|
700
700
|
GC_Interval: e?.GC_Interval ?? 1e3,
|
|
701
701
|
logOptions: ge(e?.log),
|
|
702
702
|
abortSignalExternal: e?.abortSignal,
|
|
703
|
-
findBestError:
|
|
704
|
-
dontThrowIfError:
|
|
703
|
+
findBestError: i,
|
|
704
|
+
dontThrowIfError: i?.dontThrowIfError,
|
|
705
705
|
timeController: e?.timeController ?? Q,
|
|
706
|
-
parallel:
|
|
707
|
-
sequentialOnError:
|
|
706
|
+
parallel: o,
|
|
707
|
+
sequentialOnError: a
|
|
708
708
|
};
|
|
709
709
|
}
|
|
710
710
|
function B(e, n, t) {
|
|
711
|
-
const { options:
|
|
712
|
-
if (!
|
|
711
|
+
const { options: i, variantsIterator: o } = e, a = o.limit?.args ?? n;
|
|
712
|
+
if (!i.store)
|
|
713
713
|
return;
|
|
714
|
-
const r =
|
|
714
|
+
const r = i.store.save(a);
|
|
715
715
|
if (t)
|
|
716
716
|
return r;
|
|
717
717
|
}
|
|
718
|
-
function ht(e, n, t,
|
|
719
|
-
const { abortControllerParallel:
|
|
718
|
+
function ht(e, n, t, i) {
|
|
719
|
+
const { abortControllerParallel: o, state: a, options: r } = e, { logOptions: l } = r;
|
|
720
720
|
if (e.options.findBestError)
|
|
721
|
-
e.variantsIterator.addLimit({ args: n, error: t, tests:
|
|
721
|
+
e.variantsIterator.addLimit({ args: n, error: t, tests: i }), a.debugMode = !1, B(e, n, !1), r.sequentialOnError && !o.signal.aborted ? (l.debug && l.func(
|
|
722
722
|
"debug",
|
|
723
723
|
"[test-variants] sequentialOnError: aborting parallel, switching to sequential"
|
|
724
|
-
),
|
|
724
|
+
), o.abort(new T())) : l.debug && l.func(
|
|
725
725
|
"debug",
|
|
726
726
|
"[test-variants] parallel error in findBestError mode, continuing with new limits"
|
|
727
727
|
);
|
|
728
728
|
else {
|
|
729
|
-
if (
|
|
729
|
+
if (o.signal.aborted)
|
|
730
730
|
return;
|
|
731
|
-
B(e, n, !1),
|
|
731
|
+
B(e, n, !1), o.abort(t);
|
|
732
732
|
}
|
|
733
733
|
}
|
|
734
|
-
function de(e, n, t,
|
|
735
|
-
const { state:
|
|
734
|
+
function de(e, n, t, i) {
|
|
735
|
+
const { state: o } = e;
|
|
736
736
|
if (e.options.findBestError) {
|
|
737
|
-
e.variantsIterator.addLimit({ args: n, error: t, tests:
|
|
737
|
+
e.variantsIterator.addLimit({ args: n, error: t, tests: i });
|
|
738
738
|
const r = B(e, n, !0);
|
|
739
739
|
if (r)
|
|
740
740
|
return r.then(() => {
|
|
741
|
-
|
|
741
|
+
o.debugMode = !1;
|
|
742
742
|
});
|
|
743
|
-
|
|
743
|
+
o.debugMode = !1;
|
|
744
744
|
return;
|
|
745
745
|
}
|
|
746
|
-
const
|
|
747
|
-
if (
|
|
748
|
-
return
|
|
746
|
+
const a = B(e, n, !0);
|
|
747
|
+
if (a)
|
|
748
|
+
return a.then(() => {
|
|
749
749
|
throw t;
|
|
750
750
|
});
|
|
751
751
|
throw t;
|
|
752
752
|
}
|
|
753
753
|
function bt(e, n) {
|
|
754
|
-
const { GC_Iterations: t, GC_IterationsAsync:
|
|
755
|
-
return t > 0 && e.state.iterations - e.state.prevGcIterations >= t ||
|
|
754
|
+
const { GC_Iterations: t, GC_IterationsAsync: i, GC_Interval: o } = e.options;
|
|
755
|
+
return t > 0 && e.state.iterations - e.state.prevGcIterations >= t || i > 0 && e.state.iterationsAsync - e.state.prevGcIterationsAsync >= i || o > 0 && n - e.state.prevGcTime >= o;
|
|
756
756
|
}
|
|
757
757
|
async function yt(e, n) {
|
|
758
758
|
e.prevGcIterations = e.iterations, e.prevGcIterationsAsync = e.iterationsAsync, e.prevGcTime = n, await ee(1);
|
|
@@ -778,46 +778,46 @@ function vt(e, n) {
|
|
|
778
778
|
return (e.mode === "forward" || e.mode === "backward") && (e.cycles != null && (t += `, cycles=${e.cycles}`), e.attemptsPerVariant != null && (t += `, attempts=${e.attemptsPerVariant}`)), e.limitTime != null && (t += `, limitTime=${te(e.limitTime)}`), e.limitTests != null && (t += `, limitTests=${e.limitTests}`), t;
|
|
779
779
|
}
|
|
780
780
|
function he(e, n) {
|
|
781
|
-
const t = e - n,
|
|
782
|
-
return `${J(e)} (${
|
|
781
|
+
const t = e - n, i = t >= 0 ? "+" : "";
|
|
782
|
+
return `${J(e)} (${i}${J(t)})`;
|
|
783
783
|
}
|
|
784
|
-
function
|
|
784
|
+
function Et(e, n) {
|
|
785
785
|
if (!e.start)
|
|
786
786
|
return;
|
|
787
787
|
let t = "[test-variants] start";
|
|
788
788
|
n != null && (t += `, memory: ${J(n)}`), e.func("start", t);
|
|
789
789
|
}
|
|
790
|
-
function
|
|
791
|
-
const { options: n, state: t } = e, { logOptions:
|
|
792
|
-
if (!
|
|
790
|
+
function St(e) {
|
|
791
|
+
const { options: n, state: t } = e, { logOptions: i, timeController: o } = n;
|
|
792
|
+
if (!i.completed)
|
|
793
793
|
return;
|
|
794
|
-
const
|
|
795
|
-
let r = `[test-variants] end, tests: ${t.tests} (${te(
|
|
794
|
+
const a = o.now() - t.startTime;
|
|
795
|
+
let r = `[test-variants] end, tests: ${t.tests} (${te(a)}), async: ${t.iterationsAsync}`;
|
|
796
796
|
if (t.startMemory != null) {
|
|
797
|
-
const
|
|
798
|
-
|
|
797
|
+
const l = Y();
|
|
798
|
+
l != null && (r += `, memory: ${he(l, t.startMemory)}`);
|
|
799
799
|
}
|
|
800
|
-
|
|
800
|
+
i.func("completed", r);
|
|
801
801
|
}
|
|
802
802
|
function be(e) {
|
|
803
|
-
const { options: n, state: t } = e, { logOptions:
|
|
804
|
-
!
|
|
803
|
+
const { options: n, state: t } = e, { logOptions: i } = n, o = t.pendingModeChange;
|
|
804
|
+
!i.modeChange || o == null || (i.func(
|
|
805
805
|
"modeChange",
|
|
806
|
-
`[test-variants] ${vt(
|
|
806
|
+
`[test-variants] ${vt(o.mode, o.modeIndex)}`
|
|
807
807
|
), t.pendingModeChange = null);
|
|
808
808
|
}
|
|
809
|
-
function
|
|
810
|
-
const { options: n, state: t } = e, { logOptions:
|
|
811
|
-
if (!
|
|
809
|
+
function xt(e) {
|
|
810
|
+
const { options: n, state: t } = e, { logOptions: i, timeController: o } = n, a = o.now();
|
|
811
|
+
if (!i.progress || a - t.prevLogTime < i.progress)
|
|
812
812
|
return !1;
|
|
813
813
|
be(e);
|
|
814
|
-
const r =
|
|
815
|
-
let
|
|
814
|
+
const r = a - t.startTime;
|
|
815
|
+
let l = `[test-variants] tests: ${t.tests} (${te(r)}), async: ${t.iterationsAsync}`;
|
|
816
816
|
if (t.prevLogMemory != null) {
|
|
817
817
|
const u = Y();
|
|
818
|
-
u != null && (
|
|
818
|
+
u != null && (l += `, memory: ${he(u, t.prevLogMemory)}`, t.prevLogMemory = u);
|
|
819
819
|
}
|
|
820
|
-
return
|
|
820
|
+
return i.func("progress", l), t.prevLogTime = a, !0;
|
|
821
821
|
}
|
|
822
822
|
function X(e, n) {
|
|
823
823
|
e.debugMode = !1, n && (e.iterationsAsync += n.iterationsAsync, e.iterations += n.iterationsSync + n.iterationsAsync);
|
|
@@ -826,40 +826,40 @@ function Z(e) {
|
|
|
826
826
|
e.state.debugMode = !0, e.abortControllerParallel.abort(new T());
|
|
827
827
|
}
|
|
828
828
|
function ye(e, n) {
|
|
829
|
-
const { testRun: t, testOptions:
|
|
830
|
-
|
|
829
|
+
const { testRun: t, testOptions: i, state: o } = e, a = o.tests;
|
|
830
|
+
o.tests++;
|
|
831
831
|
try {
|
|
832
|
-
const r = t(n,
|
|
832
|
+
const r = t(n, a, i);
|
|
833
833
|
if (M(r))
|
|
834
834
|
return r.then(
|
|
835
|
-
(
|
|
836
|
-
if (!
|
|
835
|
+
(l) => {
|
|
836
|
+
if (!l) {
|
|
837
837
|
Z(e);
|
|
838
838
|
return;
|
|
839
839
|
}
|
|
840
|
-
X(
|
|
840
|
+
X(o, l);
|
|
841
841
|
},
|
|
842
|
-
(
|
|
842
|
+
(l) => de(e, n, l, a)
|
|
843
843
|
);
|
|
844
844
|
if (!r) {
|
|
845
845
|
Z(e);
|
|
846
846
|
return;
|
|
847
847
|
}
|
|
848
|
-
X(
|
|
848
|
+
X(o, r);
|
|
849
849
|
} catch (r) {
|
|
850
|
-
return r instanceof T ? void 0 : de(e, n, r,
|
|
850
|
+
return r instanceof T ? void 0 : de(e, n, r, a);
|
|
851
851
|
}
|
|
852
852
|
}
|
|
853
|
-
function
|
|
854
|
-
const { pool: t, abortSignal:
|
|
853
|
+
function wt(e, n) {
|
|
854
|
+
const { pool: t, abortSignal: i, testRun: o, testOptionsParallel: a, state: r } = e;
|
|
855
855
|
if (!t)
|
|
856
856
|
return;
|
|
857
|
-
const
|
|
857
|
+
const l = r.tests;
|
|
858
858
|
r.tests++, (async () => {
|
|
859
859
|
try {
|
|
860
|
-
if (
|
|
860
|
+
if (i.aborted)
|
|
861
861
|
return;
|
|
862
|
-
let u =
|
|
862
|
+
let u = o(n, l, a);
|
|
863
863
|
if (M(u) && (u = await u), !u) {
|
|
864
864
|
Z(e);
|
|
865
865
|
return;
|
|
@@ -868,18 +868,18 @@ function Et(e, n) {
|
|
|
868
868
|
} catch (u) {
|
|
869
869
|
if (u instanceof T)
|
|
870
870
|
return;
|
|
871
|
-
ht(e, n, u,
|
|
871
|
+
ht(e, n, u, l);
|
|
872
872
|
} finally {
|
|
873
873
|
t.release(1);
|
|
874
874
|
}
|
|
875
875
|
})();
|
|
876
876
|
}
|
|
877
877
|
function ve(e) {
|
|
878
|
-
const { options: n, state: t } = e, { logOptions:
|
|
879
|
-
if (!
|
|
878
|
+
const { options: n, state: t } = e, { logOptions: i, timeController: o, GC_Interval: a } = n;
|
|
879
|
+
if (!i.progress && !a)
|
|
880
880
|
return;
|
|
881
|
-
|
|
882
|
-
const r =
|
|
881
|
+
xt(e);
|
|
882
|
+
const r = o.now();
|
|
883
883
|
if (bt(e, r))
|
|
884
884
|
return yt(t, r);
|
|
885
885
|
}
|
|
@@ -889,137 +889,138 @@ function R(e) {
|
|
|
889
889
|
function K(e) {
|
|
890
890
|
return e.abortSignal.aborted;
|
|
891
891
|
}
|
|
892
|
-
function
|
|
892
|
+
function Ee(e, n) {
|
|
893
893
|
return e.state.debugMode ? n : e.variantsIterator.next();
|
|
894
894
|
}
|
|
895
895
|
async function W(e, n) {
|
|
896
|
-
const { pool: t, state:
|
|
897
|
-
let
|
|
896
|
+
const { pool: t, state: i, options: o } = e, { parallel: a, logOptions: r } = o;
|
|
897
|
+
let l = n ?? null;
|
|
898
898
|
for (; !R(e); ) {
|
|
899
899
|
const u = t && !K(e);
|
|
900
|
-
let
|
|
901
|
-
u && (t.hold(1) || await
|
|
900
|
+
let f = !1;
|
|
901
|
+
u && (t.hold(1) || await ae({ pool: t, count: 1, hold: !0 }), f = !0);
|
|
902
902
|
try {
|
|
903
|
-
if (
|
|
903
|
+
if (l == null && (l = Ee(e, l), l == null))
|
|
904
904
|
break;
|
|
905
|
-
const
|
|
906
|
-
if (M(
|
|
907
|
-
|
|
905
|
+
const d = ve(e);
|
|
906
|
+
if (M(d) && await d, R(e)) {
|
|
907
|
+
l = null;
|
|
908
908
|
continue;
|
|
909
909
|
}
|
|
910
910
|
if (u)
|
|
911
|
-
|
|
911
|
+
wt(e, l), f = !1;
|
|
912
912
|
else {
|
|
913
913
|
r.debug && t && K(e) && r.func(
|
|
914
914
|
"debug",
|
|
915
|
-
`[test-variants] parallel aborted, running sequential: tests=${
|
|
915
|
+
`[test-variants] parallel aborted, running sequential: tests=${i.tests}`
|
|
916
916
|
);
|
|
917
|
-
const h = ye(e,
|
|
917
|
+
const h = ye(e, l);
|
|
918
918
|
M(h) && await h;
|
|
919
919
|
}
|
|
920
|
-
|
|
920
|
+
l = null;
|
|
921
921
|
} finally {
|
|
922
|
-
|
|
922
|
+
f && t.release(1);
|
|
923
923
|
}
|
|
924
924
|
}
|
|
925
|
-
t && (await
|
|
925
|
+
t && (await ae({ pool: t, count: a, hold: !0 }), t.release(a));
|
|
926
926
|
}
|
|
927
927
|
function Mt(e) {
|
|
928
|
-
const { pool: n, state: t, options:
|
|
928
|
+
const { pool: n, state: t, options: i } = e, { logOptions: o } = i;
|
|
929
929
|
if (n)
|
|
930
930
|
return W(e);
|
|
931
|
-
let
|
|
932
|
-
for (; !R(e) && (
|
|
931
|
+
let a = null;
|
|
932
|
+
for (; !R(e) && (a = Ee(e, a), a != null); ) {
|
|
933
933
|
const r = ve(e);
|
|
934
934
|
if (M(r)) {
|
|
935
|
-
const u =
|
|
935
|
+
const u = a;
|
|
936
936
|
return r.then(() => W(e, u));
|
|
937
937
|
}
|
|
938
938
|
if (R(e))
|
|
939
939
|
continue;
|
|
940
|
-
|
|
940
|
+
o.debug && K(e) && o.func(
|
|
941
941
|
"debug",
|
|
942
942
|
`[test-variants] parallel aborted, running sequential: tests=${t.tests}`
|
|
943
943
|
);
|
|
944
|
-
const
|
|
945
|
-
if (M(
|
|
946
|
-
return
|
|
944
|
+
const l = ye(e, a);
|
|
945
|
+
if (M(l))
|
|
946
|
+
return l.then(() => W(e));
|
|
947
947
|
}
|
|
948
948
|
}
|
|
949
|
-
async function Tt(e, n, t,
|
|
950
|
-
const
|
|
951
|
-
store:
|
|
949
|
+
async function Tt(e, n, t, i) {
|
|
950
|
+
const o = pt(i), {
|
|
951
|
+
store: a,
|
|
952
952
|
logOptions: r,
|
|
953
|
-
abortSignalExternal:
|
|
953
|
+
abortSignalExternal: l,
|
|
954
954
|
findBestError: u,
|
|
955
|
-
dontThrowIfError:
|
|
956
|
-
timeController:
|
|
955
|
+
dontThrowIfError: f,
|
|
956
|
+
timeController: d,
|
|
957
957
|
parallel: h
|
|
958
|
-
} =
|
|
959
|
-
|
|
958
|
+
} = o, y = new se(), p = new se(), b = ie(
|
|
959
|
+
l,
|
|
960
960
|
y.signal
|
|
961
|
-
),
|
|
961
|
+
), E = ie(
|
|
962
962
|
b,
|
|
963
963
|
p.signal
|
|
964
964
|
), L = {
|
|
965
965
|
abortSignal: b,
|
|
966
|
-
timeController:
|
|
966
|
+
timeController: d
|
|
967
967
|
}, g = {
|
|
968
|
-
abortSignal:
|
|
969
|
-
timeController:
|
|
968
|
+
abortSignal: E,
|
|
969
|
+
timeController: d
|
|
970
970
|
};
|
|
971
|
-
|
|
971
|
+
a && await a.replay({
|
|
972
972
|
testRun: e,
|
|
973
973
|
variantsIterator: n,
|
|
974
974
|
testOptions: L,
|
|
975
975
|
findBestErrorEnabled: !!u
|
|
976
976
|
});
|
|
977
|
-
const
|
|
978
|
-
|
|
977
|
+
const S = h <= 1 ? null : new Ke(h);
|
|
978
|
+
Et(r, t.startMemory);
|
|
979
979
|
const I = {
|
|
980
|
-
options:
|
|
980
|
+
options: o,
|
|
981
981
|
testRun: e,
|
|
982
982
|
variantsIterator: n,
|
|
983
983
|
testOptions: L,
|
|
984
984
|
testOptionsParallel: g,
|
|
985
985
|
abortControllerGlobal: y,
|
|
986
986
|
abortControllerParallel: p,
|
|
987
|
-
abortSignal:
|
|
988
|
-
pool:
|
|
987
|
+
abortSignal: E,
|
|
988
|
+
pool: S,
|
|
989
989
|
state: t
|
|
990
990
|
};
|
|
991
991
|
be(I);
|
|
992
992
|
try {
|
|
993
|
-
await Mt(I),
|
|
993
|
+
await Mt(I), E.throwIfAborted();
|
|
994
994
|
} catch (P) {
|
|
995
995
|
throw y.abort(new T()), P;
|
|
996
996
|
}
|
|
997
|
-
return b.throwIfAborted(), y.abort(new T()),
|
|
997
|
+
return b.throwIfAborted(), y.abort(new T()), St(I), await ee(1), mt(t, n, f);
|
|
998
998
|
}
|
|
999
999
|
function Nt(e) {
|
|
1000
1000
|
return function(t) {
|
|
1001
|
-
return async function(
|
|
1002
|
-
const
|
|
1003
|
-
onError:
|
|
1004
|
-
log:
|
|
1005
|
-
|
|
1001
|
+
return async function(o) {
|
|
1002
|
+
const a = ge(o?.log), r = st(e, {
|
|
1003
|
+
onError: o?.onError,
|
|
1004
|
+
log: a,
|
|
1005
|
+
pauseDebuggerOnError: o?.pauseDebuggerOnError
|
|
1006
|
+
}), l = o?.timeController ?? Q, u = Y(), f = nt(l, u), d = o?.onModeChange;
|
|
1006
1007
|
function h(p) {
|
|
1007
|
-
|
|
1008
|
+
f.pendingModeChange = p, d?.(p);
|
|
1008
1009
|
}
|
|
1009
1010
|
const y = dt({
|
|
1010
1011
|
argsTemplates: t,
|
|
1011
|
-
getSeed:
|
|
1012
|
-
iterationModes:
|
|
1013
|
-
equals:
|
|
1014
|
-
limitArgOnError:
|
|
1015
|
-
includeErrorVariant:
|
|
1016
|
-
timeController:
|
|
1012
|
+
getSeed: o?.getSeed,
|
|
1013
|
+
iterationModes: o?.iterationModes,
|
|
1014
|
+
equals: o?.findBestError?.equals,
|
|
1015
|
+
limitArgOnError: o?.findBestError?.limitArgOnError,
|
|
1016
|
+
includeErrorVariant: o?.findBestError?.includeErrorVariant,
|
|
1017
|
+
timeController: l,
|
|
1017
1018
|
onModeChange: h,
|
|
1018
|
-
limitCompletionCount:
|
|
1019
|
-
limitTests:
|
|
1020
|
-
limitTime:
|
|
1019
|
+
limitCompletionCount: o?.cycles ?? 1,
|
|
1020
|
+
limitTests: o?.limitTests,
|
|
1021
|
+
limitTime: o?.limitTime
|
|
1021
1022
|
});
|
|
1022
|
-
return Tt(r, y,
|
|
1023
|
+
return Tt(r, y, f, o);
|
|
1023
1024
|
};
|
|
1024
1025
|
};
|
|
1025
1026
|
}
|