专利名称:基于执行路径全过程的系统窗口期滑动测试方法
技术领域:
本发明涉及一种基于执行路径全过程的系统窗口期滑动测试方法,属于操作系统开发与测试方法领域。
背景技术:
对嵌入式实时操作系统(ERTOS)开发和测试技术的研究主要集中在实时性能参数的测试上,通常包括上下文切换时间(task switching time)、抢占时间(preemptiontime)、中断延迟时间(interrupt latency time)等。对于系统设计正确性测试,实际测试时划分为功能性测试,其测试用例设计通常是针对每一项测试要求设计单独的测试用例。现有技术存在的主要问题I.针对系统功能测试,其测试粒度过大,不能很好的测试系统的正确性,很多问题需要在实际使用过程中才能发现。2.逐项测试的方法不能验证系统的整体工作情况。
发明内容
为了解决上述问题,本发明提供了一种全新的嵌入式实时操作系统测试方法,它通过对硬件时钟定时器的配置,在测试用例设计时利用设计的逻辑,来验证操作系统在特定接口的任务切换、上下文保存等整个执行路径中,异步中断在不同阶段到来时并执行相关耦合性的其他接口,以此来形成各种交错路径组合,测试和验证操作系统能否正确执行,根据不同的设置情况,相邻两次中断到来的时间间隔可以精确到一个CPU周期。为实现上述目的,本发明采用的技术方案如下一种基于执行路径全过程的系统窗口期滑动测试方法,包括以下步骤I)设置时钟相关寄存器预分频计数器,预置数寄存器,计数器控制寄存器;2)注册时钟中断服务程序,使能时钟中断;3)设置时钟中断发生的步进值,初始值为I ;4)获取时钟计数器当前计数值;5)若计数值大于步进值,则转到步骤4),否则继续以下步骤;6)获取另一时钟计数器的值,将其作为被测试接口的计时开始值;7)调用被测试接口;8)获取步骤6)中的时钟计数器值,将其作为被测试接口的计时结束值;9)计时结束值减去计时开始值,计算被测试接口的耗时;10)增加步进值,若该步进值小于时钟计数器的初始设置值,则转到步骤4),否则终止。本发明的有益效果是在实际使用中,根据不同硬件平台特性,包括晶振频率、预分频计数器、预置数寄存器、计数器控制寄存器的不同设置,可以控制相邻两次时钟中断产生的时间间隔,在最优情况下可以保证两次中断的间隔为一个CPU周期。由于引入类似高度可控的中断源,可以打破被测试接口的任意执行路径,所以只要将其有限的耦合性相关接口路径引入到重入路径中,就可以列举出所有的执行路径组合,以此用形式化验证的思想解决操作系统内核多重入、多路径的形式化验证难题,可以有效提升操作系统内核开发和测试的覆盖性难题。
图I为系统调用时段说明图;图2为测试用例工作流程图。
具体实施例方式本发明提供了一种基于执行路径全过程的系统窗口期滑动测试方法。一种基于执行路径全过程的系统窗口期滑动测试方法,包括以下步骤 I)设置时钟相关寄存器预分频计数器,预置数寄存器,计数器控制寄存器;2)注册时钟中断服务程序,使能时钟中断;3)设置时钟中断发生的步进值,初始值为I ;4)获取时钟计数器当前计数值;5)若计数值大于步进值,则转到步骤4),否则继续以下步骤;6)获取另一时钟计数器的值,将其作为被测试接口的计时开始值;7)调用被测试接口;8)获取步骤6)中的时钟计数器值,将其作为被测试接口的计时结束值;9)计时结束值减去计时开始值,计算被测试接口的耗时;10)增加步进值,若该步进值小于时钟计数器的初始设置值,则转到步骤4),否则终止。系统调用过程与中断对应时间关系共分为两种系统调用过程中不被时钟中断打断;系统调用过程中被时钟中断打断;在系统调用过程中执行以下步骤I)记录每次系统调用从开始到返回所花费的时间;2)创建高优先级任务Tl和低优先级任务T2,Tl用来调用测试用例,T2负责设置全局标志,可以被Tl用来判别切换是否成功;3)在Tl中调用测试用例,打印系统调用时间;4)重复步骤3)直到两种系统调用过程与中断对应时间关系全部出现。本发明属于操作系统功能和性能测试中采用的一种高精度测试方法,主要用于测试系统调用过程中,异步时钟中断到来时系统的响应情况。其工作原理是通过配置计数器控制寄存器及相关寄存器,调整时钟中断发生的时机,使中断连同其服务程序在被测接口整个执行路径中发生,从而观察在不同时间点中断发生时的各种路径交错组合是否能使操作系统正常工作及其各项性能指标所产生的变化等。在实际使用中,根据不同硬件平台特性,包括晶振频率、预分频计数器、预置数寄存器、计数器控制寄存器的不同设置,可以控制相邻两次时钟中断产生的时间间隔,在最优情况下可以保证两次中断的间隔为一个CPU周期。由于引入类似高度可控的中断源,可以任意打破被测试接口的任意执行路径,所以只要将其有限的耦合性相关接口路径引入到重入路径中,就可以列举出所有的执行路径组合,以此用形式化验证的思想解决操作系统内核多重入、多路径的形式化验证难题,可以有效提升操作系统内核开发和测试的覆盖性难题。下面详细说明。本发明方法包括以下步骤I)设置两个时钟相关寄存器预分频计数器,预置数寄存器,计数器控制寄存器,以初始化时钟相关寄存器,此处假设时钟计数器是按照从大到小计数的,其中一个作为系统时钟,一个作为计数时钟,计数时钟的时钟周期要大于系统时钟周期,且以大于被测接口执行时间为宜,避免在测试被测接口时计数时钟发生中断,而造成一定的计时误差; 2)注册时钟中断服务程序,使能时钟中断,以开启时钟,并在时钟中断到来时,调用中断服务程序进行计时处理;3)设置一步进值,其初始值为1,该步进值用于控制系统时钟窗口期;4)获取系统时钟计数器当前的计数值;5)若计数值大于步进值,则转到步骤4),此步骤5)的意图是排除掉窗口期以外的值;6)获取计数时钟的值,该值用于被测试接口的计时开始值;7)调用被测试接口;8)获取计数时钟值,该值用于被测试接口的计时结束值;9)取计时开始值减去计时结束值,用作被测试接口的耗时,由于计数时钟计数器是从大到小计数的,故计时开始值大于计时结束值;10)增加步进值,若小于I)中设置的系统时钟计数器的初始值,则继续扩大窗口期,转到4),否则说明已经到达最大的时钟窗口期,终止。系统调用过程与中断对应时间关系共分为两种,如图I所示I.系统调用过程中不被时钟中断打断;2.系统调用过程中被时钟中断打断。测试流程如下所示此处假设目标板有两个时钟定时器timerl和timer2,并且timer2为系统时钟中断触发寄存器,具体步骤如下I)设置timerl为计数器,记录每次系统调用从开始到返同所花费的时间;2)创建任务 Tl(high priority)和 T2(low priority),Tl 用来调用测试用例,T2负责设置全局标志,可以被Tl用来判别切换是否成功;3)在TI中调用测试用例,打印系统调用时间;4)重复步骤3)直到图I中两种情况全部出现。测试用例如图2所示I)获取系统时钟定时器timer2的值,如果值大于步进值scale,则转到I),否则转到2);2)获取定时器timerl的值,用于被测试接口计时开始值;3)调用被测试接口 tsk_delay ;
4)再次获取定时器timerl的值,用于被测试接口计时结束值;5)计算被测试接口时间值time,打印该值;6)步进值scale增加delta, delta为相邻两次系统调用时刻的间隔;7)如果步进值scale大于系统时钟定时器间隔则终止;否则转到I)。实现范例代码用C语言实现,硬件平台为SPARC V8,操作系统为SZ0S。系统时钟配置部分与具体硬件平台有关,以下代码为珠海欧比特公司的S698-MIL芯片最小系统开发板所使用的配置
权利要求
1.一种基于执行路径全过程的系统窗口期滑动测试方法,其特征在于包括以下步骤 1)设置时钟相关寄存器预分频计数器,预置数寄存器,计数器控制寄存器; 2)注册时钟中断服务程序,使能时钟中断; 3)设置时钟中断发生的步进值,初始值为I; 4)获取时钟计数器当前计数值; 5)若计数值大于步进值,则转到步骤4),否则继续以下步骤; 6)获取另一时钟计数器的值,将其作为被测试接口的计时开始值; 7)调用被测试接口; 8)获取步骤6)中的时钟计数器值,将其作为被测试接口的计时结束值; 9)计时结束值减去计时开始值,计算被测试接口的耗时; 10)增加步进值,若该步进值小于时钟计数器的初始设置值,则转到步骤4),否则终止。
2.如权利要求I所述的基于执行路径全过程的系统窗口期滑动测试方法,其特征在于 系统调用过程与中断对应时间关系共分为两种 系统调用过程中不被时钟中断打断; 系统调用过程中被时钟中断打断; 在系统调用过程中执行以下步骤 1)记录每次系统调用从开始到返同所花费的时间; 2)创建高优先级任务Tl和低优先级任务T2,Tl用来调用测试用例,T2负责设置全局标志,可以被Tl用来判别切换是否成功; 3)在Tl中调用测试用例,打印系统调用时间; 4)重复步骤3)直到两种系统调用过程与中断对应时间关系全部出现。
全文摘要
本发明涉及基于执行路径全过程的系统窗口期滑动测试方法,包括步骤1)设置时钟相关寄存器;2)注册时钟中断服务程序,使能时钟中断;3)设置时钟中断发生的步进值;4)获取时钟计数器当前计数值;5)若计数值大于步进值,则转到步骤4);6)获取另一时钟计数器的值,作为被测试接口的计时开始值;7)调用被测试接口;8)获取步骤6)中的时钟计数器值作为被测试接口的计时结束值;9)计时结束值减去计时开始值,计算被测试接口的耗时;10)增加步进值,若该步进值小于时钟计数器的初始设置值,则转到步骤4),否则终止。本发明用形式化验证的思想解决操作系统内核多重入、多路径的形式化验证难题,可以有效提升操作系统内核开发和测试的覆盖性难题。
文档编号G06F11/36GK102968376SQ20121052991
公开日2013年3月13日 申请日期2012年12月10日 优先权日2012年12月10日
发明者阚宏伟, 程胜, 李红兵, 周志军, 孙磊, 魏明, 黄察夫, 吕紫旭, 靳仕慧, 卓保特, 刘贵, 吴常明, 张春艳, 陶戈丹 申请人:北京神舟航天软件技术有限公司