|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 3/4] tools/misra: fix skipped rule numbers
On Mon, 28 Nov 2022, Luca Fancellu wrote:
> Currently the script convert_misra_doc.py is using a loop through
> range(1,22) to enumerate rules that needs to be skipped, however
> range function does not include the stop counter in the enumeration
> ending up into list rules until 21.21 instead of including rule 22.
>
> Fix the issue using a dictionary that list the rules in misra c2012.
I think I understand the problem you are trying to solve with this
patch. But I am confused about the proposed solution.
The original code is trying to list all the possible MISRA C rules that
are not in docs/misra/rules.rst. Instead of list(range(1,22)) now we
have a dictionary: misra_c2012_rules. But misra_c2012_rules doesn't have
all the possible MISRA C rules missing from docs/misra/rules.rst.
As an example Rule 13.1 is missing from docs/misra/rules.rst but it is
also missing from misra_c2012_rules.
Can you please help me understand why misra_c2012_rules has only a small
subset of MISRA C rules to be skipped?
> Fixes: 57caa5375321 ("xen: Add MISRA support to cppcheck make rule")
> Signed-off-by: Luca Fancellu <luca.fancellu@xxxxxxx>
> ---
> 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 caa4487f645f..13074d8a2e91 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)
> --
> 2.17.1
>
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |