refactor(runner): allow explicit java output dir in _run_java_scene

This commit is contained in:
2026-09-13 14:59:05 +08:00
parent 27b8c5ed97
commit bc83a3b8ac
+14 -7
View File
@@ -684,13 +684,17 @@ def _java_scene_label(dst_out_dir: Path) -> str:
return cobol_scene.name return cobol_scene.name
def _run_java_scene(program_name: str, scene_id: str, outdir: str, temp_dir: str, def _run_java_scene(program_name: str, scene_id: str, java_out_dir, temp_dir: str,
src_in_dir: Path, dst_out_dir: Path, src_in_dir: Path, dst_out_dir: Path,
fd_field_dicts: dict, open_dir: dict, select_info: dict, fd_field_dicts: dict, open_dir: dict, select_info: dict,
java_cfg: dict, log_dir: str | None = None) -> dict: java_cfg: dict, log_dir: str | None = None,
"""单场景:准备 Java 入力 -> 运行 jar -> 收集出力 -> 与 COBOL 出力比对。""" label: str | None = None) -> dict:
label = _java_scene_label(dst_out_dir) """单场景:准备 Java 入力 -> 运行 jar -> 收集出力 -> 与 COBOL 出力比对。
java_out_dir = Path(outdir) / 'java' / label / 'output'
java_out_dir: Java 出力目录(显式)。label 省略时由 dst_out_dir 推导。
"""
label = label or _java_scene_label(dst_out_dir)
java_out_dir = Path(java_out_dir)
java_work = Path(temp_dir) / f'java_{scene_id}' java_work = Path(temp_dir) / f'java_{scene_id}'
input_items = _input_fd_assign_len(fd_field_dicts, open_dir, select_info) input_items = _input_fd_assign_len(fd_field_dicts, open_dir, select_info)
@@ -961,11 +965,14 @@ def run_all(program_name: str, outdir: str, temp_dir: str,
# ── 3h. Java 文件式运行 + COBOL vs Java 出力比对(仅在有 Java 对应程序时)── # ── 3h. Java 文件式运行 + COBOL vs Java 出力比对(仅在有 Java 对应程序时)──
if java_cfg: if java_cfg:
_java_label = _java_scene_label(dst_out_dir)
jrep = _run_java_scene( jrep = _run_java_scene(
program_name, scene_id, outdir, str(work_dir), program_name, scene_id,
Path(outdir) / 'java' / _java_label / 'output',
str(work_dir),
src_in_dir, dst_out_dir, src_in_dir, dst_out_dir,
fd_field_dicts, open_dir, select_info, fd_field_dicts, open_dir, select_info,
java_cfg, log_dir=log_dir, java_cfg, log_dir=log_dir, label=_java_label,
) )
java_reports.append(jrep) java_reports.append(jrep)