Files
cobol-java-v3/test-data/s30_db_e2e.py
hangshuo652 54d4e81240 feat: phase2 review fixes
- TIME injection: change from spaces to '2500' (hour>23) for NUMVAL trigger
- Runner: add .resolve() to work_dir to fix chdir+relative path breakage
- Coverage: per-target field overrides for DP#9-#12 (START-DATE=20240115 etc.)
- .gitignore: add compilation artifacts, temp scripts, test outputs
2026-07-15 21:46:28 +08:00

68 lines
2.0 KiB
Python

"""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)