[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen master] tools/misra: fix skipped rule numbers
commit a0998df973594347a4e4632ac67d8a9572434990 Author: Luca Fancellu <luca.fancellu@xxxxxxx> AuthorDate: Wed Dec 7 13:07:03 2022 +0000 Commit: Stefano Stabellini <stefano.stabellini@xxxxxxx> CommitDate: Mon Dec 12 14:19:18 2022 -0800 tools/misra: fix skipped rule numbers MISRA rules are in the format Rule X.Y, currently the script convert_misra_doc.py is using two nested loop through range(1,22) to enumerate rules that needs to be skipped, using combination of X.Y in that range, however there are two issues in the code: - rule 22 is never included because the range(1,22) produces a range in [1..21] - the second issue is that the code is producing invalid MISRA C 2012 rules, for example 1.21 and so on Fix the issue using a dictionary that list the rules in misra c2012. Fixes: 57caa5375321 ("xen: Add MISRA support to cppcheck make rule") Signed-off-by: Luca Fancellu <luca.fancellu@xxxxxxx> Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx> Tested-by: Stefano Stabellini <sstabellini@xxxxxxxxxx> --- xen/tools/convert_misra_doc.py | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/xen/tools/convert_misra_doc.py b/xen/tools/convert_misra_doc.py index caa4487f64..13074d8a2e 100755 --- a/xen/tools/convert_misra_doc.py +++ b/xen/tools/convert_misra_doc.py @@ -14,6 +14,34 @@ Usage: import sys, getopt, re +# MISRA rule are identified by two numbers, e.g. Rule 1.2, the main rule number +# and a sub-number. This dictionary contains the number of the MISRA rule as key +# and the maximum sub-number for that rule as value. +misra_c2012_rules = { + 1:4, + 2:7, + 3:2, + 4:2, + 5:9, + 6:2, + 7:4, + 8:14, + 9:5, + 10:8, + 11:9, + 12:5, + 13:6, + 14:4, + 15:7, + 16:7, + 17:8, + 18:8, + 19:2, + 20:14, + 21:21, + 22:10 +} + def main(argv): infile = '' outfile = '' @@ -142,8 +170,8 @@ def main(argv): skip_list = [] # Search for missing rules and add a dummy text with the rule number - for i in list(range(1,22)): - for j in list(range(1,22)): + for i in misra_c2012_rules: + for j in list(range(1,misra_c2012_rules[i]+1)): if str(i) + '.' + str(j) not in rule_list: outstr.write('Rule ' + str(i) + '.' + str(j) + '\n') outstr.write('No description for rule ' + str(i) + '.' + str(j) -- generated by git-patchbot for /home/xen/git/xen.git#master
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |