Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
oec-hardware
提交
7ed07840
O
oec-hardware
项目概览
openeuler
/
oec-hardware
通知
4
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
oec-hardware
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
7ed07840
编写于
6月 08, 2020
作者:
A
air9
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
clean codesmell
上级
3f8d148e
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
37 addition
and
30 deletion
+37
-30
tests/network/ethernet.py
tests/network/ethernet.py
+3
-1
tests/network/network.py
tests/network/network.py
+18
-15
tests/network/rdma.py
tests/network/rdma.py
+16
-14
未找到文件。
tests/network/ethernet.py
浏览文件 @
7ed07840
...
...
@@ -16,7 +16,6 @@ import os
import
argparse
from
hwcompatible.test
import
Test
from
hwcompatible.command
import
Command
from
hwcompatible.env
import
CertEnv
from
hwcompatible.document
import
CertDocument
from
rdma
import
RDMATest
...
...
@@ -25,6 +24,9 @@ from rdma import RDMATest
class
EthernetTest
(
RDMATest
):
def
__init__
(
self
):
RDMATest
.
__init__
(
self
)
self
.
args
=
None
self
.
cert
=
None
self
.
device
=
None
self
.
subtests
=
[
self
.
test_ip_info
,
self
.
test_eth_link
,
self
.
test_icmp
,
self
.
test_udp_tcp
,
self
.
test_http
]
self
.
target_bandwidth_percent
=
0.75
...
...
tests/network/network.py
浏览文件 @
7ed07840
...
...
@@ -26,7 +26,7 @@ except ImportError:
from
urllib2
import
urlopen
,
Request
,
HTTPError
from
hwcompatible.test
import
Test
from
hwcompatible.command
import
Command
from
hwcompatible.command
import
Command
,
CertCommandError
from
hwcompatible.document
import
CertDocument
from
hwcompatible.env
import
CertEnv
...
...
@@ -34,6 +34,9 @@ from hwcompatible.env import CertEnv
class
NetworkTest
(
Test
):
def
__init__
(
self
):
Test
.
__init__
(
self
)
self
.
args
=
None
self
.
cert
=
None
self
.
device
=
None
self
.
requirements
=
[
'ethtool'
,
'iproute'
,
'psmisc'
,
'qperf'
]
self
.
subtests
=
[
self
.
test_ip_info
,
self
.
test_eth_link
,
self
.
test_icmp
,
self
.
test_udp_tcp
,
self
.
test_http
]
...
...
@@ -79,7 +82,7 @@ class NetworkTest(Test):
try
:
c
.
run
()
return
c
.
output
except
Exception
as
e
:
except
CertCommandError
as
e
:
print
(
e
)
return
[]
...
...
@@ -98,28 +101,28 @@ class NetworkTest(Test):
def
get_speed
(
self
):
c
=
Command
(
"ethtool %s"
%
self
.
interface
)
pattern
=
".*Speed:\s+(?P<speed>\d+)Mb/s"
pattern
=
r
".*Speed:\s+(?P<speed>\d+)Mb/s"
try
:
speed
=
c
.
get_str
(
pattern
,
'speed'
,
False
)
return
int
(
speed
)
except
Exception
as
e
:
except
CertCommandError
as
e
:
print
(
"[X] No speed found on the interface."
)
return
None
def
get_interface_ip
(
self
):
c
=
Command
(
"ip addr show %s"
%
self
.
interface
)
pattern
=
".*inet.? (?P<ip>.+)/.*"
pattern
=
r
".*inet.? (?P<ip>.+)/.*"
try
:
ip
=
c
.
get_str
(
pattern
,
'ip'
,
False
)
return
ip
except
Exception
as
e
:
except
CertCommandError
as
e
:
print
(
"[X] No available ip on the interface."
)
return
None
def
test_icmp
(
self
):
count
=
500
c
=
Command
(
"ping -q -c %d -i 0 %s"
%
(
count
,
self
.
server_ip
))
pattern
=
".*, (?P<loss>\d+\.{0,1}\d*)% packet loss.*"
pattern
=
r
".*, (?P<loss>\d+\.{0,1}\d*)% packet loss.*"
for
_
in
range
(
self
.
retries
):
try
:
...
...
@@ -128,7 +131,7 @@ class NetworkTest(Test):
c
.
print_output
()
if
float
(
loss
)
==
0
:
return
True
except
Exception
as
e
:
except
CertCommandError
as
e
:
print
(
e
)
return
False
...
...
@@ -145,7 +148,7 @@ class NetworkTest(Test):
try
:
request
=
Request
(
url
,
data
=
data
,
headers
=
headers
)
response
=
urlopen
(
request
)
except
Exception
as
e
:
except
HTTPError
as
e
:
print
(
e
)
return
False
print
(
"Status: %u %s"
%
(
response
.
code
,
response
.
msg
))
...
...
@@ -171,7 +174,7 @@ class NetworkTest(Test):
cmd
=
"qperf %s tcp_bw"
%
self
.
server_ip
print
(
cmd
)
c
=
Command
(
cmd
)
pattern
=
"\s+bw\s+=\s+(?P<bandwidth>[\.0-9]+ [MG]B/sec)"
pattern
=
r
"\s+bw\s+=\s+(?P<bandwidth>[\.0-9]+ [MG]B/sec)"
for
_
in
range
(
self
.
retries
):
try
:
bandwidth
=
c
.
get_str
(
pattern
,
'bandwidth'
,
False
)
...
...
@@ -186,7 +189,7 @@ class NetworkTest(Test):
(
bandwidth
,
target_bandwidth
))
if
bandwidth
>
target_bandwidth
:
return
True
except
Exception
as
e
:
except
CertCommandError
as
e
:
print
(
e
)
return
False
...
...
@@ -204,7 +207,7 @@ class NetworkTest(Test):
try
:
with
open
(
self
.
testfile
,
'rb'
)
as
f
:
filetext
=
base64
.
b64encode
(
f
.
read
())
except
Exception
as
e
:
except
FileNotFoundError
as
e
:
print
(
e
)
return
False
...
...
@@ -221,7 +224,7 @@ class NetworkTest(Test):
try
:
request
=
Request
(
url
,
data
=
data
,
headers
=
headers
)
response
=
urlopen
(
request
)
except
Exception
as
e
:
except
HTTPError
as
e
:
print
(
e
)
return
False
time_stop
=
time
.
time
()
...
...
@@ -240,7 +243,7 @@ class NetworkTest(Test):
time_start
=
time
.
time
()
try
:
response
=
urlopen
(
url
)
except
Exception
as
e
:
except
HTTPError
as
e
:
print
(
e
)
return
False
time_stop
=
time
.
time
()
...
...
@@ -252,7 +255,7 @@ class NetworkTest(Test):
try
:
with
open
(
self
.
testfile
,
'wb'
)
as
f
:
f
.
write
(
filetext
)
except
Exception
as
e
:
except
FileNotFoundError
as
e
:
print
(
e
)
return
False
...
...
tests/network/rdma.py
浏览文件 @
7ed07840
...
...
@@ -17,7 +17,7 @@ import re
import
argparse
from
hwcompatible.test
import
Test
from
hwcompatible.command
import
Command
from
hwcompatible.command
import
Command
,
CertCommandError
from
hwcompatible.document
import
CertDocument
from
hwcompatible.env
import
CertEnv
from
network
import
NetworkTest
...
...
@@ -26,11 +26,13 @@ from network import NetworkTest
class
RDMATest
(
NetworkTest
):
def
__init__
(
self
):
NetworkTest
.
__init__
(
self
)
self
.
args
=
None
self
.
cert
=
None
self
.
device
=
None
self
.
requirements
=
[
'ethtool'
,
'iproute'
,
'psmisc'
,
'qperf'
,
'perftest'
,
'opensm'
,
'infiniband-diags'
,
'librdmacm-utils'
,
'libibverbs-utils'
]
self
.
subtests
=
[
self
.
test_ibstatus
,
self
.
test_icmp
,
self
.
test_rdma
]
self
.
device
=
None
self
.
interface
=
None
self
.
ib_device
=
None
self
.
ib_port
=
None
...
...
@@ -53,7 +55,7 @@ class RDMATest(NetworkTest):
c
=
Command
(
cmd
)
try
:
self
.
ib_device
=
c
.
read
()
except
Exception
as
e
:
except
CertCommandError
as
e
:
print
(
e
)
return
False
...
...
@@ -62,7 +64,7 @@ class RDMATest(NetworkTest):
c
=
Command
(
cmd
)
try
:
self
.
ib_port
=
int
(
c
.
read
(),
16
)
+
1
except
Exception
as
e
:
except
CertCommandError
as
e
:
print
(
e
)
return
False
...
...
@@ -78,14 +80,14 @@ class RDMATest(NetworkTest):
if
ib_str
not
in
info
:
continue
print
(
info
)
self
.
gid
=
re
.
search
(
"default gid:\s+(.*)"
,
info
).
group
(
1
)
self
.
base_lid
=
re
.
search
(
"base lid:\s+(.*)"
,
info
).
group
(
1
)
self
.
sm_lid
=
re
.
search
(
"sm lid:\s+(.*)"
,
info
).
group
(
1
)
self
.
state
=
re
.
search
(
"state:\s+(.*)"
,
info
).
group
(
1
)
self
.
phys_state
=
re
.
search
(
"phys state:\s+(.*)"
,
info
).
group
(
1
)
self
.
link_layer
=
re
.
search
(
"link_layer:\s+(.*)"
,
info
).
group
(
1
)
self
.
speed
=
int
(
re
.
search
(
"rate:\s+(\d*)"
,
info
).
group
(
1
))
*
1024
except
Exception
as
e
:
self
.
gid
=
re
.
search
(
r
"default gid:\s+(.*)"
,
info
).
group
(
1
)
self
.
base_lid
=
re
.
search
(
r
"base lid:\s+(.*)"
,
info
).
group
(
1
)
self
.
sm_lid
=
re
.
search
(
r
"sm lid:\s+(.*)"
,
info
).
group
(
1
)
self
.
state
=
re
.
search
(
r
"state:\s+(.*)"
,
info
).
group
(
1
)
self
.
phys_state
=
re
.
search
(
r
"phys state:\s+(.*)"
,
info
).
group
(
1
)
self
.
link_layer
=
re
.
search
(
r
"link_layer:\s+(.*)"
,
info
).
group
(
1
)
self
.
speed
=
int
(
re
.
search
(
r
"rate:\s+(\d*)"
,
info
).
group
(
1
))
*
1024
except
CertCommandError
as
e
:
print
(
e
)
return
False
...
...
@@ -126,7 +128,7 @@ class RDMATest(NetworkTest):
cmd
=
"%s %s -d %s -i %s"
%
(
cmd
,
self
.
server_ip
,
self
.
ib_device
,
self
.
ib_port
)
print
(
cmd
)
c
=
Command
(
cmd
)
pattern
=
"\s+(\d+)\s+(\d+)\s+([\.\d]+)\s+(?P<avg_bw>[\.\d]+)\s+([\.\d]+)"
pattern
=
r
"\s+(\d+)\s+(\d+)\s+([\.\d]+)\s+(?P<avg_bw>[\.\d]+)\s+([\.\d]+)"
try
:
avg_bw
=
c
.
get_str
(
pattern
,
'avg_bw'
,
False
)
## MB/sec
avg_bw
=
float
(
avg_bw
)
*
8
...
...
@@ -135,7 +137,7 @@ class RDMATest(NetworkTest):
print
(
"Current bandwidth is %.2fMb/s, target is %.2fMb/s"
%
(
avg_bw
,
tgt_bw
))
return
avg_bw
>
tgt_bw
except
Exception
as
e
:
except
CertCommandError
as
e
:
print
(
e
)
self
.
call_remote_server
(
cmd
,
'stop'
)
return
False
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录