[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2 1/2] xen/cppcheck: sort alphabetically cppcheck report entries


  • To: Luca Fancellu <luca.fancellu@xxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Michal Orzel <michal.orzel@xxxxxxx>
  • Date: Mon, 30 Jan 2023 12:22:54 +0100
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=arm.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=z13DJ4/lWshBGiGNlBJ7mHuqI3xxp6AcbqjVpPJrQGU=; b=j2OGSWxmlhU6QGBSBS087IGubv2p5yQxCwlb52SbplOHYttUAaywbA5gySX3/cFLYXkbYN+tNzoM2bvhGDxVoT6d6CXise+obSlKfb2SJw04NMmwVOdhPOUeZGKysdfcG4aNn1ah9I0xYFAqak+c+fJ4KvmGKjijM6/N5CKDLCmiam8CmN5JfplThHZO8CAzkqqwiePzf07jKGOpwV5uDjPrrumwAnK8XPUi9uE58zd8p2Jb5lXTnC6eRmyQhtG5gH8rW0wgBrsK1gJNCNQwM++j1tH85H1hMCtikaM+Y1MFAb4h3lCy6FIDzyK79bEpxfKsDmU8J6k9gpmJ0JKNLg==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eW0hmAfFfz2i8/UhMpX0H4u6l2AMI6aUH8FttPyBHpH9W1/Vs3nG9X3tYSbAVJhpnhKAF4oOjUdLCG9ObM46+rXFFnknMSTn2ZZ3wl93wXc2jbt3/i2CU+bowKs2krnCbFdMdljxX+BJDZq2oJhU5dKMcbiON7b+HBd0GvJzjIAB7HiGI/Xk6uZTHyf24Tm50jcMqdIU0pZ3BjgVu0Te/X0WLf7MyU8lnC31HcRs1sG6ZUyx4NHYvFv21zIe8t4sZ/hJjwvMEAiJZWpjEBOI15YmVa0WkHvZNQBnsNySI59zBy37dzIIsLBuxBko8iTnWLovc8rFuZkcRlDM89AY3Q==
  • Cc: <bertrand.marquis@xxxxxxx>, <wei.chen@xxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, George Dunlap <george.dunlap@xxxxxxxxxx>, Jan Beulich <jbeulich@xxxxxxxx>, Julien Grall <julien@xxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>
  • Delivery-date: Mon, 30 Jan 2023 11:23:29 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

Hi Luca,

On 30/01/2023 12:01, Luca Fancellu wrote:
> 
> 
> Sort alphabetically cppcheck report entries when producing the text
> report, this will help comparing different reports and will group
> together findings from the same file.
> 
> The sort operation is performed with two criteria, the first one is
> sorting by misra rule, the second one is sorting by file.
> 
> Signed-off-by: Luca Fancellu <luca.fancellu@xxxxxxx>
> ---
> Changes in v2:
>  - Sort with two criteria, first misra rule, second filename
>    (Michal, Jan)
> ---
> ---
>  xen/scripts/xen_analysis/cppcheck_report_utils.py | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/xen/scripts/xen_analysis/cppcheck_report_utils.py 
> b/xen/scripts/xen_analysis/cppcheck_report_utils.py
> index 02440aefdfec..0b6cc72b9ac1 100644
> --- a/xen/scripts/xen_analysis/cppcheck_report_utils.py
> +++ b/xen/scripts/xen_analysis/cppcheck_report_utils.py
> @@ -104,6 +104,13 @@ def cppcheck_merge_txt_fragments(fragments_list, 
> out_txt_file, strip_paths):
>                  for path in strip_paths:
>                      text_report_content[i] = text_report_content[i].replace(
>                                                                  path + "/", 
> "")
> +                    # Split by : separator
> +                    text_report_content[i] = 
> text_report_content[i].split(":")
This is where the for loop body ends so it should be separated from the rest by 
an empty line.

> +            # sort alphabetically for second field (misra rule) and as second
The second field is not necessary a "misra rule". It is just an error id (e.g. 
unreadVariable).
However this is just a python script and we use cppcheck mostly for MISRA so I 
do not object.
 
> +            # criteria for the first field (file name)
> +            text_report_content.sort(key = lambda x: (x[1], x[0]))
> +            # merge back with : separator
> +            text_report_content = [":".join(x) for x in text_report_content]
>              # Write the final text report
>              outfile.writelines(text_report_content)
>      except OSError as e:
> --
> 2.25.1
> 

With the first remark fixed (e.g. on commit),
Reviewed-by: Michal Orzel <michal.orzel@xxxxxxx>

~Michal



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.