多线程测试用例的生成方法及装置、电子设备、存储介质制造方法及图纸

技术编号:37432862 阅读:32 留言:0更新日期:2023-05-05 19:47
本发明专利技术实施例公开一种多线程测试用例的生成方法及装置、电子设备、计算机可读存储介质,涉及计算机技术领域,能够有效提高多线程测试用例的产生效率。所述方法包括:从单线程测试用例之中,选择第一数量个单线程测试用例作为基础测试用例,所述第一数量大于一个;编译各所述基础测试用例的源文件以及预设的测试用例调度代码,得到各所述基础测试用例对应的基础二进制文件以及所述测试用例调度代码对应的调度二进制文件;其中,各所述基础测试用例对应的基础二进制文件所在的物理内存空间彼此隔离;根据所述基础二进制文件以及所述调度二进制文件,生成目标测试用例的二进制文件。本发明专利技术可用于多线程测试用例的生成。本发明专利技术可用于多线程测试用例的生成。本发明专利技术可用于多线程测试用例的生成。

【技术实现步骤摘要】
多线程测试用例的生成方法及装置、电子设备、存储介质


[0001]本专利技术涉及计算机
,尤其涉及一种多线程测试用例的生成方法及装置、电子设备、存储介质。

技术介绍

[0002]CPU(central processing unit,中央处理器)开发设计过程中,会涉及到指令集的修改和更新。所以期间就需要提供一套完备的ISA(Instruction Set Architecture,指令集架构)测试用例集合,以便从ISA层面对CPU的功能进行验证,同时保证CPU在ISA层面提供的功能的前后版本的兼容性。
[0003]传统上,很多测试用例都是基于单线程技术编写的,但随着CPU超线程技术,特别是SMT(Simultaneous multithreading,同步多线程)技术的引入,产生了越来越多的多线程测试用例应用需求。如何高效产生大量的多线程测试用例,现有技术中尚无有效的解决方案。

技术实现思路

