[发明专利]一种数据测试的方法和设备有效
申请号: | 201811555582.4 | 申请日: | 2018-12-19 |
公开(公告)号: | CN109359055B | 公开(公告)日: | 2022-04-15 |
发明(设计)人: | 宋健玮 | 申请(专利权)人: | 北京东土科技股份有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F8/51 |
代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 黄志华 |
地址: | 100041 北京市石景山*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据 测试 方法 设备 | ||
本发明公开了一种数据测试的方法和设备,用以解决现有技术中在进行数据测试时,工作效率低的问题。本发明将接收到的C语言定义的结构体成员信息转换成Go语言结构体代码;将所述Go语言结构体代码生成执行程序;运行所述执行程序,根据运行结果显示结构体成员的相关信息。由于将C语言定义的结构体成员信息转换成GO语言结构体代码,根据转换生成的GO语言结构体代码生成执行程序,运行根据GO语言结构体代码生成的执行程序,显示结构体成员的相关信息,在此过程中不需要编写代码,直接运行程序得到C语言的结构体成员的相关信息,提高工作效率。
技术领域
本发明涉及嵌入式系统领域,特别涉及一种数据测试的方法和设备。
背景技术
对于C/C++开发的软件,经常见到将结构体保存为二进制流,并通过二进制流在不同系统或软件模块之间传递结构化的数据信息。
目前,C/C++语言,以其占用资源少,执行效率高等优点,被广泛使用在嵌入式系统内。主要应用在很多可靠性要求高的场景,比如:无人守职的物联网硬件、工业控制软件内核、无人机控制系统软件等。对于这些可靠性要求高的场景,需要对C/C++语言进行单元测试。
传统测试有如下两种方式:
方式一:通过人肉眼观察二进制输出结果,一般是使用WinHex转换为十六进制显示,用户无法直观根据显示结果确定C/C++语言中的结构体成员,进而需要通过显示的十六进制进行处理确定结构体成员,浪费时间,工作效率低。
方式二:通过C语言编码采用printf函数逐个输出结构体成员,需要编写大量C语言代码,工作效率低。
综上,现有技术中在进行数据测试时,工作效率较低。
发明内容
本发明提供一种数据测试的方法和设备,用以解决现有技术中在进行数据测试时,工作效率低的问题。
第一方面,本发明实施例提供一种数据测试的方法,该方法包括:
将接收到的C语言定义的结构体成员信息转换成Go语言结构体代码;
将所述Go语言结构体代码生成执行程序;
运行所述执行程序,根据运行结果显示结构体成员的相关信息。
上述方法,将C语言定义的结构体成员信息转换成GO语言结构体代码,根据转换生成的GO语言结构体代码生成执行程序,运行根据GO语言结构体代码生成的执行程序,运行后显示结构体成员的相关信息,在此过程中不需要编写代码,直接运行程序就可得到C语言的结构体成员的相关信息,提高工作效率。
在一种可能的实现方式中,所述将接收到的C语言定义的结构体成员信息转换成Go语言结构体代码时,根据二进制流的对应关系,按照接收到的GO预定文件格式将C语言定义的结构体成员信息转换成Go语言结构体代码;
所述将所述Go语言结构体代码生成执行程序时,通过所述Go编译器对所述Go语言结构体代码进行编译,生成所述执行程序。
上述方法,根据将C语言定义的结构体信息转换成GO语言结构体代码,并根据GO语言结构体代码生成执行程序的具体过程,可以准确的确定执行文件。
在一种可能的实现方式中,通过下列方式确定所述C语言定义的结构体成员信息:
对所述C语言定义的结构体成员信息对应的C语言源文件进行词法分析,识别所述C语言源文件中的变量名;
根据所述变量名进行语法分析,确定C语言源文件中的语句和表达式;
根据所述C语言源文件中的语句和表达式生成语法树;
根据所述语法树中的节点确定所述C语言定义的结构体成员信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京东土科技股份有限公司,未经北京东土科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811555582.4/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置