feat: DB管线补全 + 新增orchestrator_db/program_schema/to_sql + 清理临时脚本

This commit is contained in:
hangshuo652
2026-07-11 14:55:52 +08:00
parent 40e8a50ab4
commit af37e33b98
32 changed files with 3232 additions and 255 deletions
+20 -2
View File
@@ -14,6 +14,7 @@ import re
import logging
from .models import BrSeq, BrIf, BrEval, BrPerform, BrSearch, Assign, CallNode, CondNot, CondLeaf, ExitNode, GoTo
from .cond import parse_single_condition, parse_compound_condition, is_field, collect_leaves, mcdc_sets
from .design import eval_true_branch_constraints
logger = logging.getLogger(__name__)
@@ -183,6 +184,18 @@ def _make_path_for_branch(dp, branch_idx, fields):
node = dp["node"]
n_when = len(node.when_list)
dp_id = dp.get("id", 0)
if node.subject == 'TRUE':
for prev_idx in range(branch_idx):
prev_value, _ = node.when_list[prev_idx]
_, prev_false_sets = eval_true_branch_constraints(prev_value, fields)
if prev_false_sets:
constraints.extend(prev_false_sets[0])
if branch_idx < n_when:
value, seq = node.when_list[branch_idx]
true_set, _ = eval_true_branch_constraints(value, fields)
constraints.extend(true_set)
print(f" MCDC-DEBUG: EVALUATE TRUE branch={branch_idx} subject={node.subject} constraints={constraints}", flush=True)
return (constraints, {})
if branch_idx < n_when:
value, seq = node.when_list[branch_idx]
if is_field(node.subject, fields):
@@ -246,8 +259,13 @@ def enum_paths(node, fields):
if bp: paths.append(bp)
if node.has_other:
other_cons = list(dp.get("access_constraints", []))
for v, _ in node.when_list:
if is_field(node.subject, fields):
if node.subject == 'TRUE':
for v, _ in node.when_list:
_, false_sets = eval_true_branch_constraints(v, fields)
if false_sets:
other_cons.extend(false_sets[0])
elif is_field(node.subject, fields):
for v, _ in node.when_list:
other_cons.append((node.subject, '<>', v, True))
paths.append((other_cons, {}))