Preserve source, binary, and runtime evidence boundaries while making precision and performance regressions reproducible. - decompose analysis orchestration into bounded modules - add differential, metamorphic, organic, and Yams change-time gates - fix detector, P-Code, fuzz sanitizer, and report identity precision
79 lines
2.4 KiB
JSON
79 lines
2.4 KiB
JSON
{
|
|
"schema_version": 1,
|
|
"case_id": "source-division-metamorphic",
|
|
"case_type": "metamorphic",
|
|
"origin": "metamorphic",
|
|
"backend": "source",
|
|
"name": "source_division_metamorphic",
|
|
"description": "Source finding multisets must transform predictably under identifier renaming, harmless insertion, equivalent guards, TU reordering, and process fanout.",
|
|
"detectors": "div-by-zero",
|
|
"standard": "c++20",
|
|
"expect": {
|
|
"max_summary_backed": 0,
|
|
"max_cross_tu_corroboration": 0
|
|
},
|
|
"relation": {
|
|
"kind": "finding-multiset-invariance",
|
|
"comparisons": [
|
|
{
|
|
"name": "alpha-rename-and-harmless-insertion",
|
|
"baseline": {
|
|
"sources": ["../../fixtures/metamorphic/division_baseline.cpp"],
|
|
"processes": 1
|
|
},
|
|
"transformed": {
|
|
"sources": ["../../fixtures/metamorphic/division_renamed.cpp"],
|
|
"processes": 1
|
|
},
|
|
"mapping": {
|
|
"uri_map": {
|
|
"tests/fixtures/metamorphic/division_baseline.cpp": "tests/fixtures/metamorphic/division_renamed.cpp"
|
|
},
|
|
"function_map": {
|
|
"fold_metamorphic::divide": "fold_metamorphic::quotient"
|
|
},
|
|
"line_delta": {
|
|
"tests/fixtures/metamorphic/division_renamed.cpp": 3
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "equivalent-guard-rewrite",
|
|
"baseline": {
|
|
"sources": ["../../fixtures/metamorphic/guard_baseline.cpp"],
|
|
"processes": 1
|
|
},
|
|
"transformed": {
|
|
"sources": ["../../fixtures/metamorphic/guard_rewritten.cpp"],
|
|
"processes": 1
|
|
},
|
|
"mapping": {
|
|
"uri_map": {
|
|
"tests/fixtures/metamorphic/guard_baseline.cpp": "tests/fixtures/metamorphic/guard_rewritten.cpp"
|
|
},
|
|
"function_map": {
|
|
"fold_metamorphic::guardedDivide": "fold_metamorphic::guardedQuotient"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "tu-order-and-process-fanout",
|
|
"baseline": {
|
|
"sources": [
|
|
"../../fixtures/metamorphic/division_baseline.cpp",
|
|
"../../fixtures/metamorphic/guard_baseline.cpp"
|
|
],
|
|
"processes": 1
|
|
},
|
|
"transformed": {
|
|
"sources": [
|
|
"../../fixtures/metamorphic/guard_baseline.cpp",
|
|
"../../fixtures/metamorphic/division_baseline.cpp"
|
|
],
|
|
"processes": 2
|
|
},
|
|
"mapping": {}
|
|
}
|
|
]
|
|
}
|
|
}
|