- 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
68 lines
2.0 KiB
Python
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)
|