ROHC协议库测试与改造(一)
来源:互联网 发布:兵不可偃乎 编辑:程序博客网 时间:2024/05/29 16:39
引言
之前把ROHC的库装好了,按照官方的教程把测试跑了一次,今天尝试着看懂他的测试脚本,大致了解测试的原理。
如果不知道ROHC是个什么鬼或者还没装ROHC库和测试的话,可以参考以下两篇文章
http://blog.csdn.net/u013793399/article/details/51425161 ROHC协议简介
http://blog.csdn.net/u013793399/article/details/51426548 Linux下安装ROHC协议库并测试
正文
测试脚本
ROHC的测试文件夹如下,一共有4种测试,分别是功能性测试、互动测试、无反馈测试、鲁棒性测试。这次要了解的是non_regression的测试原理。
在non_regression文件夹下,有很多的.sh脚本,这些脚本分别对应不同传输协议、WLSB不同窗口大小、不同CID大小等情况,官方给的测试里,只需要在non_regression目录下运行这些脚本就能看到结果。
我们来打开这些脚本看看吧。
随便选了一个,打开,如下:
WHAT THE FXXK= =||
- 首先看上图绿框的内容。
是test_non_regression.sh
这是另一个脚本的名字。- 再看上图红框的内容。
This script may be used by creating a link “test_non_regression_maxcontextsN_wlsbM_CIDTYPE_STREAM.sh”
其中N和M是参数,在下面给出的解释。
再打开其他的一两个,用Beyond Compare对照了一下,内容完全一样啊。。。。只有文件名是不一样的啊!!!
文件的一开始就告诉你,这东西的用法是重命名!
把文件名变成配置,这么高端的事情我还真是第一次看见。。。感觉自己弱的一笔。。。
测试程序
这个库的运行需要大量的头文件支持,shell写的脚本其实不是测试程序的本体,它只负责一些例如参数配置的事情。
本体在哪?在上面的终端窗口截图可以看到,除了大量的.sh文件,可执行文件(绿色)只有一个,就是test_non_regression
很明显,它就是测试程序本体吧?
其实并不是。。。后来打开一看,其实还是个脚本。。。
那我们就绕过脚本,直接运行这个程序吧。
弹出来的提示就是教我们怎么用的。
ROHC non-regression tool: test the ROHC library with a flow of IP packetsusage: test_non_regression [OPTIONS] CID_TYPE FLOWwith: CID_TYPE The type of CID to use among 'smallcid' and 'largecid' FLOW The flow of Ethernet frames to compress (in PCAP format)options: -v Print version information and exit -h Print this usage and exit -o FILE Save the generated ROHC packets in FILE (PCAP format) -c FILE Compare the generated ROHC packets with the ROHC packets stored in FILE (PCAP format) --rohc-size-output FILE Save the sizes of ROHC packets in FILE --max-contexts NUM The maximum number of ROHC contexts to simultaneously use during the test --wlsb-width NUM The width of the WLSB window to use --compat-1-6-x Mimic the behavior of the 1.6.x versions --no-comparison Is comparison with ROHC reference optional for test --ignore-malformed Ignore malformed packets for test --no-tcp Disable the TCP profile --verbose Run the test in verbose mode
参数有3种:
option
CID_TYPE
FLOW
其中option就是各种选项咯,
cid_type是cid的类型,可以选‘smallcid’或者‘largecid’
flow是文件流,是PCAP格式的文件
先试一下
不要option了
cid类型选择largecid
flow在input文件夹里有,每个最底层目录都有一个source.pcap,就用它作为输入吧。
上图是输出结果。
处理了10个,结果match了0个?!!
直接运行脚本的时候可以处理多少个就match多少个的诶!!
是不是哪里出错了?!!
其实并没有!
在option选项里有一个 -c FILE,
Compare the generated ROHC packets with the ROHC packets stored in FILE (PCAP format)
match的意思是,你程序的输出跟你指定的文件内容有多少个吻合。
刚刚都没有指定对比文件,怎么可能有match嘛!
我们看下那些脚本里都是怎么写的。
原来程序的入口文件是对应路径下的 source.pcap
压缩完成后,与同路径下,对应配置的 .pcap 文件对照,如果相同就match
另外,对照 .pcap 文件的同时,程序还会对照他们的 size ,对照文件是上述路径下的 对应配置的 .sizes 文件。所以我们来重新测试一遍,这次设置输出对照。
./test_non_regression -c inputs/ipv4/esp/bug1089106-non-rtp-with-14-sn-bits/rohc_maxcontexts1_wlsb4_largecid.pcap largecid inputs/ipv4/esp/bug1089106-non-rtp-with-14-sn-bits/source.pcap
其实就是 ./脚本 -c 对照文件路径 源文件路径
输出如下:
终于都match了。
- ROHC协议库测试与改造(一)
- ROHC协议库测试与改造(二)
- Linux下安装ROHC协议库并测试
- ROHC协议简介
- 报头压缩-Linux下安装ROHC协议库
- dubbo项目改造(一)
- 协议级测试和框架级测试(一)
- 开源项目9GAG源码解析与Material改造(一)
- 淘宝触屏版宝贝详情改造(一)
- Android数据过滤器Filter探索之使用与改造(一)
- Http协议与TCP协议易混淆点(一)
- 实验用协议软件测试、调试说明(一)
- Ubuntu14.04下eclipse中使用rohc库
- zedboard---opencv移植与测试(一)
- appium与自动化测试(一)
- 接口测试基础与工具(一)
- 测试与开发(一)
- 将weblech改造成文件爬虫(一)
- Geek-Band--性能优化案例
- docker 问题集锦
- 数字图像处理的研究内容
- Python函数式编程之闭包
- Unity的图片压缩格式详解
- ROHC协议库测试与改造(一)
- 并查集(Disjoint Set)
- 诚惶诚恐,开始翻译Effective DevOps
- Nginx开启gzip压缩
- 常用的基本DOS命令
- PHP Study- Issue 1 -Redirect Unable to load the module
- poj 2492 A Bug's Life
- WebSocket spring示例demo (已使用sockJs库)
- springMVC中pojo参数绑定