IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> vpp自动化测试报错调试 -> 正文阅读

[开发工具]vpp自动化测试报错调试

1)vpp 自动化测试方法
????????在源码目录下,执行 make test 命令可进行自动化测试,并可通过 make test-help 来查看具体的参数信息。
2)如果在执行 make test 时,vpp 报错,或者 vpp?crash,导致 python 侧?IO 超时,比如:

...
Starting ACL create/delete test ...
------------------------------------------------------------------------------
Received read timeout 5s
11:44:08,004 [Errno 2] No such file or directory
Received read timeout 5s
11:44:13,001 [Errno 2] No such file or directory
------------------------------------------------------------------------------
...
==============================================================================
ERROR: ACL create/delete test
------------------------------------------------------------------------------
Traceback (most recent call last):
  File "test_acl_plugin.py", line 603, in test_0001_acl_create
    acls=[first_acl])
  File "/root/vpp/build-root/rpmbuild/vpp-18.07.1/test/vpp_papi_provider.py", line 2864, in acl_interface_set_acl_list
    expected_retval=expected_retval)
  File "/root/vpp/build-root/rpmbuild/vpp-18.07.1/test/vpp_papi_provider.py", line 160, in api
    reply = api_fn(**api_args)
  File "build/bdist.linux-arch/egg/vpp_papi/vpp_papi.py", line 106, in __call__
    return self._func(**kwargs)
  File "build/bdist.linux-arch/egg/vpp_papi/vpp_papi.py", line 397, in f
    return self._call_vpp(i, msg, multipart, **kwargs)
  File "build/bdist.linux-arch/egg/vpp_papi/vpp_papi.py", line 604, in _call_vpp
    msg = self._read()
  File "build/bdist.linux-arch/egg/vpp_papi/vpp_papi.py", line 442, in _read
    raise IOError(rv, 'vac_read failed')
IOError: [Errno -1] vac_read failed

3)此时应该通过执行 make test-shell DEBUG=gdb,进入测试框架提供的 shell 环境,如下所示:

[root@bogon vpp-18.07.1]# make test-shell DEBUG=gdb
...
(virtualenv) [root@bogon test]# 
(virtualenv) [root@bogon test]# 

然后单独执行那个报错的测试用例,比如:test_acl_plugin.py:

(virtualenv) [root@bogon test]# python test_acl_plugin.py
...
------------------------------------------------------------------------------
You can debug the VPP using e.g.:
gdb /root/vpp/build-root/rpmbuild/vpp-18.07.1/build-root/install-vpp-native/vpp/bin/vpp -ex 'attach 1880693'
Now is the time to attach a gdb by running the above command and set up breakpoints etc.
------------------------------------------------------------------------------
Press ENTER to continue running the testcase...

执行上述命令后,程序会停下来,根据上面的提示,可通过 gdb attach 来调试上述测试用例在执行过程中启动的 vpp 实例,在你认为有问题的地方打上断点,并?continue,如下所示:

[root@bogon vpp-18.07.1]# gdb /root/vpp/build-root/rpmbuild/vpp-18.07.1/build-root/install-vpp-native/vpp/bin/vpp -ex 'attach 1880693'
...
Reading symbols from /root/vpp/build-root/rpmbuild/vpp-18.07.1/build-root/install-vpp-native/vpp/bin/vpp...done.
Attaching to program: /root/vpp/build-root/rpmbuild/vpp-18.07.1/build-root/install-vpp-native/vpp/bin/vpp, process 2483450
[New LWP 2483451]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
0x000000fff67d65d4 in epoll_pwait () from /lib64/libc.so.6
(gdb) b vnet_classify_new_table
Breakpoint 1 at 0xfff6dcef90: file /root/vpp/build-root/rpmbuild/vpp-18.07.1/build-data/../src/vnet/classify/vnet_classify.c, line 128.
(gdb) c
Continuing.

4)在刚才启动的测试用例中敲回车,以便让测试用例继续执行,在 gdb 中命中断点后就可以进行调试了。

You can debug the VPP using e.g.:
gdb /root/vpp/build-root/rpmbuild/vpp-18.07.1/build-root/install-vpp-native/vpp/bin/vpp -ex 'attach 1880693'
Now is the time to attach a gdb by running the above command and set up breakpoints etc.
------------------------------------------------------------------------------
Press ENTER to continue running the testcase...
==============================================================================
ACL plugin Test Case
==============================================================================
Starting ACL plugin version check; learn MACs ...
------------------------------------------------------------------------------
------------------------------------------------------------------------------
ACL plugin version check; learn MACs OK
------------------------------------------------------------------------------
Starting ACL create/delete test ...

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-12-24 18:41:27  更:2021-12-24 18:42:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 15:04:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码