"""S30: DB プログラム E2E — ZAN06UPD 6Step 実行""" import sys, os sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) P=0;F=0 def ck(v,m=""): global P,F; (P:=P+1) if v else (F:=F+1, print(f" FAIL {m}")) def sec(n): print(f"\n{'='*60}\n{n}\n{'='*60}") DESKTOP = os.path.join(os.environ['USERPROFILE'], "Desktop") ROOT = os.path.join(DESKTOP, "2026技术大赛", "cobol-tna-system") + "/" COPYBOOKS = [os.path.join(ROOT, "cpy"), os.path.join(ROOT, "src")] from config import Config from orchestrator_db import GixsqlOrchestrator sec("Step 0: Init") PROJECT = os.path.join(os.path.dirname(__file__), '..') cfg = Config() cfg.gixsql_path = os.path.join(PROJECT, "gixsql", "bin", "gixpp.exe") cfg.gixsql_lib_path = os.path.join(PROJECT, "gixsql", "lib") orch = GixsqlOrchestrator( cfg, "ZAN06UPD", cobol_src_dir=os.path.join(ROOT, "src"), copybook_dirs=COPYBOOKS, ) ck(orch.program_id == "ZAN06UPD", "orchestrator init") print(f" Tables: {[t.name for t in orch.schema.db_tables]}") print(f" SUBs: {orch.schema.subprograms}") sec("Step 1: gixpp -> compile") r1 = orch.step1_setup_environment() ck(r1.success, f"step1: {r1.message}") if r1.success: ck(orch.exe_path and os.path.exists(orch.exe_path), "exe created") sec("Step 2: generate inputs") r2 = orch.step2_generate_inputs() ck(r2.success, f"step2: {r2.message}") sec("Step 3: run COBOL") r3 = orch.step3_run_cobol() ck(r3.success, f"step3: {r3.message}") sec("Coverage report") cr = orch.generate_coverage_report() ck(cr.success, f"coverage: {cr.message}") if cr.success: cov = cr.data.get("coverage", "?") rep = cr.data.get("reports", "?") print(f" Coverage: {cov}") print(f" Reports: {rep}") sec("Step 4: extract intermediate data") r4 = orch.step4_extract_intermediate() ck(r4.success, f"step4: {r4.message}") sec("Step 5: run Java (placeholder)") r5 = orch.step5_run_java() sec("Step 6: verify") vr = orch.step6_verify() print(f" Status: {vr.status}") print(f" Step reached: {vr.step_reached}") sec("SUMMARY") print(f"S30: {P} PASS / {F} FAIL") if F > 0: sys.exit(1)