openeuler-riscv / oerv-team

OERV 实习生工作中心
8 stars 39 forks source link

[mugen_2403 round1]处理mugen测试套 iperf3 失败的测试用例 #728

Open jiewu9823 opened 5 months ago

jiewu9823 commented 5 months ago

需求:

  1. 2403_mugen失败测试用例清单 中找到测试套 iperf3 失败的测试用例
  2. openEuler RISC-V 24.03 版本最新的镜像上 double check mugen 中 iperf3 测试套里的测试用例,并在openEuler x86 24.03 LTS 版本镜像上做对比验证
  3. 定位失败的原因,并做出相应的处理: 如果确认是 riscv 架构的问题,向 src-openeuler 里对应的软件包仓库里提交 issue 如果是 mugen 测试用例的问题,修复测试用例后,向 mugen 上游提交 PR,提交 PR 时要贴上在 riscv 和 x86 两个架构的上测试结果

要求:

  1. 该项任务要求产出:

    • 分别在openEuler RISC-V 24.03 版本镜像和 openEuler x86 24.03 LTS 版本镜像上 double check 的结果,即完成需求2(必选,限制1天内完成)
    • 定位失败的原因,并做出相应的处理,即完成需求3(可选,对应薪资折半,限制2天内完成),如果无法完成,请在本 issue 的评论里说明情况,未完成的任务将重新设置为issue挂出。如果完成了该项任务,请在本 issue 评论里说明完成的情况
  2. 完成该项任务后,请在 2403_mugen失败测试用例清单 里找到相应测试套和测试用例栏位,并填写riscv复测结果,Failure Reason,Owner(填写中文名),Gitee ID,Issue/PR(填写提交issue或者PR的url),x86 测试情况。Issue/PR这个栏位可能已经填有内容,是之前在23.09版本上其他实习生同学分析的结果,供参考

说明:

  1. mugen 源码以及使用方法:https://gitee.com/openeuler/mugen
yangfan-ruan commented 1 month ago

查看失败用例

测试套 失败测试用例
iperf3 oe_test_iperf3_command_client
iperf3 oe_test_iperf3_command_clientAndShared
iperf3 oe_test_iperf3_command_serverAndBase

查看环境配置要求 Pasted image 20240809165837 可见需要2台机器进行测试 mugen配置

r64:
bash mugen.sh -c --ip 192.168.1.17 --password 5959 --user root --port 22
bash mugen.sh -c --ip 192.168.1.20 --password 5959 --user root --port 22 
x86:
bash mugen.sh -c --ip 192.168.1.18 --password 5959 --user root --port 22
bash mugen.sh -c --ip 192.168.1.20 --password 5959 --user root --port 22 

测试

bash mugen.sh -f iperf3 -x

bash mugen.sh -f iperf3 -r oe_test_iperf3_command_client -x
bash mugen.sh -f iperf3 -r oe_test_iperf3_command_clientAndShared -x
bash mugen.sh -f iperf3 -r oe_test_iperf3_command_serverAndBase -x

oe_test_iperf3_command_client

r64下测试失败 Pasted image 20240809174509 log信息 Pasted image 20240809181108 x86下测试失败 Pasted image 20240809181446 log信息 Pasted image 20240809182030 可见r64与x86下的错误原因一样,对应测试用例代码内容为 Pasted image 20240809200713 这是检查第一次测试(20240)的吞吐量是否大于第二次测试(102400)的吞吐量(第5列)。在expr命令中,如果比较为真,返回值为1;如果比较为假,返回值为0。预期结果为0, 现在 [ ... -eq 0 ] 返回 1,这意味着:expr 命令返回了 0, 因此两次比较的结果是前者(20240)大于后者(102400)。但是通常情况下,较大的窗口大小(102400)应该能够实现更高的吞吐量,这也与测试结果相吻合。因此可以判断,是第38行逻辑错误,应该把“>”改成“<” 修改后r64下测试通过 Pasted image 20240809202512 修改后x86下测试通过 Pasted image 20240809202749

oe_test_iperf3_command_clientAndShared

r64下测试通过 Pasted image 20240809174436 x86下测试通过 Pasted image 20240809181510

oe_test_iperf3_command_serverAndBase

r64下测试通过 Pasted image 20240809174125 x86下测试通过 Pasted image 20240809181538

说明

  1. 由于使用了桥接模式,测试本机和虚拟机之间无法进行ssh通信,虚拟机显示结果存在部分位置错乱现象,不影响完整信息显示
  2. 提交PR: https://gitee.com/openeuler/mugen/pulls/3565 。已填写清单