|
109 | 109 | print(
|
110 | 110 | f' - ERROR:{standard_name} query{query["short_name"]}.ql for Rule{rule_id} in{package_name}.json has a spurious `external/misra/c/2012/...` tag.')
|
111 | 111 | failed=True
|
| 112 | +ifstandard_name=="CERT-C"orstandard_name=="CERT-C++": |
| 113 | +expected_properties= [ |
| 114 | +"severity", |
| 115 | +"likelihood", |
| 116 | +"remediation-cost", |
| 117 | +"priority", |
| 118 | +"level" |
| 119 | + ] |
| 120 | +forexpected_propertyinexpected_properties: |
| 121 | +ifnotany(tagfortaginquery["tags"]iftag.startswith(f"external/cert/{expected_property}/")): |
| 122 | +print( |
| 123 | +f' - ERROR:{standard_name} query{query["short_name"]}.ql for Rule{rule_id} in{package_name}.json is missing a `external/cert/{expected_property}/...` tag.') |
| 124 | +failed=True |
| 125 | +ifnotstandard_name=="CERT-C"andnotstandard_name=="CERT-C++": |
| 126 | +ifany(tagfortaginquery["tags"]iftag.startswith("external/cert/")): |
| 127 | +print( |
| 128 | +f' - ERROR:{standard_name} query{query["short_name"]}.ql for Rule{rule_id} in{package_name}.json has a spurious `external/cert/...` tag.') |
| 129 | +failed=True |
112 | 130 | rules_csv_rule_ids=package_rules_from_csv[package_name]
|
113 | 131 |
|
114 | 132 | json_missing_rules=rules_csv_rule_ids.difference(package_json_rule_ids)
|
|