[0004]有鉴于此,本专利技术实施例提供一种多线程测试用例的生成方法及装置、电子设备、计算机可读存储介质,能够有效提高多线程本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种多线程测试用例的生成方法,其特征在于,包括:从单线程测试用例之中,选择第一数量个单线程测试用例作为基础测试用例,所述第一数量大于一个;编译各所述基础测试用例的源文件以及预设的测试用例调度代码,得到各所述基础测试用例对应的基础二进制文件以及所述测试用例调度代码对应的调度二进制文件;其中,各所述基础测试用例对应的基础二进制文件所在的物理内存空间彼此隔离;根据所述基础二进制文件以及所述调度二进制文件,生成目标测试用例的二进制文件。2.根据权利要求1所述的方法,其特征在于,所述编译各所述基础测试用例的源文件以及预设的测试用例调度代码之前,所述方法还包括:将所述测试用例调度代码以头文件的形式,分别设置在各所述基础测试用例的源文件中,得到对应的扩展源文件。3.根据权利要求2所述的方法,其特征在于,所述编译各所述基础测试用例的源文件以及预设的测试用例调度代码,得到各所述基础测试用例对应的基础二进制文件以及所述测试用例调度代码对应的调度二进制文件包括:编译各所述基础测试用例对应的扩展源文件,得到对应的扩展二进制文件,各所述扩展二进制文件中的基础测试用例部分所在的物理内存空间彼此隔离,各所述扩展二进制文件中的测试用例调度部分所在的物理内存空间彼此不隔离,各所述扩展二进制文件对应的线程间共享数据所在的物理内存空间彼此不隔离;所述根据所述基础二进制文件以及所述调度二进制文件,生成目标测试用例的二进制文件包括:根据各所述扩展二进制文件,生成所述目标测试用例的二进制文件。4.根据权利要求3所述的方法,其特征在于,所述根据各所述扩展二进制文件,生成所述目标测试用例的二进制文件包括:将各所述扩展二进制文件合并成一个合并文件,并将该合并文件中各所述测试用例调度代码对应的多份调度二进制文件删除至仅保留一份,得到所述目标测试用例的二进制文件。5.根据权利要求2所述的方法,其特征在于,所述编译各所述基础测试用例的源文件以及预设的测试用例调度代码,得到各所述基础测试用例对应的基础二进制文件以及所述测试用例调度代码对应的调度二进制文件包括:编译各所述基础测试用例对应的扩展源文件,得到对应的扩展二进制文件,其中,在各所述扩展源文件中重复多份的所述测试用例调度代码,仅编译其中一份;各所述扩展二进制文件中的基础测试用例部分所在的物理内存空间彼此隔离,各所述扩展二进制文件中的测试用例调度部分所在的物理内存空间彼此不隔离,各所述扩展二进制文件对应的线程间共享数据所在的物理内存空间彼此不隔离;所述根据所述基础二进制文件以及所述调度二进制文件,生成目标测试用例的二进制文件包括:将各所述扩展二进制文件合并成一个合并文件,得到所述目标测试用例的二进制文件。6.根据权利要求2所述的方法,其特征在于,所述将所述测试用例调度代码以头文件的形式,分别设置在各所述基础测试用例的源文件中之后,所述方法还包括:通过宏机制,将所述测试用例调度代码与各所述基础测试用例的源文件相隔离,以使在符合预设条件的情况下,编译所述测试用例调度代码和所述基础测试用例的源文件,在
不符合所述预设条件的情况下,仅编译所述基础测试用例的源文件。7.根据权利要求1至6中任一项所述的方法,其特征在于,所述编译各所述基础测试用例的源文件包括:对每个所述基础测试用例的源文件,调用第一预设函数,生成所述基础测试用例对应的配置文件,所述配置文件中包括随机初始化的系统环境变量;根据所述配置文件以及预先设置的加载规则,初始化系统运行环境;对每个所述基础测试用例的源文件以及对应的所述配置文件进行编译和转换,得到每个所述基础测试用例对应的所述基础二进制文件。8.根据权利要求7所述的方法,其特征在于,所述根据所述配置文件以及预先设置的加载规则,初始化系统运行环境包括:根据所述配置文件以及预先设置的加载规则,执行以下至少一项操作:指定当前的操作模式,指定当前的页表模式,初始化控制寄存器的初始值,创建用户段、系统段、段选择子,创建全局描述符表GDT、局部描述符表LDT、中断描述符表IDT、任务状态段TSS、在规定的虚拟地址和物理地址范围内创建程序运行需要的内存页表映射、切换系统模式。9.根据权利要求1至6中任一项所述的方法,其特征在于,所述测试用例调度代码用于:控制程序启动时,向不同线程代码跳转;和/或控制程序的退出流程,对每个线程的运行结果进行实时检测并同步给其他线程。10.根据权利要求1至6中任一项所述的方法,其特征在于,所述测试用例调度代码对应的调度二进制文件存储在所述目标测试用例的二进制文件的公共代码段中,不同线程间需要交互的数据存储在所述目标测试用例的二进制文件的公共数据段中。11.根据权利要求1至6中任一项所述的方法,其特征在于,所述编译各所述基础测试用例的源文件以及预设的测试用例调度代码之前,所述方法还包括:根据待生成的目标测试用例所对应的测试线程数量,确定所述第一数量,所述测试线程数量大于或等于两个;将计算机的物理内存总空间划分为第二数量个彼此隔离的物理内存空间,所述第二数量大于或等于所述第一数量。12.根据权利要求1至6中任一项所述的方法,其特征在于,各所述基础测试用例相同或不同。13.一种多线程测试用例的生成装置,其特征在于,包括:选择单元,用于从单线程测试用例之中,选择第一数量个单线程测试用例作为基础测试用例,所述第一数量大于一个;编译单元,用于...

【专利技术属性】
技术研发人员:徐继新赵炎张思宇
申请(专利权)人:海光信息技术股份有限公司
类型:发明
国别省市:

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

1