Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
oec-hardware
提交
9386cc93
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,发现更多精彩内容 >>
提交
9386cc93
编写于
6月 24, 2020
作者:
C
cuixucui
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
整改编码规范
上级
f8769a29
变更
19
显示空白变更内容
内联
并排
Showing
19 changed file
with
94 addition
and
53 deletion
+94
-53
hwcompatible/command.py
hwcompatible/command.py
+1
-0
hwcompatible/compatibility.py
hwcompatible/compatibility.py
+12
-11
hwcompatible/device.py
hwcompatible/device.py
+2
-0
hwcompatible/document.py
hwcompatible/document.py
+18
-11
hwcompatible/job.py
hwcompatible/job.py
+2
-1
hwcompatible/log.py
hwcompatible/log.py
+1
-0
tests/acpi/acpi.py
tests/acpi/acpi.py
+2
-1
tests/cdrom/cdrom.py
tests/cdrom/cdrom.py
+4
-2
tests/clock/clock.py
tests/clock/clock.py
+2
-1
tests/cpufreq/cpufreq.py
tests/cpufreq/cpufreq.py
+11
-6
tests/disk/disk.py
tests/disk/disk.py
+2
-1
tests/ipmi/ipmi.py
tests/ipmi/ipmi.py
+5
-2
tests/memory/memory.py
tests/memory/memory.py
+6
-3
tests/network/network.py
tests/network/network.py
+6
-3
tests/nvme/nvme.py
tests/nvme/nvme.py
+2
-1
tests/perf/perf.py
tests/perf/perf.py
+1
-0
tests/system/system.py
tests/system/system.py
+10
-5
tests/usb/usb.py
tests/usb/usb.py
+5
-4
tests/watchdog/watchdog.py
tests/watchdog/watchdog.py
+2
-1
未找到文件。
hwcompatible/command.py
浏览文件 @
9386cc93
...
...
@@ -223,6 +223,7 @@ class Command:
class
CertCommandError
(
Exception
):
def
__init__
(
self
,
command
,
message
):
super
(
CertCommandError
,
self
).
__init__
()
self
.
message
=
message
self
.
command
=
command
self
.
__message
=
None
...
...
hwcompatible/compatibility.py
浏览文件 @
9386cc93
...
...
@@ -29,7 +29,7 @@ from .reboot import Reboot
from
.client
import
Client
class
EulerCertification
()
:
class
EulerCertification
:
def
__init__
(
self
):
self
.
certification
=
None
...
...
@@ -50,12 +50,12 @@ class EulerCertification():
print
(
"All cases are passed, test end."
)
return
True
devices
=
certdevice
.
get_devices
()
self
.
devices
=
DeviceDocument
(
CertEnv
.
devicefile
,
devices
)
oec_
devices
=
certdevice
.
get_devices
()
self
.
devices
=
DeviceDocument
(
CertEnv
.
devicefile
,
oec_
devices
)
self
.
devices
.
save
()
# test_factory format example: [{"name":"nvme", "device":device, "run":True, "status":"PASS", "reboot":False}]
test_factory
=
self
.
get_tests
(
devices
)
test_factory
=
self
.
get_tests
(
oec_
devices
)
self
.
update_factory
(
test_factory
)
if
not
self
.
choose_tests
():
return
True
...
...
@@ -76,7 +76,7 @@ class EulerCertification():
reboot
.
clean
()
self
.
save
(
job
)
return
True
except
Exception
as
e
:
except
(
IOError
,
OSError
,
TypeError
)
as
e
:
print
(
e
)
return
False
...
...
@@ -86,7 +86,7 @@ class EulerCertification():
Command
(
"rm -rf %s"
%
CertEnv
.
certificationfile
).
run
()
Command
(
"rm -rf %s"
%
CertEnv
.
factoryfile
).
run
()
Command
(
"rm -rf %s"
%
CertEnv
.
devicefile
).
run
()
except
Exception
as
e
:
except
CertCommandError
as
e
:
print
(
e
)
return
False
return
True
...
...
@@ -176,7 +176,7 @@ class EulerCertification():
def
get_tests
(
self
,
devices
):
"""
获取测试项
get test items
:param devices:
:return:
"""
...
...
@@ -221,7 +221,7 @@ class EulerCertification():
for
device
in
devices
:
if
device
.
get_property
(
"SUBSYSTEM"
)
==
"usb"
and
\
device
.
get_property
(
"ID_VENDOR_FROM_DATABASE"
)
==
"Linux Foundation"
and
\
(
"2."
in
device
.
get_property
(
"ID_MODEL_FROM_DATABASE"
)
or
\
(
"2."
in
device
.
get_property
(
"ID_MODEL_FROM_DATABASE"
)
or
"3."
in
device
.
get_property
(
"ID_MODEL_FROM_DATABASE"
)):
sort_devices
[
"usb"
]
=
[
empty_device
]
continue
...
...
@@ -328,7 +328,7 @@ class EulerCertification():
def
show_tests
(
self
):
"""
显示测试用例
show test items
:return:
"""
print
(
"
\033
[1;35m"
+
"No."
.
ljust
(
4
)
+
"Run-Now?"
.
ljust
(
10
)
\
...
...
@@ -344,7 +344,7 @@ class EulerCertification():
status
=
test
[
"status"
]
device
=
test
[
"device"
].
get_name
()
run
=
"no"
if
test
[
"run"
]
==
True
:
if
test
[
"run"
]
is
True
:
run
=
"yes"
num
=
num
+
1
...
...
@@ -410,7 +410,8 @@ class EulerCertification():
self
.
test_factory
.
sort
(
key
=
lambda
k
:
k
[
"name"
])
FactoryDocument
(
CertEnv
.
factoryfile
,
self
.
test_factory
).
save
()
def
search_factory
(
self
,
obj_test
,
test_factory
):
@
staticmethod
def
search_factory
(
obj_test
,
test_factory
):
for
test
in
test_factory
:
if
test
[
"name"
]
==
obj_test
[
"name"
]
and
test
[
"device"
].
path
==
obj_test
[
"device"
].
path
:
return
True
...
...
hwcompatible/device.py
浏览文件 @
9386cc93
...
...
@@ -28,6 +28,7 @@ def filter_char(str):
filtered
+=
str
[
start
:]
return
filtered
class
CertDevice
:
def
__init__
(
self
):
self
.
devices
=
None
...
...
@@ -66,6 +67,7 @@ class CertDevice:
self
.
devices
.
sort
(
key
=
lambda
k
:
k
.
path
)
return
self
.
devices
class
Device
:
def
__init__
(
self
,
properties
=
None
):
self
.
path
=
""
...
...
hwcompatible/document.py
浏览文件 @
9386cc93
...
...
@@ -21,8 +21,8 @@ from .sysinfo import SysInfo
from
.env
import
CertEnv
class
Document
()
:
def
__init__
(
self
,
filename
,
document
=
dict
()
):
class
Document
:
def
__init__
(
self
,
filename
,
document
=
{}
):
self
.
document
=
document
self
.
filename
=
filename
...
...
@@ -49,8 +49,10 @@ class Document():
except
(
IOError
,
json
.
decoder
.
JSONDecodeError
):
return
False
class
CertDocument
(
Document
):
def
__init__
(
self
,
filename
,
document
=
dict
()):
def
__init__
(
self
,
filename
,
document
=
{}):
super
(
CertDocument
,
self
).
__init__
()
self
.
document
=
dict
()
self
.
filename
=
filename
if
not
document
:
...
...
@@ -103,8 +105,10 @@ class CertDocument(Document):
def
get_kernel
(
self
):
return
self
.
document
[
"kernel"
]
class
DeviceDocument
(
Document
):
def
__init__
(
self
,
filename
,
devices
=
list
()):
def
__init__
(
self
,
filename
,
devices
=
[]):
super
(
DeviceDocument
,
self
).
__init__
()
self
.
filename
=
filename
self
.
document
=
list
()
if
not
devices
:
...
...
@@ -113,8 +117,10 @@ class DeviceDocument(Document):
for
device
in
devices
:
self
.
document
.
append
(
device
.
properties
)
class
FactoryDocument
(
Document
):
def
__init__
(
self
,
filename
,
factory
=
list
()):
def
__init__
(
self
,
filename
,
factory
=
[]):
super
(
FactoryDocument
,
self
).
__init__
()
self
.
document
=
list
()
self
.
filename
=
filename
if
not
factory
:
...
...
@@ -143,21 +149,22 @@ class FactoryDocument(Document):
class
ConfigFile
:
def
__init__
(
self
,
filename
):
super
(
ConfigFile
,
self
).
__init__
()
self
.
filename
=
filename
self
.
parameters
=
dict
()
self
.
config
=
list
()
self
.
load
()
def
load
(
self
):
f
ile
=
open
(
self
.
filename
)
self
.
config
=
f
ile
.
readlines
()
f
p
=
open
(
self
.
filename
)
self
.
config
=
f
p
.
readlines
()
for
line
in
self
.
config
:
if
line
.
strip
()
and
line
.
strip
()[
0
]
==
"#"
:
continue
words
=
line
.
strip
().
split
(
" "
)
if
words
[
0
]:
self
.
parameters
[
words
[
0
]]
=
" "
.
join
(
words
[
1
:])
f
ile
.
close
()
f
p
.
close
()
def
get_parameter
(
self
,
name
):
if
self
.
parameters
:
...
...
@@ -199,7 +206,7 @@ class ConfigFile:
self
.
save
()
def
save
(
self
):
f
ile
=
open
(
self
.
filename
,
"w"
)
f
p
=
open
(
self
.
filename
,
"w"
)
for
line
in
self
.
config
:
f
ile
.
write
(
line
)
f
ile
.
close
()
f
p
.
write
(
line
)
f
p
.
close
()
hwcompatible/job.py
浏览文件 @
9386cc93
...
...
@@ -50,7 +50,8 @@ class Job(object):
for
parameter_name
,
parameter_value
in
self
.
args
.
test_parameters
:
self
.
test_parameters
[
parameter_name
]
=
parameter_value
def
discover
(
self
,
testname
,
device
,
subtests_filter
=
None
):
@
staticmethod
def
discover
(
testname
,
device
,
subtests_filter
=
None
):
if
not
testname
:
print
(
"testname not specified, discover test failed"
)
return
None
...
...
hwcompatible/log.py
浏览文件 @
9386cc93
...
...
@@ -50,6 +50,7 @@ class Log(object):
self
.
log
.
close
()
self
.
log
=
None
class
Logger
():
def
__init__
(
self
,
logname
,
logdir
,
out
,
err
):
self
.
log
=
Log
(
logname
,
logdir
)
...
...
tests/acpi/acpi.py
浏览文件 @
9386cc93
...
...
@@ -22,7 +22,8 @@ class AcpiTest(Test):
Test
.
__init__
(
self
)
self
.
requirements
=
[
"acpica-tools"
]
def
test
(
self
):
@
staticmethod
def
test
():
try
:
Command
(
"acpidump"
).
echo
()
return
True
...
...
tests/cdrom/cdrom.py
浏览文件 @
9386cc93
...
...
@@ -66,7 +66,8 @@ class CDRomTest(Test):
return
False
return
True
def
get_type
(
self
,
device
):
@
staticmethod
def
get_type
(
device
):
if
not
device
:
return
None
...
...
@@ -196,7 +197,8 @@ class CDRomTest(Test):
print
(
e
)
return
False
def
cmp_tree
(
self
,
dir1
,
dir2
):
@
staticmethod
def
cmp_tree
(
dir1
,
dir2
):
if
not
(
dir1
and
dir2
):
print
(
"Error: invalid input dir."
)
return
False
...
...
tests/clock/clock.py
浏览文件 @
9386cc93
...
...
@@ -21,7 +21,8 @@ clock_dir = os.path.dirname(os.path.realpath(__file__))
class
ClockTest
(
Test
):
def
test
(
self
):
@
staticmethod
def
test
():
return
0
==
os
.
system
(
"cd %s; ./clock"
%
clock_dir
)
...
...
tests/cpufreq/cpufreq.py
浏览文件 @
9386cc93
...
...
@@ -59,7 +59,8 @@ class CPU:
return
True
def
set_freq
(
self
,
freq
,
cpu
=
'all'
):
@
staticmethod
def
set_freq
(
freq
,
cpu
=
'all'
):
cmd
=
Command
(
"cpupower -c %s frequency-set --freq %s"
%
(
cpu
,
freq
))
try
:
cmd
.
run
()
...
...
@@ -68,7 +69,8 @@ class CPU:
print
(
e
)
return
False
def
get_freq
(
self
,
cpu
):
@
staticmethod
def
get_freq
(
cpu
):
cmd
=
Command
(
"cpupower -c %s frequency-info -w"
%
cpu
)
try
:
return
int
(
cmd
.
get_str
(
r
'.* frequency: (?P<freq>\d+) .*'
,
'freq'
,
False
))
...
...
@@ -76,7 +78,8 @@ class CPU:
print
(
e
)
return
False
def
set_governor
(
self
,
governor
,
cpu
=
'all'
):
@
staticmethod
def
set_governor
(
governor
,
cpu
=
'all'
):
cmd
=
Command
(
"cpupower -c %s frequency-set --governor %s"
%
(
cpu
,
governor
))
try
:
cmd
.
run
()
...
...
@@ -85,7 +88,8 @@ class CPU:
print
(
e
)
return
False
def
get_governor
(
self
,
cpu
):
@
staticmethod
def
get_governor
(
cpu
):
cmd
=
Command
(
"cpupower -c %s frequency-info -p"
%
cpu
)
try
:
return
cmd
.
get_str
(
r
'.* governor "(?P<governor>\w+)".*'
,
'governor'
,
False
)
...
...
@@ -93,7 +97,8 @@ class CPU:
print
(
e
)
return
False
def
find_path
(
self
,
parent_dir
,
target_name
):
@
staticmethod
def
find_path
(
parent_dir
,
target_name
):
cmd
=
Command
(
"find %s -name %s"
%
(
parent_dir
,
target_name
))
try
:
cmd
.
run
()
...
...
tests/disk/disk.py
浏览文件 @
9386cc93
...
...
@@ -205,7 +205,8 @@ class DiskTest(Test):
print
(
"#############"
)
return
return_code
def
do_fio
(
self
,
filepath
,
size
,
option
):
@
staticmethod
def
do_fio
(
filepath
,
size
,
option
):
if
os
.
path
.
isdir
(
filepath
):
file_opt
=
"-directory=%s"
%
filepath
else
:
...
...
tests/ipmi/ipmi.py
浏览文件 @
9386cc93
...
...
@@ -22,7 +22,8 @@ class IpmiTest(Test):
Test
.
__init__
(
self
)
self
.
requirements
=
[
"OpenIPMI"
,
"ipmitool"
]
def
start_ipmi
(
self
):
@
staticmethod
def
start_ipmi
():
try
:
Command
(
"systemctl start ipmi"
).
run
()
Command
(
"systemctl status ipmi.service"
).
get_str
(
regex
=
"Active: active"
,
single_line
=
False
)
...
...
@@ -31,7 +32,8 @@ class IpmiTest(Test):
return
False
return
True
def
ipmitool
(
self
):
@
staticmethod
def
ipmitool
():
cmd_list
=
[
"ipmitool fru"
,
"ipmitool sensor"
]
for
cmd
in
cmd_list
:
try
:
...
...
@@ -48,6 +50,7 @@ class IpmiTest(Test):
return
False
return
True
if
__name__
==
"__main__"
:
i
=
IpmiTest
()
i
.
test
()
...
...
tests/memory/memory.py
浏览文件 @
9386cc93
...
...
@@ -162,7 +162,8 @@ class MemoryTest(Test):
return
False
return
True
def
hot_plug_verify
(
self
):
@
staticmethod
def
hot_plug_verify
():
kernel
=
Command
(
"uname -r"
).
read
()
config_file
=
"/boot/config-"
+
kernel
if
not
os
.
path
.
exists
(
config_file
):
...
...
@@ -198,7 +199,8 @@ class MemoryTest(Test):
if
total_mem_3
!=
total_mem_1
:
return
False
def
online_memory
(
self
,
memory_path
):
@
staticmethod
def
online_memory
(
memory_path
):
try
:
Command
(
"echo 1 > %s/online"
%
memory_path
).
run
()
Command
(
"cat %s/state"
%
memory_path
).
get_str
(
"online"
)
...
...
@@ -207,7 +209,8 @@ class MemoryTest(Test):
print
(
"Error: fail to online %s."
%
memory_path
)
return
False
def
offline_memory
(
self
,
memory_path
):
@
staticmethod
def
offline_memory
(
memory_path
):
try
:
Command
(
"echo 0 > %s/online"
%
memory_path
).
run
()
Command
(
"cat %s/state"
%
memory_path
).
get_str
(
"offline"
)
...
...
tests/network/network.py
浏览文件 @
9386cc93
...
...
@@ -48,7 +48,8 @@ class NetworkTest(Test):
self
.
target_bandwidth_percent
=
0.8
self
.
testfile
=
'testfile'
def
ifdown
(
self
,
interface
):
@
staticmethod
def
ifdown
(
interface
):
os
.
system
(
"ip link set down %s"
%
interface
)
for
_
in
range
(
5
):
if
0
==
os
.
system
(
"ip link show %s | grep 'state DOWN'"
%
interface
):
...
...
@@ -56,7 +57,8 @@ class NetworkTest(Test):
time
.
sleep
(
1
)
return
False
def
ifup
(
self
,
interface
):
@
staticmethod
def
ifup
(
interface
):
os
.
system
(
"ip link set up %s"
%
interface
)
for
_
in
range
(
5
):
time
.
sleep
(
1
)
...
...
@@ -64,7 +66,8 @@ class NetworkTest(Test):
return
True
return
False
def
get_other_interfaces
(
self
):
@
staticmethod
def
get_other_interfaces
():
ignore_interfaces
=
[
'^lo'
,
'^v'
,
'docker'
,
'br'
,
'bond'
]
cmd
=
"ip route show default | awk '/default/ {print $5}'"
c
=
Command
(
cmd
)
...
...
tests/nvme/nvme.py
浏览文件 @
9386cc93
...
...
@@ -74,7 +74,8 @@ class NvmeTest(Test):
print
(
e
)
return
False
def
in_use
(
self
,
disk
):
@
staticmethod
def
in_use
(
disk
):
os
.
system
(
"swapon -a 2>/dev/null"
)
swap_file
=
open
(
"/proc/swaps"
,
"r"
)
swap
=
swap_file
.
read
()
...
...
tests/perf/perf.py
浏览文件 @
9386cc93
...
...
@@ -60,6 +60,7 @@ class PerfTest(Test):
return
False
return
True
if
__name__
==
"__main__"
:
main
=
PerfTest
()
main
.
test
()
tests/system/system.py
浏览文件 @
9386cc93
...
...
@@ -58,7 +58,8 @@ class SystemTest(Test):
return
return_code
def
check_certrpm
(
self
):
@
staticmethod
def
check_certrpm
():
print
(
"
\n
Checking installed cert package..."
)
return_code
=
True
for
cert_package
in
[
"oec-hardware"
]:
...
...
@@ -149,7 +150,8 @@ class SystemTest(Test):
return
return_code
def
get_modules
(
self
,
sign
):
@
staticmethod
def
get_modules
(
sign
):
pattern
=
re
.
compile
(
r
"^(?P<mod_name>\w+)[\s\S]+\((?P<signs>[A-Z]+)\)"
)
proc_modules
=
open
(
"/proc/modules"
)
modules
=
list
()
...
...
@@ -208,7 +210,8 @@ class SystemTest(Test):
print
(
""
)
return
True
def
read_abi_whitelist
(
self
,
whitelist
):
@
staticmethod
def
read_abi_whitelist
(
whitelist
):
symbols
=
list
()
if
not
os
.
path
.
isfile
(
whitelist
):
print
(
"Error: Cannot read whitelist file"
)
...
...
@@ -255,7 +258,8 @@ class SystemTest(Test):
nm
.
close
()
return
self
.
readSymbols
(
symbols
)
def
get_modulefile
(
self
,
module
):
@
staticmethod
def
get_modulefile
(
module
):
try
:
modulefile
=
Command
(
"modinfo -F filename %s"
%
module
).
get_str
()
if
os
.
path
.
islink
(
modulefile
):
...
...
@@ -265,7 +269,8 @@ class SystemTest(Test):
print
(
"Error: could no find module file for %s:"
%
module
)
return
None
def
check_selinux
(
self
):
@
staticmethod
def
check_selinux
():
print
(
"
\n
Checking selinux..."
)
status
=
os
.
system
(
"/usr/sbin/sestatus | grep 'SELinux status' | grep -qw 'enabled'"
)
mode
=
os
.
system
(
"/usr/sbin/sestatus | grep 'Current mode' | grep -qw 'enforcing'"
)
...
...
tests/usb/usb.py
浏览文件 @
9386cc93
...
...
@@ -96,10 +96,11 @@ class UsbTest(Test):
devices
=
CertDevice
().
get_devices
()
usb_devices
=
list
()
for
device
in
devices
:
if
(
device
.
get_property
(
"SUBSYSTEM"
)
!=
"usb"
or
\
device
.
get_property
(
"DEVTYPE"
)
!=
"usb_device"
or
\
device
.
get_property
(
"ID_BUS"
)
!=
"usb"
or
\
device
.
get_property
(
"BUSNUM"
)
==
""
or
device
.
get_property
(
"DEVNUM"
)
==
""
):
if
(
device
.
get_property
(
"SUBSYSTEM"
)
!=
"usb"
or
device
.
get_property
(
"DEVTYPE"
)
!=
"usb_device"
or
device
.
get_property
(
"ID_BUS"
)
!=
"usb"
or
device
.
get_property
(
"BUSNUM"
)
==
""
or
device
.
get_property
(
"DEVNUM"
)
==
""
):
continue
else
:
usb_devices
.
append
(
device
.
path
)
...
...
tests/watchdog/watchdog.py
浏览文件 @
9386cc93
...
...
@@ -59,6 +59,7 @@ class WatchDogTest(Test):
print
(
""
)
return
False
def
startup
(
self
):
@
staticmethod
def
startup
():
print
(
"Recover from watchdog."
)
return
True
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录