一种基于版本库比较的PC-Lint代码检查结果筛选方法技术

技术编号:10246712 阅读:149 留言:0更新日期:2014-07-23 23:58
一种基于版本库比较的PC-Lint代码检查结果筛选方法,涉及软件测试技术领域,包括以下步骤:通过命令行方式调用控制台程序;获取传入的参数的配置文件;再对配置文件进行分析,获取输出结果格式化的字符串;根据所述字符串的格式来定义正则表达式;将所述传入的参数传递给PC-Lint后台检查,然后截获其检查结果;通过与版本库对比,获取代码差异信息,当所述分段信息中获取的代码行号属于改动行时,将该行代码的分段信息纳入输出序列;待整个输出结果筛选完成后,将输出序列中的分段信息呈现给用户。由于利用控制台程序预先对PC-Lint的检查结果进行了筛选,最终只显示与改动行代码相关的检查结果,因此简单直观,有利于提高代码编写质量与效率。

【技术实现步骤摘要】
一种基于版本库比较的PC-Lint代码检查结果筛选方法
本专利技术涉及软件测试
,具体的说是一种基于版本库比较的PC-Lint代码检查结果筛选方法。
技术介绍
PC-Lint是一款优秀的C/C++软件代码静态检查工具,它不仅能够对程序进行全局分析,识别没有被适当检验的数组下标,报告未被初始化的变量,警告使用空指针以及冗余的代码,还能够有效地帮你提出许多程序在空间利用、运行效率上的改进点。其运行模式为控制台模式,输出内容可通过管道命令存入文本文件中,或被调用它的程序进行捕获输出。在C语言软件产品开发过程中,经常会用到PC-Lint工具对编写的代码进行检查,来找出代码中潜在的问题。PC-Lint在对代码检查时,会对编译所需要的代码都进行检查,但是在开发时,经常会用到第三方代码,而这部分代码的检查结果我们并不需要,也不会对这部分代码进行修改。因此,在PC-Lint的输出结果中包含大量的第三方代码,导致无法快速准确的找到与修改过的代码相关的内容。
技术实现思路
针对现有技术中存在的缺陷,本专利技术的目的在于提供一种基于版本库比较的PC-Lint代码检查方法,用于方便查看改动代码相关的静态检查结果。为达到以上目的,本专利技术采取的技术方案是:一种基于版本库比较的PC-Lint代码检查结果筛选方法,包括以下步骤:S1:通过命令行方式调用控制台程序,所述控制台程序的调用方式与PC-Lint的调用方式相同;S2:所述控制台程序获取传入的参数的配置文件;再对配置文件进行分析,获取输出结果格式化的字符串;S3:所述控制台程序根据所述字符串的格式来定义正则表达式,并通过变量记录所述字符串中的文件名称和代码行号出现的顺序;S4:所述控制台程序将所述传入的参数传递给PC-Lint后台检查,然后截获其检查结果,通过所述正则表达式计算所述检查结果,将检查结果中的信息进行分段,然后通过所述变量所记录的顺序,从所述分段信息中获取文件名称和代码行号;S5:所述控制台程序通过版本库与所述分段信息中获取的文件名称和代码行号对比,获取代码差异信息,当所述分段信息中获取的代码行号属于改动行时,将该行代码的分段信息纳入输出序列;S6:待整个输出结果筛选完成后,将输出序列中的分段信息呈现给用户。在上述技术方案的基础上,所述S2中,所述传入的参数包括配置文件参数和非配置文件参数,所述配置文件参数不包含短横线,所述非配置文件参数必须包含短横线。在上述技术方案的基础上,所述S2中,所述配置文件为逐层嵌套形式,即所述配置文件至少包含2层,其中内层的配置文件依次嵌套在外层的配置文件中。在上述技术方案的基础上,所述S2中,递归读取所述配置文件,获取输出结果格式化的字符串。在上述技术方案的基础上,所述获取输出结果格式化的字符串的具体步骤如下:S201:读取配置文件;S202:获取输出结果格式化的字符串;S203:判断所述配置文件是否包含其他的配置文件,若否,则进入S204;若是,则进入S201;S204:配置文件是否结束,若否,则进入S201;若是,则进入S205;S205:确定输出结果格式化的字符串。在上述技术方案的基础上,所述S2中,若所述配置文件中不包含输出结果格式化的字符串,则使用默认的输出格式。在上述技术方案的基础上,所述S5中,当通过版本库获取代码差异信息发生错误时,将该检查结果全部纳入输出序列。在上述技术方案的基础上,所述S5中,所述版本库是指存放软件代码的文件数据库。在上述技术方案的基础上,所述S5中,当分段信息中获取的代码行号不属于改动行时,忽略该行代码的分段信息。本专利技术的有益效果在于:1、由于本专利技术基于版本库比较的PC-Lint代码检查方法,由于利用控制台程序预先对PC-Lint的检查结果进行了筛选,最终只显示与改动行代码相关的检查结果,因此简单直观,有利于提高代码编写质量与效率。2、由于本专利技术基于版本库比较的PC-Lint代码检查方法,所述控制台程序的调用方式与PC-Lint的调用方式相同,因此用户能够保持原有操作习惯。附图说明图1是本专利技术基于版本库比较的PC-Lint代码检查方法的流程图;图2是递归读取配置文件的逻辑示意图。具体实施方式以下结合附图对本专利技术作进一步详细说明。如图1所示,一种基于版本库比较的PC-Lint代码检查结果筛选方法,包括以下步骤:S1:通过命令行方式调用控制台程序,所述控制台程序的调用方式与PC-Lint的调用方式相同。S2:所述控制台程序对传入的参数逐个进行分析,获取其中的配置文件;所述传入的参数包括配置文件参数和非配置文件参数,所述配置文件参数不包含短横线,所述非配置文件参数必须包含短横线。所述配置文件为逐层嵌套形式,即所述配置文件至少包含2层,其中内层的配置文件依次嵌套在外层的配置文件中。所述控制台程序递归读取所述配置文件,对配置文件进行分析,获取输出结果格式化的字符串。若所述配置文件中不包含输出结果格式化的字符串,则使用默认的输出格式。S3:所述控制台程序根据所述字符串的格式来定义正则表达式,并通过变量记录所述字符串中的文件名称和代码行号出现的顺序;其中,任何所述配置文件中都可以包含“-format”的输出格式字符串定义,用来决定每一行的代码检查结果字段的排列顺序,但只有最后一个“-format”才会起作用,之前读取的“-format”配置会被忽略。S4:所述控制台程序将所述传入的参数传递给PC-Lint后台检查,然后截获其检查结果,通过所述正则表达式计算所述检查结果,将检查结果中的信息进行分段,然后通过所述变量所记录的顺序,从所述分段信息中获取文件名称和代码行号。S5:所述控制台程序通过版本库与所述分段信息中获取的文件名称和代码行号对比,所述版本库是指存放软件代码的文件数据库,获取代码差异信息,当所述分段信息中获取的代码行号属于改动行时,将该行代码的分段信息纳入输出序列;当分段信息中获取的代码行号不属于改动行时,忽略该行代码的分段信息。当通过版本库获取代码差异信息发生错误时,将该检查结果全部纳入输出序列。S6:待整个输出结果筛选完成后,将输出序列中的分段信息呈现给用户。如图2所示,所述控制台程序递归读取所述配置文件是指顺序读取配置文件,当配置文件的某一行中有定义另外一个配置文件时就先读取该配置文件中的所有行,之后再继续读取当前配置文件中后面的行。具体步骤如下:S201:读取配置文件。S202:获取输出结果格式化的字符串。S203:判断所述配置文件是否包含其他的配置文件,若否,则进入S204;若是,则进入S201。S204:配置文件是否结束,若否,则进入S201;若是,则进入S205。S205:确定输出结果格式化的字符串。下面结合具体实施例对本专利技术作进一步说明。对采用subversion(以下简称svn)进行版本管理的软件代码的PC-Lint代码检查结果进行筛选显示。本实施例中涉及到的svn的命令如下:命令:svndiff命令说明:svndiff–rarg1:arg2[arg6]>arg3svndiff–r{arg4}:{arg5}[arg6]>arg3功能说明:根据版本号或日期段生成变更日志参数说明:arg1:需要统计的起始版本号;arg2:需要统计的最后版本号;arg3:生成的变更日志文本文档来自技高网...
一种基于版本库比较的PC-Lint代码检查结果筛选方法

