51 lines
1.5 KiB
JSON
51 lines
1.5 KiB
JSON
{
|
|
"schema_version": 1,
|
|
"case_id": "quality-identity-metamorphic",
|
|
"case_type": "metamorphic",
|
|
"origin": "metamorphic",
|
|
"backend": "source",
|
|
"name": "quality_identity_metamorphic",
|
|
"description": "Quality finding identities and multiplicities remain stable under TU ordering and process fanout.",
|
|
"detectors": "clone,complexity,dead-statement,unused-function,redundant-store",
|
|
"standard": "c++20",
|
|
"min_body_stmts": 1,
|
|
"require_unique_finding_ids": true,
|
|
"validate_clone_families": true,
|
|
"expect": {
|
|
"min_findings": 3,
|
|
"min_rule_findings": {
|
|
"fold.clone": 1
|
|
}
|
|
},
|
|
"relation": {
|
|
"kind": "finding-multiset-invariance",
|
|
"comparisons": [
|
|
{
|
|
"name": "tu-order-and-worker-count",
|
|
"baseline": {
|
|
"sources": [
|
|
"../../fixtures/quality/structural_debt.cpp",
|
|
"../../fixtures/quality/structural_clean.cpp",
|
|
"../../fixtures/clones/exact.cpp",
|
|
"../../fixtures/clones/renamed.cpp",
|
|
"../../fixtures/clones/near_miss.cpp"
|
|
],
|
|
"processes": 1
|
|
},
|
|
"transformed": {
|
|
"sources": [
|
|
"../../fixtures/clones/near_miss.cpp",
|
|
"../../fixtures/clones/renamed.cpp",
|
|
"../../fixtures/clones/exact.cpp",
|
|
"../../fixtures/quality/structural_clean.cpp",
|
|
"../../fixtures/quality/structural_debt.cpp"
|
|
],
|
|
"processes": 2
|
|
},
|
|
"mapping": {
|
|
"fields": ["finding_id", "rule_id", "backend"]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|