feat: SQL between/hostvar-key alignment, class-condition parsing, gcov merge across scenario runs

This commit is contained in:
hangshuo652
2026-08-09 17:43:00 +08:00
parent f331c8fa2a
commit 273a3f8211
31 changed files with 3789 additions and 272 deletions
+9
View File
@@ -32,6 +32,7 @@ class SysinDef:
period: str | None = "202607"
include_invalid_period: bool = False
modes: list[str] = field(default_factory=lambda: ["NORMAL"])
final_mode: str = "RESET"
@dataclass
@@ -42,6 +43,9 @@ class ScenarioDef:
inject_duplicate_pk: bool = False
row_overrides: dict[str, dict[str, str]] = field(default_factory=dict)
delete_all_rows: bool = False
drop_tables: list[str] = field(default_factory=list)
command_line: str | None = None
seed_extra_rows: dict[str, int] = field(default_factory=dict)
@dataclass
@@ -53,6 +57,7 @@ class ProgramSchema:
db_name: str = "OVERTIME.DB"
runs: list[ScenarioDef] = field(default_factory=list)
coverage_dates: dict[str, list[dict[str, str]]] = field(default_factory=dict)
command_line: str | None = None
@classmethod
def from_yaml(cls, path: str | Path) -> ProgramSchema:
@@ -76,6 +81,9 @@ class ProgramSchema:
inject_duplicate_pk=r.get("inject_duplicate_pk", False),
row_overrides=r.get("row_overrides", {}),
delete_all_rows=r.get("delete_all_rows", False),
drop_tables=r.get("drop_tables", []),
command_line=r.get("command_line"),
seed_extra_rows=r.get("seed_extra_rows", {}),
))
return cls(
program_id=raw["program_id"],
@@ -85,6 +93,7 @@ class ProgramSchema:
db_name=raw.get("db_name", "OVERTIME.DB"),
runs=runs,
coverage_dates=raw.get("coverage_dates", {}),
command_line=raw.get("command_line"),
)