- step1: 所有 LLM 调用返回空 function_units 时抛出 RuntimeError - step1: main() 在 _quick_validate 未通过时 sys.exit(1) - step2: function_units 为空时提前报错终止 - step3: fragments 为空时提前报错终止 - test: test_step1 捕获 SystemExit, test_step2_5/step3 空数据改为 skip Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -376,10 +376,13 @@ def _load_si_and_doc():
|
||||
"""Try to load semantic_index.json and the input document. Returns (si, doc) or (None, None)."""
|
||||
try:
|
||||
si = config.load_json(config.SEMANTIC_INDEX_JSON)
|
||||
doc = config.load_input_document()
|
||||
return si, doc
|
||||
except FileNotFoundError:
|
||||
return None, None
|
||||
try:
|
||||
doc = config.load_input_document()
|
||||
except (FileNotFoundError, SystemExit):
|
||||
return None, None
|
||||
return si, doc
|
||||
|
||||
|
||||
def test_step1_unit_ids():
|
||||
|
||||
@@ -160,6 +160,8 @@ def test_step2_5_path_enumeration():
|
||||
path_data = config.load_json(config.PATH_ENUM_JSON)
|
||||
except FileNotFoundError:
|
||||
pytest.skip("path_enumeration.json not found — run step2_5_branch_coverage.py first")
|
||||
if path_data.get("total_paths", 0) == 0:
|
||||
pytest.skip("path_enumeration.json has 0 paths — pipeline may have failed upstream")
|
||||
errors = check_path_enumeration(path_data)
|
||||
assert not errors, f"path enumeration errors: {errors}"
|
||||
|
||||
|
||||
@@ -235,11 +235,14 @@ import pytest # noqa: E402
|
||||
|
||||
|
||||
def _load_ir_final_or_skip():
|
||||
"""Load ir_final.json or return None."""
|
||||
"""Load ir_final.json. Returns None if file missing or rules empty (failed pipeline)."""
|
||||
try:
|
||||
return config.load_json(config.IR_FINAL_JSON)
|
||||
data = config.load_json(config.IR_FINAL_JSON)
|
||||
except FileNotFoundError:
|
||||
return None
|
||||
if not data.get("rules"):
|
||||
return None # Skip: pipeline produced empty results
|
||||
return data
|
||||
|
||||
|
||||
def _load_audit_report_or_skip():
|
||||
|
||||
Reference in New Issue
Block a user