【技术保护点】
一种基于版本库比较的PC‑Lint代码检查结果筛选方法,其特征在于,包括以下步骤:步骤1:通过命令行方式调用控制台程序,所述控制台程序的调用方式与PC‑Lint的调用方式相同;步骤2:所述控制台程序获取传入的参数的配置文件;再对配置文件进行分析,获取输出结果格式化的字符串;步骤3:所述控制台程序根据所述字符串的格式来定义正则表达式,并通过变量记录所述字符串中的文件名称和代码行号出现的顺序;步骤4:所述控制台程序将所述传入的参数传递给PC‑Lint后台检查,然后截获其检查结果,通过所述正则表达式计算所述检查结果,将检查结果中的信息进行分段,然后通过所述变量所记录的顺序,从所述分段信息中获取文件名称和代码行号;步骤5:所述控制台程序通过版本库与所述分段信息中获取的文件名称和代码行号对比,获取代码差异信息,当所述分段信息中获取的代码行号属于改动行时,将该行代码的分段信息纳入输出序列;步骤6:待整个输出结果筛选完成后,将输出序列中的分段信息呈现给用户。

【技术特征摘要】
1.一种基于版本库比较的PC-Lint代码检查结果筛选方法,其特征在于,包括以下步骤:S1:通过命令行方式调用控制台程序,所述控制台程序的调用方式与PC-Lint的调用方式相同;S2:所述控制台程序获取传入的参数的配置文件;再对配置文件进行分析,获取输出结果格式化的字符串;S3:所述控制台程序根据所述字符串的格式来定义正则表达式,并通过变量记录所述字符串中的文件名称和代码行号出现的顺序;S4:所述控制台程序将所述传入的参数传递给PC-Lint后台检查,然后截获其检查结果,通过所述正则表达式计算所述检查结果,将检查结果中的信息进行分段,然后通过所述变量所记录的顺序,从所述分段信息中获取文件名称和代码行号;S5:所述控制台程序通过版本库与所述分段信息中获取的文件名称和代码行号对比,获取代码差异信息,所述版本库是指存放软件代码的文件数据库,当所述分段信息中获取的代码行号属于改动行时,将该行代码的分段信息纳入输出序列;S6:待整个输出结果筛选完成后,将输出序列中的分段信息呈现给用户。2.如权利要求1所述的一种基于版本库比较的PC-Lint代码检查结果筛选方法,其特征在于:所述S2中,所述传入的参数包括配置文件参数和非配置文件参数,所述配置文件参数不包含短横线,所述非配置文件参数必须包含短横线。3.如权利要求2所述的一种基于版本库比较的PC-Lint代码检查结果筛选方法,其特征...

【专利技术属性】
技术研发人员:王玮夏冉
申请(专利权)人:烽火通信科技股份有限公司
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1