refactor: 测试出力结果从runtime迁移到output,实现入力(test-data)与出力(output)分离

This commit is contained in:
hangshuo652
2026-08-29 14:33:59 +08:00
parent 7a2963d783
commit 5fe72c8ece
11 changed files with 19 additions and 13 deletions
+1 -1
View File
@@ -39,7 +39,7 @@ python test-data/s30_db_e2e.py
python -m cobol_testgen ../cobol-tna-system/src/KIN01INP.cbl python -m cobol_testgen ../cobol-tna-system/src/KIN01INP.cbl
# 带 gcov 覆盖率的单程序运行 # 带 gcov 覆盖率的单程序运行
python -m cobol_testgen --gcov <cobol_src> runtime/ python -m cobol_testgen --gcov <cobol_src> output/
# 诊断脚本 # 诊断脚本
python diagnose_db2.py # DB 全流程 python diagnose_db2.py # DB 全流程
+1 -1
View File
@@ -332,7 +332,7 @@ python test-data/s25_per_program_report.py
python test-data/s30_db_e2e.py python test-data/s30_db_e2e.py
# 带 gcov 覆盖率的单程序运行 # 带 gcov 覆盖率的单程序运行
python -m cobol_testgen --gcov <cobol_src> runtime/ python -m cobol_testgen --gcov <cobol_src> output/
# 诊断脚本 # 诊断脚本
python diagnose_db2.py # DB 全流程 python diagnose_db2.py # DB 全流程
+2 -2
View File
@@ -178,7 +178,7 @@ cobol-java-v3/
├── diagnose_kind8dbrun.py # DB 单步诊断 (仅编译运行) ├── diagnose_kind8dbrun.py # DB 单步诊断 (仅编译运行)
├── SETUP.md # 本文件 ├── SETUP.md # 本文件
└── docs/ # 设计文档 └── docs/ # 设计文档
└── runtime/ # 运行产物(测试数据、输入文件、覆盖率报告,已 gitignore) └── output/ # 运行产物(测试数据、输入文件、覆盖率报告,已 gitignore)
``` ```
--- ---
@@ -262,7 +262,7 @@ COVERAGE: DB pipeline E2E PASSED
python -m cobol_testgen ..\cobol-tna-system\src\ZAN06UPD.cbl python -m cobol_testgen ..\cobol-tna-system\src\ZAN06UPD.cbl
# 带 gcov 覆盖率收集 (编译带 -g --coverage,生成 HTML 报告) # 带 gcov 覆盖率收集 (编译带 -g --coverage,生成 HTML 报告)
python -m cobol_testgen --gcov ..\cobol-tna-system\src\KIN08DBU.cbl runtime\ python -m cobol_testgen --gcov ..\cobol-tna-system\src\KIN08DBU.cbl output\
``` ```
DB 管道会自动加载 `config/programs/<PROGRAM_ID>.yaml` 中的表定义、子程序列表、运行场景(normal/collision/abnormal),多场景运行的 gcov 覆盖率会被合并输出。 DB 管道会自动加载 `config/programs/<PROGRAM_ID>.yaml` 中的表定义、子程序列表、运行场景(normal/collision/abnormal),多场景运行的 gcov 覆盖率会被合并输出。
+6
View File
@@ -13,6 +13,12 @@
--- ---
### 2026-08-29 14:31:25 - AI编码实现
- **范式步骤:** AI编码实现
- **修改摘要:** 整合测试入力资源与出力结果:将 cobol-tna-system 的代码/文档资源复制到 test-data/cobol-tna-system/src/sub/cpy/ddl/设计书);将 runtime/ 中的测试出力结果(42个程序目录、测试报告、日志、gcov)迁移到 output/(保持目录结构不变);代码输出路径从 runtime/ 改为 output/orchestrator_db.py runtime_dir、cobol_testgen 默认 outdir、gixsql_runner 诊断目录、诊断脚本),black-box-data-create/ 路径保持不变
- **涉及文件:** `orchestrator_db.py`, `cobol_testgen/__init__.py`, `runners/gixsql_runner.py`, `diagnose_sqlcode_override.py`, `diagnose_kind8dbrun.py`, `AGENTS.md`, `README.md`, `SETUP.md`, `docs/output-directory-rules.md`, `docs/detailed-design/02-orchestrator-db.md`, `docs/detailed-design/08-data-flow.md`, `docs/superpowers/specs/2026-07-12-design-data-generator.md`, `_AI_USAGE_LOG.md`
- **使用模型:** deepseek/deepseek-v4-flash
### 2026-08-29 14:00:00 - 交付归档 ### 2026-08-29 14:00:00 - 交付归档
- **范式步骤:** 交付归档 - **范式步骤:** 交付归档
- **修改摘要:** 检索 opencode 历史会话记录,将 black-box-data-create(原 jcl-cobol-data-create)从生成到修改的全部 AI 使用日志合并整理进本文件,路径统一改写为 `D:\cobol-java-v3\black-box-data-create` - **修改摘要:** 检索 opencode 历史会话记录,将 black-box-data-create(原 jcl-cobol-data-create)从生成到修改的全部 AI 使用日志合并整理进本文件,路径统一改写为 `D:\cobol-java-v3\black-box-data-create`
+1 -1
View File
@@ -1440,7 +1440,7 @@ def main():
if outdir is None: if outdir is None:
from pathlib import Path as _Path from pathlib import Path as _Path
_v3_root = _Path(__file__).parent.parent _v3_root = _Path(__file__).parent.parent
outdir = _v3_root / "runtime" outdir = _v3_root / "output"
user_specified_outdir = False user_specified_outdir = False
outdir.mkdir(parents=True, exist_ok=True) outdir.mkdir(parents=True, exist_ok=True)
+1 -1
View File
@@ -547,7 +547,7 @@ recs = generate_all_data(..., llm_client=llm, ...)
## 8. 目录结构 ## 8. 目录结构
``` ```
runtime/{program_id}/ output/{program_id}/
+-- main/ +-- main/
| +-- input/ <- 平面输入文件 | +-- input/ <- 平面输入文件
| +-- output/ <- COBOL 输出文件 | +-- output/ <- COBOL 输出文件
+1 -1
View File
@@ -413,7 +413,7 @@
exe_path + schema + scenario exe_path + schema + scenario
| |
v 环境准备 v 环境准备
+-- 创建 runtime/run_{id}/main/{input,output}/ 目录 +-- 创建 output/run_{id}/main/{input,output}/ 目录
+-- 复制生成的平面文件 -> input/ +-- 复制生成的平面文件 -> input/
+-- 复制 JSON -> json/ +-- 复制 JSON -> json/
| |
+3 -3
View File
@@ -1,9 +1,9 @@
# 出力目录规则 # 出力目录规则
## 单轮(runs: [] 或 YAML 不存在) ## 单轮(runs: [] 或 YAML 不存在)
```text ```text
runtime/{program_id}/ output/{program_id}/
input/KIN08R01, KIN08S01 ← COBOL 入力平面文件 input/KIN08R01, KIN08S01 ← COBOL 入力平面文件
json/{program_id}.json ← JSONinput/working_storage/termination json/{program_id}.json ← JSONinput/working_storage/termination
output/KIN08W01 ← COBOL 出力平面文件 output/KIN08W01 ← COBOL 出力平面文件
@@ -13,7 +13,7 @@ runtime/{program_id}/
## 多轮(runs: 定义在 config/programs/{program_id}.yaml 中) ## 多轮(runs: 定义在 config/programs/{program_id}.yaml 中)
```text ```text
runtime/{program_id}/ output/{program_id}/
run_{scenario_id}/ run_{scenario_id}/
input/KIN08R01, KIN08S01 ← 該当场景の入力 input/KIN08R01, KIN08S01 ← 該当场景の入力
json/{program_id}.json ← 該当场景の JSON json/{program_id}.json ← 該当场景の JSON
@@ -239,7 +239,7 @@ merge_strategy: merge_to_normal # 默认值
### `as_separate_scenes` 时的目录 ### `as_separate_scenes` 时的目录
``` ```
runtime/{pid}/ output/{pid}/
run_normal/ ← 白盒数据(MC/DC 路径) run_normal/ ← 白盒数据(MC/DC 路径)
input/ json/ output/ input/ json/ output/
run_func/ ← 机能数据(式样书驱动) run_func/ ← 机能数据(式样书驱动)
+1 -1
View File
@@ -100,7 +100,7 @@ class GixsqlOrchestrator:
self.work_dir = Path(work_dir) self.work_dir = Path(work_dir)
# Runtime data under V3 (DB, flat files, CWD) # Runtime data under V3 (DB, flat files, CWD)
self.runtime_dir = v3_root / "runtime" / program_id self.runtime_dir = v3_root / "output" / program_id
self.schema: ProgramSchema = load_schema(program_id) self.schema: ProgramSchema = load_schema(program_id)
+1 -1
View File
@@ -305,7 +305,7 @@ class GixsqlCobolRunner:
norm_path.write_text(text, encoding="utf-8") norm_path.write_text(text, encoding="utf-8")
# Save a copy in runtime for diagnosis # Save a copy in runtime for diagnosis
try: try:
debug_dir = Path(__file__).parent.parent / "runtime" / src_path.stem / "pre_src" debug_dir = Path(__file__).parent.parent / "output" / src_path.stem / "pre_src"
debug_dir.mkdir(parents=True, exist_ok=True) debug_dir.mkdir(parents=True, exist_ok=True)
(debug_dir / f"{src_path.stem}_norm.cbl").write_text(text, encoding="utf-8") (debug_dir / f"{src_path.stem}_norm.cbl").write_text(text, encoding="utf-8")
(debug_dir / f"{src_path.stem}_pre.cbl").write_text( (debug_dir / f"{src_path.stem}_pre.cbl").write_text(