@nsshunt/stsappframework 3.1.167 → 3.1.169
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/dist/testertesting/app.js +49 -0
- package/dist/testertesting/app.js.map +1 -1
- package/dist/testertesting/commonTypes.js +2 -2
- package/dist/testertesting/commonTypes.js.map +1 -1
- package/dist/testertesting/testCase01.js +2 -2
- package/dist/testertesting/testCase01.js.map +1 -1
- package/dist/testertesting/workerInstance.js +21 -27
- package/dist/testertesting/workerInstance.js.map +1 -1
- package/dist/testertesting/workerManager.js +77 -25
- package/dist/testertesting/workerManager.js.map +1 -1
- package/dist/testertesting/workerWorkerTestRunner01.js +9 -145
- package/dist/testertesting/workerWorkerTestRunner01.js.map +1 -1
- package/package.json +3 -1
- package/src/testertesting/app.ts +62 -5
- package/src/testertesting/commonTypes.ts +19 -7
- package/src/testertesting/testCase01.ts +2 -2
- package/src/testertesting/workerInstance.ts +22 -32
- package/src/testertesting/workerManager.ts +85 -27
- package/src/testertesting/workerWorkerTestRunner01.ts +7 -179
- package/types/testertesting/commonTypes.d.ts +19 -8
- package/types/testertesting/commonTypes.d.ts.map +1 -1
- package/types/testertesting/workerInstance.d.ts +0 -2
- package/types/testertesting/workerInstance.d.ts.map +1 -1
- package/types/testertesting/workerManager.d.ts.map +1 -1
- package/types/testertesting/workerWorkerTestRunner01.d.ts +1 -14
- package/types/testertesting/workerWorkerTestRunner01.d.ts.map +1 -1
- package/dist/testertesting/requestResponseHelper.js +0 -83
- package/dist/testertesting/requestResponseHelper.js.map +0 -1
- package/src/testertesting/requestResponseHelper.ts +0 -95
- package/types/testertesting/requestResponseHelper.d.ts +0 -8
- package/types/testertesting/requestResponseHelper.d.ts.map +0 -1
|
@@ -18,6 +18,8 @@ import chalk from 'chalk';
|
|
|
18
18
|
import { TelemetryProcessor } from './telemetryProcessor'
|
|
19
19
|
chalk.level = 3;
|
|
20
20
|
|
|
21
|
+
import isNode from 'detect-node'
|
|
22
|
+
|
|
21
23
|
export class STSWorkerManager {
|
|
22
24
|
//#agentSession: string = null;
|
|
23
25
|
#workersEx: Record<string, IWorkerEx> = { };
|
|
@@ -72,13 +74,29 @@ export class STSWorkerManager {
|
|
|
72
74
|
workerThreadWorkerOptions: workerFactory.workerThreadWorkerOptions,
|
|
73
75
|
runnersEx: { } as Record<string, IRunnerEx>,
|
|
74
76
|
runnersEvents: { } as Record<string, IRunnerEvent[]>,
|
|
77
|
+
|
|
78
|
+
GetRunner: (id: string): IRunnerEx | null => this.#workersEx[workerId].GetRunner(id),
|
|
79
|
+
|
|
80
|
+
// Commands to execute on individual runners
|
|
75
81
|
AddRunner: (runnerOptions: IRunnerOptions): IRunnerEx => this.AddRunnerToWorker(stsWorkerEx, runnerOptions),
|
|
76
82
|
StartRunner: (runner: IRunnerEx): Promise<boolean> => this.#StartRunner(stsWorkerEx, runner),
|
|
77
83
|
StopRunner: (runner: IRunnerEx): Promise<boolean> => this.#StopRunner(stsWorkerEx, runner),
|
|
78
84
|
PauseRunner: (runner: IRunnerEx): Promise<boolean> => this.#PauseRunner(stsWorkerEx, runner),
|
|
79
85
|
ResumeRunner: (runner: IRunnerEx): Promise<boolean> => this.#ResumeRunner(stsWorkerEx, runner),
|
|
86
|
+
TerminateRunner: (runner: IRunnerEx): Promise<boolean> => this.#TerminateRunner(stsWorkerEx, runner),
|
|
87
|
+
ResetRunner: (runner: IRunnerEx): Promise<boolean> => this.#ResetRunner(stsWorkerEx, runner),
|
|
88
|
+
ExecuteRunner: (runner: IRunnerEx): Promise<boolean> => this.#ExecuteRunner(stsWorkerEx, runner),
|
|
89
|
+
UpdateOptionsRunner: (runner: IRunnerEx, options: IRunnerOptions): Promise<boolean> => this.#UpdateOptions(stsWorkerEx, runner, options),
|
|
90
|
+
|
|
91
|
+
// Commands to execute on all runners
|
|
92
|
+
Start: async (): Promise<boolean> => this.#StartWorker(stsWorkerEx),
|
|
80
93
|
Stop: async (): Promise<boolean> => this.#StopWorker(stsWorkerEx),
|
|
81
|
-
|
|
94
|
+
Pause: async (): Promise<boolean> => this.#PauseWorker(stsWorkerEx),
|
|
95
|
+
Resume: async (): Promise<boolean> => this.#ResumeWorker(stsWorkerEx),
|
|
96
|
+
Terminate: async (): Promise<boolean> => this.#TerminateWorker(stsWorkerEx),
|
|
97
|
+
Reset: async (): Promise<boolean> => this.#ResetWorker(stsWorkerEx),
|
|
98
|
+
Execute: async (): Promise<boolean> => this.#ExecuteWorker(stsWorkerEx),
|
|
99
|
+
UpdateOptions: async (options: IRunnerOptions): Promise<boolean> => this.#UpdateOptionsWorker(stsWorkerEx, options)
|
|
82
100
|
}
|
|
83
101
|
this.#STSInstrumentController.LogEx(chalk.yellow(`pid: [${process.pid}] Creating new worker: [${stsWorkerEx.id}]`));
|
|
84
102
|
this.#debug(`Adding worker: [${stsWorkerEx.id}]`);
|
|
@@ -113,8 +131,13 @@ export class STSWorkerManager {
|
|
|
113
131
|
// Process messages received back from the worker
|
|
114
132
|
//workerPort.onmessage = async (data: MessageEvent) => {
|
|
115
133
|
workerPort.on('message', (data: any) => {
|
|
116
|
-
|
|
117
|
-
|
|
134
|
+
let publishMessagePayload: IIWMessagePayload;
|
|
135
|
+
if (isNode) {
|
|
136
|
+
publishMessagePayload = data as IIWMessagePayload;
|
|
137
|
+
} else {
|
|
138
|
+
// const publishMessagePayload: IIWMessagePayload = data.data as IIWMessagePayload; browser version
|
|
139
|
+
publishMessagePayload = data.data as IIWMessagePayload; // browser version
|
|
140
|
+
}
|
|
118
141
|
switch (publishMessagePayload.command) {
|
|
119
142
|
case eIWMessageCommands.MessagePortResponse :
|
|
120
143
|
//this.#debug(`AddWorker::eIWMessageCommands.MessagePortResponse`);
|
|
@@ -163,7 +186,7 @@ export class STSWorkerManager {
|
|
|
163
186
|
const payload: ITestRunnerTelemetryPayload = {
|
|
164
187
|
runner: this.#CreateRunnerCopy(runnerEx)
|
|
165
188
|
}
|
|
166
|
-
this.#PostMessageToWorker(workerEx, eIWMessageCommands.
|
|
189
|
+
this.#PostMessageToWorker(workerEx, eIWMessageCommands.AddRunner, payload);
|
|
167
190
|
}
|
|
168
191
|
|
|
169
192
|
#ProcessTelemetry = (workerEx: IWorkerEx, payloadContents: ITestRunnerTelemetryPayload): void => {
|
|
@@ -279,19 +302,6 @@ ${this.#runner}`,
|
|
|
279
302
|
}
|
|
280
303
|
}
|
|
281
304
|
|
|
282
|
-
#TerminateWorker = (workerEx: IWorkerEx) => {
|
|
283
|
-
if (workerEx.worker) {
|
|
284
|
-
//const store = TelemetryStore();
|
|
285
|
-
workerEx.worker.terminate();
|
|
286
|
-
this.#debug(`Terminated worker: [${workerEx.id}]`);
|
|
287
|
-
//store.RemoveWorker(workerEx);
|
|
288
|
-
delete this.#workersEx[workerEx.id];
|
|
289
|
-
} else {
|
|
290
|
-
// Some other runner has already removed the parent worker, do nothing
|
|
291
|
-
// console.log(`WORKER ALREADY NULL`);
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
|
|
295
305
|
#StartRunner = async (workerEx: IWorkerEx, runnerEx: IRunnerEx): Promise<boolean> => {
|
|
296
306
|
this.#PostMessageToWorker(workerEx, eIWMessageCommands.StartRunner, {
|
|
297
307
|
runner: this.#CreateRunnerCopy(runnerEx)
|
|
@@ -368,15 +378,10 @@ ${this.#runner}`,
|
|
|
368
378
|
return true;
|
|
369
379
|
}
|
|
370
380
|
|
|
371
|
-
#
|
|
381
|
+
#WorkerCommand = async (workerEx: IWorkerEx, command: any, options?: IRunnerOptions): Promise<boolean> => {
|
|
372
382
|
try {
|
|
373
383
|
if (workerEx.state !== IWorkerState.stopped) {
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
//@@ Now wait until we get an ack back from the worker
|
|
377
|
-
// This is because we may be trying to stop BEFORE the worker has had a chance to startup ...
|
|
378
|
-
|
|
379
|
-
console.log(`Terminating worker: [${workerEx.id}]`);
|
|
384
|
+
console.log(`Stop Worker: [${workerEx.id}]`);
|
|
380
385
|
const promArray: Promise<boolean>[] = [ ];
|
|
381
386
|
|
|
382
387
|
// Terminate only those that are currently running...
|
|
@@ -384,15 +389,68 @@ ${this.#runner}`,
|
|
|
384
389
|
|
|
385
390
|
ids.forEach((id) => {
|
|
386
391
|
const runnerEx: IRunnerEx = workerEx.runnersEx[id];
|
|
387
|
-
|
|
392
|
+
if (options) {
|
|
393
|
+
promArray.push(command(workerEx, runnerEx, options));
|
|
394
|
+
} else {
|
|
395
|
+
promArray.push(command(workerEx, runnerEx));
|
|
396
|
+
}
|
|
388
397
|
});
|
|
389
398
|
await Promise.all(promArray);
|
|
399
|
+
}
|
|
400
|
+
return true;
|
|
401
|
+
} catch (error) {
|
|
402
|
+
console.log(`Error in STSTestWorker:WorkerCommand: [${error}]`);
|
|
403
|
+
return false;
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
#PauseWorker = async (workerEx: IWorkerEx): Promise<boolean> => {
|
|
408
|
+
return this.#WorkerCommand(workerEx, this.#PauseRunner);
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
#ResumeWorker = async (workerEx: IWorkerEx): Promise<boolean> => {
|
|
412
|
+
return this.#WorkerCommand(workerEx, this.#ResumeRunner);
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
#StopWorker = async (workerEx: IWorkerEx): Promise<boolean> => {
|
|
416
|
+
return this.#WorkerCommand(workerEx, this.#StopRunner);
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
#StartWorker = async (workerEx: IWorkerEx): Promise<boolean> => {
|
|
420
|
+
return this.#WorkerCommand(workerEx, this.#StartRunner);
|
|
421
|
+
}
|
|
390
422
|
|
|
391
|
-
|
|
423
|
+
#ResetWorker = async (workerEx: IWorkerEx): Promise<boolean> => {
|
|
424
|
+
return this.#WorkerCommand(workerEx, this.#ResetRunner);
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
#ExecuteWorker = async (workerEx: IWorkerEx): Promise<boolean> => {
|
|
428
|
+
return this.#WorkerCommand(workerEx, this.#ExecuteRunner);
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
#UpdateOptionsWorker = async (workerEx: IWorkerEx, options: IRunnerOptions): Promise<boolean> => {
|
|
432
|
+
return this.#WorkerCommand(workerEx, this.#UpdateOptions, options);
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
#TerminateWorker = async (workerEx: IWorkerEx): Promise<boolean> => {
|
|
436
|
+
try {
|
|
437
|
+
if (workerEx.state !== IWorkerState.stopped) {
|
|
438
|
+
await this.#WorkerCommand(workerEx, this.#TerminateRunner);
|
|
439
|
+
|
|
440
|
+
if (workerEx.worker) {
|
|
441
|
+
//const store = TelemetryStore();
|
|
442
|
+
workerEx.worker.terminate();
|
|
443
|
+
this.#debug(`Terminated worker: [${workerEx.id}]`);
|
|
444
|
+
//store.RemoveWorker(workerEx);
|
|
445
|
+
delete this.#workersEx[workerEx.id];
|
|
446
|
+
} else {
|
|
447
|
+
// Some other runner has already removed the parent worker, do nothing
|
|
448
|
+
// console.log(`WORKER ALREADY NULL`);
|
|
449
|
+
}
|
|
392
450
|
}
|
|
393
451
|
return true;
|
|
394
452
|
} catch (error) {
|
|
395
|
-
console.log(`Error in STSTestWorker:
|
|
453
|
+
console.log(`Error in STSTestWorker:TerminateWorker: [${error}]`);
|
|
396
454
|
return false;
|
|
397
455
|
}
|
|
398
456
|
}
|
|
@@ -1,162 +1,11 @@
|
|
|
1
1
|
/* eslint @typescript-eslint/no-unused-vars: 0, @typescript-eslint/no-explicit-any: 0 */ // --> OFF
|
|
2
|
-
import
|
|
3
|
-
// Force chalk level
|
|
4
|
-
chalk.level = 3;
|
|
5
|
-
|
|
6
|
-
import { IRunner, IRunnerOptions, IRunnerInstance, ITestRunnerTelemetryPayload, IRunnerEx } from './commonTypes'
|
|
7
|
-
|
|
2
|
+
import { IRunnerInstance, ITestRunnerTelemetryPayload } from './commonTypes'
|
|
8
3
|
import { WorkerInstance } from './workerInstance'
|
|
9
|
-
|
|
10
4
|
import { TestCase01 } from './testCase01'
|
|
11
5
|
|
|
12
|
-
|
|
13
|
-
iterations: number
|
|
14
|
-
sleepDuration: number
|
|
15
|
-
messageMod: number
|
|
16
|
-
logMessageMod: number
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
declare interface LogMessageData {
|
|
20
|
-
indent: number
|
|
21
|
-
adder: number
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
const debug = (message: string) => {
|
|
25
|
-
console.log(chalk.blue(`pid: [${process.pid}] workerWorkerTestRunner01::${message}`));
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
declare type LogMessageDataSet = Record<string, LogMessageData>;
|
|
29
|
-
|
|
30
|
-
// This will execute within a worker thread context
|
|
31
|
-
export class WorkerWorkerTestRunner01 extends WorkerInstance {
|
|
32
|
-
#logMessageDataSet: LogMessageDataSet = { };
|
|
33
|
-
|
|
34
|
-
constructor() {
|
|
35
|
-
super()
|
|
36
|
-
debug(`constructor`)
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
override StartWork = async (runner: IRunner): Promise<void> => {
|
|
40
|
-
debug(`StartWork::Options: [${JSON.stringify(this.Options)}]`);
|
|
41
|
-
//this.#access_token = await this.#GetAccessToken();
|
|
42
|
-
//await Sleep(this.GetRandomInt(1000));
|
|
43
|
-
return this.PerformTest(runner);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
GenLogMessage = (runner: IRunner) => {
|
|
47
|
-
if (!this.#logMessageDataSet[runner.id]) {
|
|
48
|
-
this.#logMessageDataSet[runner.id] = {
|
|
49
|
-
adder: 1,
|
|
50
|
-
indent: 0
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
const logMessageData = this.#logMessageDataSet[runner.id];
|
|
54
|
-
|
|
55
|
-
let message = `${' '.repeat(logMessageData.indent)}>> Hello World <<`;
|
|
56
|
-
const colorCode = runner.asyncRunnerContext.asyncRunnerId % 4;
|
|
57
|
-
switch (colorCode) {
|
|
58
|
-
case 0:
|
|
59
|
-
message = chalk.green(`${message}`);
|
|
60
|
-
break;
|
|
61
|
-
case 1:
|
|
62
|
-
message = chalk.yellow(`${message}`);
|
|
63
|
-
break;
|
|
64
|
-
case 2:
|
|
65
|
-
message = chalk.magenta(`${message}`);
|
|
66
|
-
break;
|
|
67
|
-
case 3:
|
|
68
|
-
message = chalk.white(`${message}`);
|
|
69
|
-
break;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
console.log(message);
|
|
73
|
-
runner.instrumentData.message.push(message);
|
|
74
|
-
logMessageData.indent += logMessageData.adder;
|
|
75
|
-
if (logMessageData.indent > 20) {
|
|
76
|
-
logMessageData.adder = -1;
|
|
77
|
-
} else if (logMessageData.indent === 0) {
|
|
78
|
-
logMessageData.adder = 1;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
PerformTest = async(runner: IRunner): Promise<void> => {
|
|
83
|
-
debug(`WorkerWorkerTestRunner01::PerformTest`)
|
|
84
|
-
|
|
85
|
-
const message = `ID: [${runner.asyncRunnerContext.id}], Worker: [${runner.asyncRunnerContext.threadId}], Runner: [${runner.asyncRunnerContext.asyncRunnerId}] starting ...`;
|
|
86
|
-
console.log(message);
|
|
87
|
-
runner.instrumentData.message = [message]
|
|
88
|
-
this.PostTelemetry(runner);
|
|
89
|
-
runner.instrumentData.message = [ ];
|
|
6
|
+
import isNode from 'detect-node'
|
|
90
7
|
|
|
91
|
-
|
|
92
|
-
const tester = new TestRest01Service(this.#access_token, runner.options as IRunnerOptionsEx);
|
|
93
|
-
|
|
94
|
-
tester.on('rx', (val: string) => {
|
|
95
|
-
runner.instrumentData.rx += parseInt(val);
|
|
96
|
-
//console.log(runner.instrumentData.rx);
|
|
97
|
-
});
|
|
98
|
-
|
|
99
|
-
tester.on('tx', (val: string) => {
|
|
100
|
-
runner.instrumentData.tx += parseInt(val);
|
|
101
|
-
});
|
|
102
|
-
*/
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
/*
|
|
107
|
-
while (runner.state !== IRunnerState.stopped) {
|
|
108
|
-
|
|
109
|
-
await Sleep(0);
|
|
110
|
-
//let retVal = await tester.StartTest();
|
|
111
|
-
|
|
112
|
-
runner.instrumentData.coreCount = 1;
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
const options = runner.options as IRunnerOptionsEx;
|
|
116
|
-
|
|
117
|
-
await Sleep(options.sleepDuration);
|
|
118
|
-
|
|
119
|
-
runner.instrumentData.timer++;
|
|
120
|
-
runner.instrumentData.requestCount++;
|
|
121
|
-
runner.instrumentData.velocity = options.messageMod;
|
|
122
|
-
|
|
123
|
-
//runner.instrumentData.tx += 256;
|
|
124
|
-
//runner.instrumentData.rx += 6500;
|
|
125
|
-
|
|
126
|
-
if (runner.instrumentData.requestCount % options.logMessageMod === 0) {
|
|
127
|
-
this.GenLogMessage(runner);
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
if (runner.instrumentData.requestCount % options.messageMod === 0) {
|
|
131
|
-
this.PostTelemetry(runner);
|
|
132
|
-
runner.instrumentData.message = [ ];
|
|
133
|
-
runner.instrumentData.tx = 0;
|
|
134
|
-
runner.instrumentData.rx = 0;
|
|
135
|
-
}
|
|
136
|
-
if (runner.instrumentData.requestCount % 1000 === 0) {
|
|
137
|
-
const message = `Worker: [${runner.asyncRunnerContext.threadId}], Runner: [${runner.asyncRunnerContext.asyncRunnerId}] has completed: [${runner.instrumentData.requestCount}] iterations of max: [${options.iterations}]`;
|
|
138
|
-
console.log(message);
|
|
139
|
-
runner.instrumentData.message = [message]
|
|
140
|
-
this.PostTelemetry(runner);
|
|
141
|
-
runner.instrumentData.message = [ ];
|
|
142
|
-
runner.instrumentData.tx = 0;
|
|
143
|
-
runner.instrumentData.rx = 0;
|
|
144
|
-
|
|
145
|
-
}
|
|
146
|
-
if (runner.instrumentData.requestCount > options.iterations) {
|
|
147
|
-
runner.state = IRunnerState.stopped;
|
|
148
|
-
const message = `Worker: [${runner.asyncRunnerContext.threadId}], Runner: [${runner.asyncRunnerContext.asyncRunnerId}] stopping ...`;
|
|
149
|
-
console.log(message);
|
|
150
|
-
runner.instrumentData.message = [message]
|
|
151
|
-
this.PostTelemetry(runner);
|
|
152
|
-
runner.instrumentData.message = [ ];
|
|
153
|
-
runner.instrumentData.tx = 0;
|
|
154
|
-
runner.instrumentData.rx = 0;
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
*/
|
|
158
|
-
}
|
|
159
|
-
}
|
|
8
|
+
import { parentPort } from 'worker_threads';
|
|
160
9
|
|
|
161
10
|
export class WorkerTestCases extends WorkerInstance {
|
|
162
11
|
constructor() {
|
|
@@ -169,38 +18,17 @@ export class WorkerTestCases extends WorkerInstance {
|
|
|
169
18
|
case 'TestCase01' :
|
|
170
19
|
return new TestCase01(this, runner)
|
|
171
20
|
}
|
|
172
|
-
|
|
173
21
|
return null;
|
|
174
22
|
}
|
|
175
23
|
}
|
|
176
24
|
|
|
177
|
-
|
|
178
|
-
import {
|
|
179
|
-
parentPort,
|
|
180
|
-
MessagePort
|
|
181
|
-
} from 'worker_threads';
|
|
182
|
-
import { Sleep } from '@nsshunt/stsutils';
|
|
183
|
-
|
|
184
|
-
let messagePort: MessagePort;
|
|
185
|
-
|
|
186
25
|
const worker = new WorkerTestCases();
|
|
187
26
|
|
|
188
27
|
parentPort?.on('message', (data: any) => {
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
/*
|
|
192
|
-
|
|
193
|
-
if (data.cmd.localeCompare('portmessage') === 0) {
|
|
194
|
-
messagePort = data.port;
|
|
195
|
-
messagePort.on('message', (data) => {
|
|
196
|
-
LogInfoMessage(`webWorker (${process.pid}): message from passed message port = [${data}]`);
|
|
197
|
-
messagePort.postMessage(data);
|
|
198
|
-
});
|
|
28
|
+
if (isNode) {
|
|
29
|
+
worker.ProcessMessage(data);
|
|
199
30
|
} else {
|
|
200
|
-
|
|
201
|
-
|
|
31
|
+
// const payloadMessage: IIWMessagePayload = data.data as IIWMessagePayload; // browser version
|
|
32
|
+
worker.ProcessMessage(data.data); // browser version
|
|
202
33
|
}
|
|
203
|
-
*/
|
|
204
34
|
});
|
|
205
|
-
|
|
206
|
-
debug(`file completed ...`);
|
|
@@ -22,8 +22,8 @@ export declare enum eIWMessageCommands {
|
|
|
22
22
|
InstrumentTelemetry = "__STS__InstrumentTelemetry",// Used to send instrument telemetry
|
|
23
23
|
MessagePort = "__STS__MessagePort",
|
|
24
24
|
MessagePortResponse = "__STS__MessagePortResponse",
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
AddRunner = "__STS__AddRunner",
|
|
26
|
+
StopAllRunners = "__STS__StopAllRunners",
|
|
27
27
|
StartRunner = "__STS__StartRunner",
|
|
28
28
|
StopRunner = "__STS__StopRunner",
|
|
29
29
|
PauseRunner = "__STS__PauseRunner",
|
|
@@ -92,9 +92,9 @@ export interface IRunner {
|
|
|
92
92
|
export interface IRunnerEx extends IRunner {
|
|
93
93
|
publishInstrumentController: PublishInstrumentController;
|
|
94
94
|
Start: () => Promise<boolean>;
|
|
95
|
+
Stop: () => Promise<boolean>;
|
|
95
96
|
Pause: () => Promise<boolean>;
|
|
96
97
|
Resume: () => Promise<boolean>;
|
|
97
|
-
Stop: () => Promise<boolean>;
|
|
98
98
|
Terminate: () => Promise<boolean>;
|
|
99
99
|
Reset: () => Promise<boolean>;
|
|
100
100
|
Execute: (iteration: number) => Promise<boolean>;
|
|
@@ -102,15 +102,15 @@ export interface IRunnerEx extends IRunner {
|
|
|
102
102
|
on: (eventName: string, cb: () => void) => IRunnerEx;
|
|
103
103
|
}
|
|
104
104
|
export interface IRunnerInstance {
|
|
105
|
-
Execute: (iteration: number) => Promise<boolean>;
|
|
106
105
|
StartRunner: () => Promise<boolean>;
|
|
107
106
|
StopRunner: () => Promise<boolean>;
|
|
108
|
-
TerminateRunner: () => Promise<boolean>;
|
|
109
|
-
Completed: () => Promise<boolean>;
|
|
110
107
|
PauseRunner: () => Promise<boolean>;
|
|
111
108
|
ResumeRunner: () => Promise<boolean>;
|
|
109
|
+
TerminateRunner: () => Promise<boolean>;
|
|
112
110
|
ResetRunner: () => Promise<boolean>;
|
|
111
|
+
Execute: (iteration: number) => Promise<boolean>;
|
|
113
112
|
UpdateOptions: () => Promise<boolean>;
|
|
113
|
+
Completed: () => Promise<boolean>;
|
|
114
114
|
}
|
|
115
115
|
export declare enum IWorkerState {
|
|
116
116
|
starting = "starting",
|
|
@@ -153,7 +153,18 @@ export interface IWorkerEx extends IWorker {
|
|
|
153
153
|
StopRunner: (runner: IRunnerEx) => Promise<boolean>;
|
|
154
154
|
PauseRunner: (runner: IRunnerEx) => Promise<boolean>;
|
|
155
155
|
ResumeRunner: (runner: IRunnerEx) => Promise<boolean>;
|
|
156
|
+
TerminateRunner: (runner: IRunnerEx) => Promise<boolean>;
|
|
157
|
+
ResetRunner: (runner: IRunnerEx) => Promise<boolean>;
|
|
158
|
+
ExecuteRunner: (runner: IRunnerEx) => Promise<boolean>;
|
|
159
|
+
UpdateOptionsRunner: (runner: IRunnerEx, options: IRunnerOptions) => Promise<boolean>;
|
|
160
|
+
Start: () => Promise<boolean>;
|
|
156
161
|
Stop: () => Promise<boolean>;
|
|
162
|
+
Pause: () => Promise<boolean>;
|
|
163
|
+
Resume: () => Promise<boolean>;
|
|
164
|
+
Terminate: () => Promise<boolean>;
|
|
165
|
+
Reset: () => Promise<boolean>;
|
|
166
|
+
Execute: () => Promise<boolean>;
|
|
167
|
+
UpdateOptions: (options: IRunnerOptions) => Promise<boolean>;
|
|
157
168
|
}
|
|
158
169
|
export interface ISTSTestWorkerOptions {
|
|
159
170
|
messageMod: number;
|
|
@@ -182,8 +193,8 @@ export declare const PublishMessageCommandsTestRunner: {
|
|
|
182
193
|
readonly InstrumentTelemetry: eIWMessageCommands.InstrumentTelemetry;
|
|
183
194
|
readonly MessagePort: eIWMessageCommands.MessagePort;
|
|
184
195
|
readonly MessagePortResponse: eIWMessageCommands.MessagePortResponse;
|
|
185
|
-
readonly
|
|
186
|
-
readonly
|
|
196
|
+
readonly AddRunner: eIWMessageCommands.AddRunner;
|
|
197
|
+
readonly StopAllRunners: eIWMessageCommands.StopAllRunners;
|
|
187
198
|
readonly StartRunner: eIWMessageCommands.StartRunner;
|
|
188
199
|
readonly StopRunner: eIWMessageCommands.StopRunner;
|
|
189
200
|
readonly PauseRunner: eIWMessageCommands.PauseRunner;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commonTypes.d.ts","sourceRoot":"","sources":["../../src/testertesting/commonTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAA;AAEvE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAExD,eAAO,MAAM,iBAAiB,EAAE,MAAY,CAAC;AAE7C,MAAM,WAAW,mBAAoB,SAAQ,YAAY;IACxD,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,MAAM,CAAA;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IACzC,SAAS,CAAC,EAAE,MAAM,CAAA;CACrB;AAED;;GAEG;AACH,oBAAY,kBAAkB;IAC7B,mBAAmB,+BAA8B,CAAE,oCAAoC;IACvF,WAAW,uBAAuB;IAClC,mBAAmB,+BAA+B;IAClD,cAAc,0BAA0B;IACxC,
|
|
1
|
+
{"version":3,"file":"commonTypes.d.ts","sourceRoot":"","sources":["../../src/testertesting/commonTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { MessagePort } from 'worker_threads';
|
|
2
2
|
import { IRunnerInstance, IRunner, ITestRunnerTelemetryPayload } from './commonTypes';
|
|
3
|
-
import { RequestResponseHelper } from './requestResponseHelper';
|
|
4
3
|
export interface IWorkerInstanceOptions {
|
|
5
4
|
}
|
|
6
5
|
export interface IRunnerEx2RunState {
|
|
@@ -16,7 +15,6 @@ export declare abstract class WorkerInstance {
|
|
|
16
15
|
GetRandomInt: (max: number) => number;
|
|
17
16
|
StartWork: (runner: IRunner) => Promise<void>;
|
|
18
17
|
PostTelemetry: (runner: IRunner) => void;
|
|
19
|
-
get RequestResponseHelper(): RequestResponseHelper | null;
|
|
20
18
|
get CollectorCollectorPort(): MessagePort | null;
|
|
21
19
|
get Options(): IWorkerInstanceOptions | null;
|
|
22
20
|
CreateAsyncRunner: (testRunnerTelemetryPayload: ITestRunnerTelemetryPayload) => IRunnerInstance | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workerInstance.d.ts","sourceRoot":"","sources":["../../src/testertesting/workerInstance.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"workerInstance.d.ts","sourceRoot":"","sources":["../../src/testertesting/workerInstance.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAI7C,OAAO,EAAuE,eAAe,EAC7D,OAAO,EAAE,2BAA2B,EACnE,MAAM,eAAe,CAAA;AAStB,MAAM,WAAW,sBAAsB;CAEtC;AAED,MAAM,WAAW,kBAAkB;IAC/B,cAAc,EAAE,eAAe,CAAA;IAC/B,MAAM,EAAE,OAAO,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,OAAO,CAAA;IAClB,MAAM,EAAE,OAAO,CAAA;CAClB;AAED,8BAAsB,cAAc;;;IAiBhC,YAAY,QAAS,MAAM,YAGzB;IAGF,SAAS,WAAkB,OAAO,KAAG,OAAO,CAAC,IAAI,CAAC,CAGjD;IAED,aAAa,WAAY,OAAO,UAW/B;IAED,IAAI,sBAAsB,IAAI,WAAW,GAAG,IAAI,CAE/C;IAED,IAAI,OAAO,IAAI,sBAAsB,GAAG,IAAI,CAE3C;IA0BD,iBAAiB,+BAAgC,2BAA2B,KAAG,eAAe,GAAG,IAAI,CAEpG;IAqID,cAAc,SAAe,GAAG,mBA2D/B;CACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workerManager.d.ts","sourceRoot":"","sources":["../../src/testertesting/workerManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAEyB,SAAS,EAAW,SAAS,EAC5B,cAAc,EAC3C,qBAAqB,EAAE,cAAc,EAExC,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"workerManager.d.ts","sourceRoot":"","sources":["../../src/testertesting/workerManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAEyB,SAAS,EAAW,SAAS,EAC5B,cAAc,EAC3C,qBAAqB,EAAE,cAAc,EAExC,MAAM,eAAe,CAAA;AActB,qBAAa,gBAAgB;;gBASb,OAAO,CAAC,EAAE,qBAAqB;IAe3C,IAAI,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAEzC;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,QAAQ,CAAC,EAAE,EAAE,MAAM,EAEtB;IAED,SAAS,sBAA6B,cAAc,KAAG,OAAO,CAAC,SAAS,CAAC,CAyGxE;IAED,iBAAiB,gBAAiB,SAAS,iBAAiB,cAAc,KAAG,SAAS,CAMrF;IAsSD,sBAAsB,QAAO,SAAS,GAAG,IAAI,CAa5C;IAED,aAAa,QAAO,SAAS,GAAG,IAAI,CAanC;IAED,IAAI,OAAO,IAAI,qBAAqB,CAEnC;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,qBAAqB,EAEzC;IAED,cAAc,sBAMb;CACJ"}
|
|
@@ -1,18 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { IRunnerInstance, ITestRunnerTelemetryPayload } from './commonTypes';
|
|
2
2
|
import { WorkerInstance } from './workerInstance';
|
|
3
|
-
export interface IRunnerOptionsEx extends IRunnerOptions {
|
|
4
|
-
iterations: number;
|
|
5
|
-
sleepDuration: number;
|
|
6
|
-
messageMod: number;
|
|
7
|
-
logMessageMod: number;
|
|
8
|
-
}
|
|
9
|
-
export declare class WorkerWorkerTestRunner01 extends WorkerInstance {
|
|
10
|
-
#private;
|
|
11
|
-
constructor();
|
|
12
|
-
StartWork: (runner: IRunner) => Promise<void>;
|
|
13
|
-
GenLogMessage: (runner: IRunner) => void;
|
|
14
|
-
PerformTest: (runner: IRunner) => Promise<void>;
|
|
15
|
-
}
|
|
16
3
|
export declare class WorkerTestCases extends WorkerInstance {
|
|
17
4
|
constructor();
|
|
18
5
|
CreateAsyncRunner: (testRunnerTelemetryPayload: ITestRunnerTelemetryPayload) => IRunnerInstance | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workerWorkerTestRunner01.d.ts","sourceRoot":"","sources":["../../src/testertesting/workerWorkerTestRunner01.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"workerWorkerTestRunner01.d.ts","sourceRoot":"","sources":["../../src/testertesting/workerWorkerTestRunner01.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAA;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAOjD,qBAAa,eAAgB,SAAQ,cAAc;;IAKtC,iBAAiB,+BAAgC,2BAA2B,KAAG,eAAe,GAAG,IAAI,CAO7G;CACJ"}
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RequestResponseHelper = void 0;
|
|
4
|
-
const stsutils_1 = require("@nsshunt/stsutils");
|
|
5
|
-
//@@ this should become a low level stsutils type helper
|
|
6
|
-
class RequestResponseHelper {
|
|
7
|
-
#requestResponseMessages = {};
|
|
8
|
-
#requestResponseMessageTimeout = 10000; //@@ config
|
|
9
|
-
#port;
|
|
10
|
-
constructor(port) {
|
|
11
|
-
this.#port = port;
|
|
12
|
-
this.#SetupListener();
|
|
13
|
-
}
|
|
14
|
-
#debug = (message) => {
|
|
15
|
-
stsutils_1.defaultLogger.debug(message);
|
|
16
|
-
};
|
|
17
|
-
PostMessage = (message) => {
|
|
18
|
-
return new Promise((resolve, reject) => {
|
|
19
|
-
const { messageId } = message.payload;
|
|
20
|
-
if (messageId) {
|
|
21
|
-
if (this.#requestResponseMessages[messageId]) {
|
|
22
|
-
reject(`RequestResponseHelper: Message with id: [${messageId}] already exists within the Request/Response record structure`);
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
this.#requestResponseMessages[messageId] = {
|
|
26
|
-
publishMessagePayload: { ...message },
|
|
27
|
-
cb: () => {
|
|
28
|
-
const detail = this.#requestResponseMessages[messageId].publishMessagePayloadResponse;
|
|
29
|
-
clearTimeout(this.#requestResponseMessages[messageId].timeout);
|
|
30
|
-
setTimeout(() => {
|
|
31
|
-
delete this.#requestResponseMessages[messageId];
|
|
32
|
-
}, 0);
|
|
33
|
-
if (detail) {
|
|
34
|
-
this.#debug(`RequestResponseHelper: Resolving response message with id: [${messageId}] from target worker port. Details: [${JSON.stringify(detail)}]`);
|
|
35
|
-
resolve(detail);
|
|
36
|
-
}
|
|
37
|
-
else {
|
|
38
|
-
const msg = `Could not get detail from this.#requestResponseMessages[messageId].publishMessagePayloadResponse`;
|
|
39
|
-
this.#debug(msg);
|
|
40
|
-
reject(msg);
|
|
41
|
-
}
|
|
42
|
-
},
|
|
43
|
-
timeout: setTimeout(() => {
|
|
44
|
-
setTimeout(() => {
|
|
45
|
-
delete this.#requestResponseMessages[messageId];
|
|
46
|
-
}, 0);
|
|
47
|
-
this.#debug(`RequestResponseHelper: Timeout has occurred after: [${this.#requestResponseMessageTimeout}]ms with message id: [${messageId}]. Details: [${JSON.stringify(this.#requestResponseMessages[messageId].publishMessagePayload)}]`);
|
|
48
|
-
reject('RequestResponseHelper: Did not receive response form parent process.');
|
|
49
|
-
}, this.#requestResponseMessageTimeout) // max message timeout allowed
|
|
50
|
-
};
|
|
51
|
-
//debug(`RequestResponseHelper: Sending message with id: [${messageId}] to target worker port. Details: [${JSON.stringify(this.#requestResponseMessages[messageId].publishMessagePayload)}]`);
|
|
52
|
-
this.#port.postMessage(message);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
const msg = `RequestResponseHelper: Response did not include a message id`;
|
|
57
|
-
this.#debug(msg);
|
|
58
|
-
reject(msg);
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
};
|
|
62
|
-
#SetupListener = () => {
|
|
63
|
-
//this.#port.onmessage = async (msg: MessageEvent) => {
|
|
64
|
-
this.#port.on('message', (msg) => {
|
|
65
|
-
const publishMessagePayload = msg.data;
|
|
66
|
-
if (publishMessagePayload.payload.messageId) {
|
|
67
|
-
const messageId = publishMessagePayload.payload.messageId;
|
|
68
|
-
if (messageId && messageId !== '') {
|
|
69
|
-
if (this.#requestResponseMessages[messageId]) {
|
|
70
|
-
const requestResponseMessage = this.#requestResponseMessages[messageId];
|
|
71
|
-
requestResponseMessage.publishMessagePayloadResponse = { ...publishMessagePayload };
|
|
72
|
-
requestResponseMessage.cb();
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
throw new Error(`RequestResponseHelper: Could not find Request/Response message with id: [${messageId}]`);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
});
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
exports.RequestResponseHelper = RequestResponseHelper;
|
|
83
|
-
//# sourceMappingURL=requestResponseHelper.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"requestResponseHelper.js","sourceRoot":"","sources":["../../src/testertesting/requestResponseHelper.ts"],"names":[],"mappings":"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"}
|