stack service and trigger service
This commit is contained in:
parent
1ed6449ac6
commit
cba12be4b1
16 changed files with 784 additions and 177 deletions
110
server/test/features/executor_program_service_test.ts
Normal file
110
server/test/features/executor_program_service_test.ts
Normal file
|
@ -0,0 +1,110 @@
|
|||
import { delay } from "../../src/core/helper/delay.js";
|
||||
import { EXEC_TYPE } from "../../src/core/model/exec_error_model.js";
|
||||
import { ExecutorResult } from "../../src/core/model/executor_result.js";
|
||||
import { ExecutorProgramService } from "../../src/core/services/executor_program_service.js";
|
||||
import { TestCore } from "../core/test_core.js";
|
||||
import { resultTest as resultTest, dirname__ } from "../test.js";
|
||||
import { Worker } from "node:cluster";
|
||||
|
||||
export class ExecutorProgramServiceTest extends ExecutorProgramService {
|
||||
timeCancel = 1000;
|
||||
public test = async () => {
|
||||
await this.resultsTests();
|
||||
await this.longTimeCancelTest();
|
||||
await this.logWriteAndEventEndTestTypeExec();
|
||||
await this.logWriteAndEventEndTypeSpawn();
|
||||
};
|
||||
private async logWriteAndEventEndTypeSpawn() {
|
||||
const executorProgramService = await new ExecutorProgramService(
|
||||
dirname__ + "/"
|
||||
);
|
||||
executorProgramService.call(EXEC_TYPE.SPAWN, "node", [
|
||||
"./mocks/log_code.js",
|
||||
]);
|
||||
const test = TestCore.instance;
|
||||
let testIsOk = false;
|
||||
let logEvent = false;
|
||||
|
||||
executorProgramService.on((e) => {
|
||||
if (e.isSuccess()) {
|
||||
const executorResult = e.value as ExecutorResult;
|
||||
if (logEvent == false) {
|
||||
logEvent =
|
||||
executorResult.data != null && executorResult.data != undefined;
|
||||
}
|
||||
testIsOk = executorResult.event == "END" && logEvent;
|
||||
}
|
||||
});
|
||||
await delay(8000);
|
||||
test.assert(
|
||||
testIsOk,
|
||||
"ExecutorProgramService EXEC_TYPE.SPAWN end event and log write"
|
||||
);
|
||||
}
|
||||
private async logWriteAndEventEndTestTypeExec() {
|
||||
const executorProgramService = await new ExecutorProgramService(dirname__);
|
||||
executorProgramService.call(
|
||||
EXEC_TYPE.EXEC,
|
||||
"node ./test/mocks/log_code.js"
|
||||
);
|
||||
const test = TestCore.instance;
|
||||
executorProgramService.on((e) => {
|
||||
if (e.isSuccess()) {
|
||||
const executorResult = e.value as ExecutorResult;
|
||||
test.assert(
|
||||
executorResult.data != undefined && executorResult.event == "END",
|
||||
"ExecutorProgramService EXEC_TYPE.EXEC end event and log write"
|
||||
);
|
||||
}
|
||||
});
|
||||
await delay(7000);
|
||||
}
|
||||
private async longTimeCancelTest() {
|
||||
const executorProgramService = await new ExecutorProgramService("", 1000);
|
||||
executorProgramService.call(
|
||||
EXEC_TYPE.EXEC,
|
||||
"node ./test/mocks/long_code.js"
|
||||
);
|
||||
await delay(1500);
|
||||
const worker = executorProgramService.worker as Worker;
|
||||
const test = TestCore.instance;
|
||||
test.assert(worker.isDead(), "ExecutorProgramService long time cancel");
|
||||
}
|
||||
private resultsTests = async () => {
|
||||
await resultTest(
|
||||
new ExecutorProgramService(dirname__),
|
||||
[EXEC_TYPE.EXEC, "node ./mocks/error.js"],
|
||||
"ExecutorProgramService EXEC_TYPE.EXEC on Result.error",
|
||||
false,
|
||||
4000
|
||||
);
|
||||
await delay(400);
|
||||
await resultTest(
|
||||
new ExecutorProgramService(dirname__),
|
||||
[EXEC_TYPE.EXEC, "ls"],
|
||||
"ExecutorProgramService EXEC_TYPE.EXEC on Result.ok",
|
||||
true
|
||||
);
|
||||
|
||||
await resultTest(
|
||||
new ExecutorProgramService(dirname__),
|
||||
[EXEC_TYPE.SPAWN, "ls"],
|
||||
"ExecutorProgramService EXEC_TYPE.SPAWN on Result.ok",
|
||||
true
|
||||
);
|
||||
await resultTest(
|
||||
new ExecutorProgramService(dirname__),
|
||||
[EXEC_TYPE.SPAWN, "python3 ./mocks/s.js"],
|
||||
"ExecutorProgramService EXEC_TYPE.SPAWN on Result.error",
|
||||
false,
|
||||
2000
|
||||
);
|
||||
await resultTest(
|
||||
new ExecutorProgramService(dirname__),
|
||||
[EXEC_TYPE.SPAWN, "ls"],
|
||||
"ExecutorProgramService EXEC_TYPE.SPAWN on Result.ok",
|
||||
true,
|
||||
2000
|
||||
);
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue