장수 55종과 수뇌 35종의 상태, 로그, 메시지, 예약 턴 비교를 닫습니다. 실제 시나리오 프로필과 대표 PostgreSQL 수명주기, 즉시 외교와 출병 회귀를 추가하고 발견된 Ref 로그 및 생성 장수 저장 차이를 교정합니다.
33 lines
1.4 KiB
TypeScript
33 lines
1.4 KiB
TypeScript
import { execFileSync } from 'node:child_process';
|
|
import path from 'node:path';
|
|
|
|
import type { CanonicalTurnCommandTrace } from './canonical.js';
|
|
|
|
/**
|
|
* Execute the comparison-only wrapper around Ref's real
|
|
* TurnExecutionHelper::executeGeneralCommandUntil entry point.
|
|
*/
|
|
export const runReferenceFullLifecycleTrace = (
|
|
workspaceRoot: string,
|
|
request: Record<string, unknown>
|
|
): CanonicalTurnCommandTrace => {
|
|
const stackDirectory = path.join(workspaceRoot, 'docker_compose_files/reference');
|
|
const appDirectory = path.resolve(process.env.REF_COMPARE_SOURCE_ROOT ?? path.join(workspaceRoot, 'ref/sam'));
|
|
const runtimeDirectory = path.join(workspaceRoot, 'ref/sam');
|
|
const runner = process.env.TURN_DIFFERENTIAL_CASE_SCRIPT ?? './scripts/run-turn-differential-case.sh';
|
|
const stdout = execFileSync(runner, ['-'], {
|
|
cwd: stackDirectory,
|
|
input: JSON.stringify(request),
|
|
encoding: 'utf8',
|
|
stdio: ['pipe', 'pipe', 'pipe'],
|
|
env: {
|
|
...process.env,
|
|
TURN_DIFFERENTIAL_STACK_DIR: stackDirectory,
|
|
TURN_DIFFERENTIAL_APP_DIR: appDirectory,
|
|
TURN_DIFFERENTIAL_RUNTIME_DIR: runtimeDirectory,
|
|
TURN_DIFFERENTIAL_RUNNER_SCRIPT: path.join(appDirectory, 'hwe/compare/turn_full_lifecycle_trace.php'),
|
|
},
|
|
});
|
|
return JSON.parse(stdout) as CanonicalTurnCommandTrace;
|
|
};
|