vpp自动化测试报错调试

vpp自动化测试报错调试1 vpp 自动化测试方法在源码目录下 执行 maketest 命令可进行自动化测试 并可通过 maketest help 来查看具体的参数信息 2 如果在执行 maketest 时 vpp 报错 或者 vpp 出现 crash 导致 python 侧出现 IO 超时 比如 StartingACLc deletetest

... 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 ' 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 ' ... 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  [New LWP ] [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 ' 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 ... 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/227358.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午9:29
下一篇 2026年3月16日 下午9:30


相关推荐

  • Spring Boot 中使用 @Transactional 注解配置事务管理

    Spring Boot 中使用 @Transactional 注解配置事务管理事务管理是应用系统开发中必不可少的一部分。Spring为事务管理提供了丰富的功能支持。Spring事务管理分为编程式和声明式的两种方式。编程式事务指的是通过编码方式实现事务;声明式事务基于AOP,将具体业务逻辑与事务处理解耦。声明式事务管理使业务代码逻辑不受污染,因此在实际使用中声明式事务用的比较多。

    2022年6月6日
    113
  • Python冒泡排序算法及其优化「建议收藏」

    Python冒泡排序算法及其优化「建议收藏」冒泡排序所谓冒泡,就是将元素两两之间进行比较,谁大就往后移动,直到将最大的元素排到最后面,接着再循环一趟,从头开始进行两两比较,而上一趟已经排好的那个元素就不用进行比较了。(图中排好序的元素标记为黄色柱子)冒泡排序动图演示上python代码:defbubble_sort(items):foriinrange(len(items)-1):…

    2022年10月15日
    5
  • bootstrap实现分页(实例)「建议收藏」

    bootstrap实现分页(实例)「建议收藏」写前端都会面临的一个问题就是分页,如果是纯js分页也是可以的,只是可能代码量比较大,所以今天写一个关于用bootstrap框架分页的例子,希望以后可以帮助到一些对这方面比较头疼的码农。首先需要明确的一点是,哪些数据是需要分页的,单从数据显示上其实是没有必要分页的,因为页面是可以显示的出来的,但是作为一个相对比较合格的前端,你首先要考虑的不仅仅是这个功能是不是可以实现,而是要考虑用户体验是不是好的,…

    2022年8月16日
    7
  • 什么是Boot Loader

    什么是Boot Loader

    2021年7月31日
    49
  • 【c++】用string类定义字符串数组

    【c++】用string类定义字符串数组include includeusing 用字符数组来存放字符串并不是最理想和最安全的方法 C 提供了一种新的数据类型 字符串类型 string 类型 在使用方法上 它和 char int 类型一样 可以用来定义变量 这就是字符串变量 用一个名字代表一个字符序列 实际上 string 并不是 C 语言本身具有的基本类型

    2026年3月17日
    2
  • 详解Java的protected访问权限

    详解Java的protected访问权限protected 修饰静态方法和实例方法的差异

    2026年3月19日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号