Upgrade to 1.1.4 version

(cherry picked from commit 7ff9481f4928a64a12c8f3ae0b109fe521058e7d)
This commit is contained in:
cuixucui 2023-02-28 02:51:08 +08:00 committed by openeuler-sync-bot
parent e3148d3688
commit b07b9308e0
6 changed files with 8 additions and 479 deletions

View File

@ -1,24 +0,0 @@
diff -Naur rpm/tests/disk/common.py oech/tests/disk/common.py
--- rpm/tests/disk/common.py 2022-10-26 19:50:53.857748470 +0800
+++ oech/tests/disk/common.py 2022-10-26 19:38:37.545748470 +0800
@@ -39,7 +39,7 @@
command.run_cmd("cat /proc/mdstat")
-def get_disk(logger, command, config_data, pci_num):
+def get_disk(logger, command, config_data, pci_num=""):
"""
Get disk info
"""
diff -Naur rpm/tests/disk/disk.py oech/tests/disk/disk.py
--- rpm/tests/disk/disk.py 2022-10-26 19:50:53.857748470 +0800
+++ oech/tests/disk/disk.py 2022-10-26 19:38:37.545748470 +0800
@@ -42,7 +42,7 @@
"""
Start test
"""
- self.disks = get_disk(self.logger, self.command, self.config_data, self.pci_num)
+ self.disks = get_disk(self.logger, self.command, self.config_data)
if len(self.disks) == 0:
self.logger.error("No suite disk found to test.")
return False

View File

@ -1,303 +0,0 @@
diff -Naur rpm/config/test_config.yaml oech/config/test_config.yaml
--- rpm/config/test_config.yaml 2022-10-24 08:36:33.000000000 +0800
+++ oech/config/test_config.yaml 2022-11-09 17:12:48.008572012 +0800
@@ -3,6 +3,7 @@
#disk: fc\raid\disk testcase need configuration, The disk to be tested, such as sda; Or all, test all qualified disks.
#if_rdma: ethernet testcase need configuration, N means to test according to ordinary network card, y means to test according to RDMA card
#server_ip: ethernet\infiniband testcase need configuration. If the server port is modified, need to add the port number after the IP address. eg: 2.2.2.4:8090.
+# User need to delete the ip manually which are configured by tool after testing.
#clent_ip: ethernet\infiniband testcase need configuration. IP to be configured for the client port
fc:
fc1:
diff -Naur rpm/docs/design_docs/dev_design.md oech/docs/design_docs/dev_design.md
--- rpm/docs/design_docs/dev_design.md 2022-10-24 08:36:33.000000000 +0800
+++ oech/docs/design_docs/dev_design.md 2022-11-09 17:12:48.009572012 +0800
@@ -262,6 +262,7 @@
# client_ip为客户端测试网卡配置的IP
# server_ip为服务端测试网卡配置的IP
# 服务端的端口默认是80如果有修改需要添加上修改后的端口号如下面的eth2示例。
+# 服务端自动配置的IP测试完成后需用户手动删除(ip addr del ip地址 dev 接口)。
ethernet:
# 已手动配置客户端和服务端测试网卡的IP这里需要添加上服务端的IP地址。
eth1:
diff -Naur rpm/hwcompatible/cert_info.py oech/hwcompatible/cert_info.py
--- rpm/hwcompatible/cert_info.py 2022-10-24 08:36:33.000000000 +0800
+++ oech/hwcompatible/cert_info.py 2022-11-09 17:12:48.010572012 +0800
@@ -71,13 +71,13 @@
oec_json["os"] = os_version
curday = date.today().strftime("%Y.%m.%d")
oec_json["date"] = curday
- shanum = self.command.run_cmd(
- "modinfo %s | grep signature | awk '{print $2}'" % device.driver, log_print=False)
- oec_json["sha256"] = shanum[0].replace(":", "").strip("\n")
filename = self.command.run_cmd(
"modinfo %s | grep filename | awk '{print $2}'" % device.driver, log_print=False)
+ shanum = self.command.run_cmd(
+ "sha256sum %s | awk '{print $1}'" % filename[0].strip("\n"), log_print=False)
+ oec_json["sha256"] = shanum[0].strip("\n")
driver_size = self.command.run_cmd(
- "ls -lh %s | awk '{print $5}'" % filename[0], log_print=False)
+ "ls -lh %s | awk '{print $5}'" % filename[0].strip("\n"), log_print=False)
oec_json["driverSize"] = driver_size[0].strip("\n")
oec_json["downloadLink"] = "inbox"
diff -Naur rpm/hwcompatible/command.py oech/hwcompatible/command.py
--- rpm/hwcompatible/command.py 2022-10-24 08:36:33.000000000 +0800
+++ oech/hwcompatible/command.py 2022-11-09 17:12:48.010572012 +0800
@@ -13,9 +13,9 @@
# Create: 2020-04-01
import os
-from signal import signal
-import subprocess
import shlex
+import signal
+import subprocess
from .constants import SHELL_ENV
diff -Naur rpm/hwcompatible/config_ip.py oech/hwcompatible/config_ip.py
--- rpm/hwcompatible/config_ip.py 2022-10-24 08:36:33.000000000 +0800
+++ oech/hwcompatible/config_ip.py 2022-11-09 17:12:48.010572012 +0800
@@ -158,7 +158,8 @@
Configure the IP address of the server.
"""
result = CommandUI().prompt_confirm(
- "Are you sure to configure %s on server port?" % self.server_ip)
+ "Are you sure to configure %s on server port?\n"
+ "After the test, need to manually delete this ip." % self.server_ip)
if not result:
self.logger.warning(
"User won't use the generate IP address, stop the test.")
diff -Naur rpm/README.md oech/README.md
--- rpm/README.md 2022-10-24 08:36:33.000000000 +0800
+++ oech/README.md 2022-11-09 17:12:48.002572012 +0800
@@ -200,9 +200,9 @@
* `/usr/share/oech/kernelrelease.json` 文件中列出了当前支持的所有系统版本,使用`uname -a` 命令确认当前系统内核版本是否属于框架支持的版本。
-* 框架默认会扫描所有网卡,对网卡进行测试前,请自行筛选被测网卡,并给它配上能 `ping` 通服务端的 ip如果客户端是对 InfiniBand 网卡进行测试,服务端也必须有一个 InfiniBand 网卡并提前配好 ip 。建议不要使用业务网口进行网卡测试。
+* 框架默认会扫描所有网卡对网卡进行测试前请自行筛选被测网卡要求测试端口连通状态为up。建议不要使用业务网口进行网卡测试。
-* `/usr/share/oech/lib/config/test_config.yaml ` 是硬件测试项配置文件模板,`fc`、`raid`、`disk`、`ethernet`、`infiniband`硬件测试前需先根据实际环境进行修改,其它硬件测试不需要修改。
+* `/usr/share/oech/lib/config/test_config.yaml ` 是硬件测试项配置文件模板,`fc`、`raid`、`disk`、`ethernet`、`infiniband`硬件测试前需先根据实际环境进行配置其它硬件测试不需要配置。对于网卡测试如果是工具自动添加的IP地址测试完成后为了安全服务端的IP需手动删除。
## 使用步骤
diff -Naur rpm/server/server.py oech/server/server.py
--- rpm/server/server.py 2022-10-24 08:36:33.000000000 +0800
+++ oech/server/server.py 2022-11-09 17:12:48.011572012 +0800
@@ -21,7 +21,6 @@
import base64
import re
import operator
-import stat
from urllib.parse import urlencode
from urllib.request import urlopen, Request
from urllib.error import HTTPError
@@ -33,7 +32,6 @@
dir_server = os.path.dirname(os.path.realpath(__file__))
dir_results = os.path.join(dir_server, 'results')
dir_files = os.path.join(dir_server, 'files')
-ip_file = os.path.join(dir_server, "ip.txt")
@app.errorhandler(400)
@@ -353,8 +351,6 @@
if operator.eq(quad, eval(card_id)):
subprocess.getoutput(
"ifconfig %s:0 %s/24" % (pt, sever_ip))
- with os.fdopen(os.open(ip_file, os.O_WRONLY | os.O_CREAT, stat.S_IRUSR), 'w+') as f:
- f.write('{},{}'.format(pt, sever_ip))
break
return render_template('index.html')
@@ -391,7 +387,6 @@
if cmd[0] == 'all':
for process_name in valid_commands:
__stop_process(process_name)
- __delete_ip()
else:
__stop_process(cmd[0])
else:
@@ -459,19 +454,5 @@
quad.extend([tmp[-3] + tmp[-4], tmp[-1] + tmp[-2]])
return quad
-
-def __delete_ip():
- """
- Delete the IP configured on the server
- """
- if not os.path.exists(ip_file):
- return
-
- with open(ip_file, 'r') as f:
- ip = f.read().split(',')
- subprocess.Popen(['ip', 'addr', 'del', ip[1], "dev", ip[0]])
- os.remove(ip_file)
-
-
if __name__ == '__main__':
app.run(host='0.0.0.0', port=80)
diff -Naur rpm/tests/cdrom/cdrom.py oech/tests/cdrom/cdrom.py
--- rpm/tests/cdrom/cdrom.py 2022-10-24 08:36:33.000000000 +0800
+++ oech/tests/cdrom/cdrom.py 2022-11-09 17:12:48.013572012 +0800
@@ -32,6 +32,9 @@
self.type = None
self.com_ui = CommandUI()
self.test_dir = "/usr/share/doc"
+ read_dir = os.getcwd()
+ self.mnt_dir = os.path.join(read_dir, "mnt_cdrom")
+ self.device_dir = os.path.join(read_dir, "device_dir")
def setup(self, args=None):
"""
@@ -191,29 +194,32 @@
:return:
"""
devname = self.device.get_property("DEVNAME")
- os.mkdir("mnt_cdrom")
-
+ if os.path.exists(self.mnt_dir):
+ shutil.rmtree(self.mnt_dir)
+ os.mkdir(self.mnt_dir)
self.logger.info("Check to mount media.", terminal_print=True)
self.command.run_cmd("umount %s" % devname, ignore_errors=True)
- self.command.run_cmd("mount -o ro %s ./mnt_cdrom" % devname)
+ self.command.run_cmd("mount -o ro %s %s" % (devname, self.mnt_dir))
cmd_result = self.command.run_cmd(
"df %s | tail -n1 | awk '{print $3}'" % devname)
size = int(cmd_result[0])
if size == 0:
self.logger.error("This is a blank disc.")
- self.command.run_cmd("umount ./mnt_cdrom")
- shutil.rmtree("mnt_cdrom")
+ self.command.run_cmd("umount %s" % self.mnt_dir)
+ shutil.rmtree(self.mnt_dir)
return False
- os.mkdir("device_dir")
- self.logger.info("Check to copy files.", ignore_errors=True)
- self.command.run_cmd("cp -dpRf ./mnt_cdrom ./device_dir")
+ if os.path.exists(self.device_dir):
+ shutil.rmtree(self.device_dir)
+ os.mkdir(self.device_dir)
+ self.logger.info("Check to copy files.", terminal_print=True)
+ self.command.run_cmd("cp -dprf %s/. %s" % (self.mnt_dir, self.device_dir))
self.logger.info(
- "Check to compare files in directory.", ignore_errors=True)
- return_code = self.cmp_tree("mnt_cdrom", "device_dir")
- self.command.run_cmd("umount ./mnt_cdrom")
+ "Check to compare files in directory.", terminal_print=True)
+ return_code = self.cmp_tree(self.mnt_dir, self.device_dir)
+ self.command.run_cmd("umount %s" % self.mnt_dir)
if return_code:
self.logger.info("Compare directory succeed.")
else:
@@ -259,7 +265,7 @@
return True
def teardown(self):
- if os.path.exists("mnt_cdrom"):
- shutil.rmtree("mnt_cdrom")
- if os.path.exists("device_dir"):
- shutil.rmtree("device_dir")
+ if os.path.exists(self.mnt_dir):
+ shutil.rmtree(self.mnt_dir)
+ if os.path.exists(self.device_dir):
+ shutil.rmtree(self.device_dir)
diff -Naur rpm/tests/infiniband/infiniband.py oech/tests/infiniband/infiniband.py
--- rpm/tests/infiniband/infiniband.py 2022-10-24 08:36:33.000000000 +0800
+++ oech/tests/infiniband/infiniband.py 2022-11-09 17:12:48.014572012 +0800
@@ -13,7 +13,6 @@
# Create: 2022-05-24
# Desc: InfiniBand Test
-import re
from tests.network.rdma import RDMATest
diff -Naur rpm/tests/network/ethernet.py oech/tests/network/ethernet.py
--- rpm/tests/network/ethernet.py 2022-10-24 08:36:33.000000000 +0800
+++ oech/tests/network/ethernet.py 2022-11-09 17:12:48.023572011 +0800
@@ -27,8 +27,13 @@
"""
path_netdev = ''.join(['/sys', self.device.get_property("DEVPATH")])
path_pci = path_netdev.split('net')[0]
- result = self.command.run_cmd("ls %s | grep -q infiniband" % path_pci)
- return result[2] == 0
+ result = self.command.run_cmd("ls %s | grep -q infiniband" % path_pci, ignore_errors=False)
+ if result[2] == 0:
+ self.logger.info("Current ethernet supports RoCE.")
+ return True
+
+ self.logger.info("Current ethernet doesn't support RoCE, no need test Roce.")
+ return False
def setup(self, args=None):
"""
diff -Naur rpm/tests/network/network.py oech/tests/network/network.py
--- rpm/tests/network/network.py 2022-10-24 08:36:33.000000000 +0800
+++ oech/tests/network/network.py 2022-11-09 17:12:48.023572011 +0800
@@ -138,10 +138,13 @@
self.command.run_cmd("ip link set down %s" % interface)
for _ in range(5):
result = self.command.run_cmd(
- "ip link show %s | grep 'state DOWN'" % interface)
+ "ip link show %s | grep 'state DOWN'" % interface, ignore_errors=False)
if result[2] == 0:
+ self.logger.info("Set interface %s down succeed." % self.interface)
return True
time.sleep(1)
+
+ self.logger.error("Set interface %s down failed." % self.interface)
return False
def ifup(self, interface):
@@ -153,11 +156,13 @@
self.command.run_cmd("ip link set up %s" % interface)
for _ in range(5):
result = self.command.run_cmd(
- "ip link show %s | grep 'state UP'" % interface)
+ "ip link show %s | grep 'state UP'" % interface, ignore_errors=False)
if result[2] == 0:
+ self.logger.info("Set interface %s up succeed." % self.interface)
return True
time.sleep(1)
+ self.logger.error("Set interface %s up failed." % self.interface)
return False
def get_speed(self):
@@ -419,14 +424,12 @@
Test eth link
:return:
"""
- self.logger.info("Setting interface %s down..." % self.interface)
+ self.logger.info("Setting interface %s down." % self.interface)
if not self.ifdown(self.interface):
- self.logger.error("Set interface %s down failed." % self.interface)
return False
- self.logger.info("Setting interface %s up..." % self.interface)
+ self.logger.info("Setting interface %s up." % self.interface)
if not self.ifup(self.interface):
- self.logger.error("Set interface %s up failed." % self.interface)
return False
self.speed = self.get_speed()
diff -Naur rpm/tests/system/system.py oech/tests/system/system.py
--- rpm/tests/system/system.py 2022-10-24 08:36:33.000000000 +0800
+++ oech/tests/system/system.py 2022-11-09 17:12:48.024572011 +0800
@@ -57,7 +57,7 @@
flag = True
for cert_package in ["oec-hardware"]:
rpm_verify = self.command.run_cmd(
- "rpm -V --nomtime --nomode --nocontexts %s" % cert_package)
+ "rpm -V --nomtime --nomode --nocontexts %s" % cert_package, ignore_errors=True)
if rpm_verify[2] == 0:
continue

View File

@ -1,144 +0,0 @@
diff -Naur rpm/config/pci.ids oech/config/pci.ids
--- rpm/config/pci.ids 2022-10-24 08:36:33.000000000 +0800
+++ oech/config/pci.ids 2022-12-13 10:13:13.228273472 +0800
@@ -20115,7 +20115,8 @@
15b3 0113 MCX565M-CDAB
101a MT28800 Family [ConnectX-5 Ex Virtual Function]
101b MT28908 Family [ConnectX-6]
- 15b3 0006 MCX653105A-EFAT
+ 15b3 0006 MCX653105A-ECAT
+ 15b3 0029 MCX653105A-EFAT
101c MT28908 Family [ConnectX-6 Virtual Function]
101d MT2892 Family [ConnectX-6 Dx]
101e ConnectX Family mlx5Gen Virtual Function
diff -Naur rpm/docs/design_docs/dev_design.md oech/docs/design_docs/dev_design.md
--- rpm/docs/design_docs/dev_design.md 2022-12-13 17:29:04.328175692 +0800
+++ oech/docs/design_docs/dev_design.md 2022-12-13 10:13:13.228273472 +0800
@@ -321,6 +321,7 @@
| 16 | `CertEnv()` | 工具环境信息模块 | 提供工具文件环境路径 |
| 17 | `SysInfo()` | 系统信息模块 | 系统信息获取 |
| 18 | `ConfigIP()` | 网卡IP配置模块 | 查询并配置网卡IP |
+| 19 | `CertInfo()` | 兼容性信息收集模块 | 自动收集并生成兼容性信息文件 |
### 3.6 web服务接口清单
diff -Naur rpm/hwcompatible/common.py oech/hwcompatible/common.py
--- rpm/hwcompatible/common.py 2022-10-24 08:36:33.000000000 +0800
+++ oech/hwcompatible/common.py 2022-12-13 10:13:13.232273494 +0800
@@ -21,7 +21,8 @@
import importlib
from .test import Test
from .env import CertEnv
-from .constants import NODEVICE
+from .constants import NODEVICE, TEST_KABI_ARCH
+from .command import Command
def create_test_suite(test_factory, logger, subtests_filter=None):
@@ -53,7 +54,9 @@
if test["name"] == "kabi":
kabi_test = test
- if kabi_select:
+ command = Command(logger)
+ arch = command.run_cmd("uname -m")[0].strip()
+ if kabi_select and arch in TEST_KABI_ARCH:
logger.info("The hardware will test kabi automatically.")
kabi_test["run"] = True
testcase = __create_testcase(kabi_test, logger, subtests_filter)
diff -Naur rpm/hwcompatible/constants.py oech/hwcompatible/constants.py
--- rpm/hwcompatible/constants.py 2022-10-24 08:36:33.000000000 +0800
+++ oech/hwcompatible/constants.py 2022-12-13 10:13:13.232273494 +0800
@@ -26,6 +26,7 @@
VERSION = "driverVersion"
NODEVICE = ("cpufreq", "memory", "clock", "profiler", "system",
"stress", "kdump", "perf", "acpi", "watchdog", "kabi")
+TEST_KABI_ARCH = ("aarch64", "x86_64")
CDTYPES = ("DVD_RW", "DVD_PLUS_RW", "DVD_R", "DVD_PLUS_R", "DVD",
"BD_RE", "BD_R", "BD", "CD_RW", "CD_R", "CD")
GPU_DRIVER = ("nouveau", "nvidia", "bi_driver", "amdgpu")
diff -Naur rpm/oec-hardware.spec oech/oec-hardware.spec
--- rpm/oec-hardware.spec 2022-10-24 08:36:33.000000000 +0800
+++ oech/oec-hardware.spec 2022-12-13 10:13:13.232273494 +0800
@@ -37,6 +37,7 @@
%setup -q -c
%build
+strip tests/keycard/libswsds_%{_arch}.so
[ "$RPM_BUILD_ROOT" != "/" ] && [ -d $RPM_BUILD_ROOT ] && rm -rf $RPM_BUILD_ROOT;
DESTDIR=$RPM_BUILD_ROOT VERSION_RELEASE=%{version} make
diff -Naur rpm/README.md oech/README.md
--- rpm/README.md 2022-12-13 17:29:04.328175692 +0800
+++ oech/README.md 2022-12-13 10:13:13.224273450 +0800
@@ -314,9 +314,11 @@
- oec-hardware-server 生成的html测试报告
- - 兼容性清单文件请参考templates目录下的模板)
+ - 兼容性清单文件
- 整机适配需要测试至少一张RAID卡、一张网卡并提供对应的信息。
+ oec-hardware 执行结束后会自动为测试通过的硬件生成兼容性信息文件`hw_compatibility.json`请参考该文件填写templates目录下的模板然后上传填写的模板文件。
+
+ 整机适配需要测试至少一张RAID卡、一张网卡并提供对应的信息。
# 测试项介绍
diff -Naur rpm/tests/kabi/kabi.py oech/tests/kabi/kabi.py
--- rpm/tests/kabi/kabi.py 2022-10-24 08:36:33.000000000 +0800
+++ oech/tests/kabi/kabi.py 2022-12-13 10:13:13.236273516 +0800
@@ -19,6 +19,7 @@
from hwcompatible.env import CertEnv
from hwcompatible.command import Command
from hwcompatible.test import Test
+from hwcompatible.constants import TEST_KABI_ARCH
kabi_dir = os.path.dirname(os.path.realpath(__file__))
@@ -55,6 +56,11 @@
Run kabi test case
return: result
"""
+ arch = self.command.run_cmd("uname -m")[0].strip()
+ if arch not in TEST_KABI_ARCH:
+ self.logger.info(" %s architecture does not support kabi testing." % arch)
+ return True
+
result = True
os_version = getoutput(
"grep openeulerversion /etc/openEuler-latest | awk -F = '{print $2}'")
@@ -125,7 +131,7 @@
def _get_kernel_source_rpm(self, arch):
standard_kernel_version = getoutput(
- "dnf list --repo=source | grep kernel.src | head -n 1 | awk '{print $2}'")
+ "dnf list --repo=source | grep '^kernel.src' | awk '{print $2}'")
rpmpath = "/root/rpmbuild/SOURCES"
standard_symvers = os.path.join(rpmpath, "Module.kabi_" + arch)
if os.path.exists(standard_symvers):
diff -Naur rpm/tests/memory/memory.py oech/tests/memory/memory.py
--- rpm/tests/memory/memory.py 2022-10-24 08:36:33.000000000 +0800
+++ oech/tests/memory/memory.py 2022-12-13 10:13:13.244273560 +0800
@@ -65,7 +65,7 @@
if not self.hugetlb_test():
self.logger.error("Hugepages test failed.")
return False
- self.logger.error("Hugepages test succeed.")
+ self.logger.info("Hugepages test succeed.")
return True
diff -Naur rpm/tests/nvme/nvme.py oech/tests/nvme/nvme.py
--- rpm/tests/nvme/nvme.py 2022-10-24 08:36:33.000000000 +0800
+++ oech/tests/nvme/nvme.py 2022-12-13 10:13:13.248273582 +0800
@@ -63,7 +63,8 @@
elif size > 128 * 1024:
size = 128 * 1024
- size_per_block = int(self.command.run_cmd("nvme list | grep %s | awk '{print $10}'" % disk)[0])
+ size_per_block = int(self.command.run_cmd("nvme list -o json /dev/%s | grep SectorSize "
+ "| awk -F : '{print $2}'" % disk)[0].strip())
block_num = 1
if size_per_block != 0:
block_num = int(int(size) / size_per_block) - 1

View File

@ -3,17 +3,14 @@
Name: oec-hardware
Summary: openEuler Hardware Compatibility Test Suite
Version: 1.1.3
Release: 3
Version: 1.1.4
Release: 0
Group: Development/Tools
License: Mulan PSL v2
URL: https://gitee.com/openeuler/oec-hardware
Source0: https://gitee.com/openeuler/oec-hardware/repository/archive/v%{version}.tar.gz
# patch fix issue
Patch0001: oec-hardware-1.1.3-fix-disk.patch
Patch0002: oec-hardware-1.1.3-fix-network-cdrom-bug-update-log-print.patch
Patch0003: oec-hardware-1.1.3-fixbug-optimize.patch
Buildroot: %{_tmppath}/%{name}-%{version}-root
BuildRequires: gcc
@ -37,9 +34,6 @@ openEuler Hardware Compatibility Test Server
%prep
%setup -q -c
%patch1 -p1
%patch2 -p1
%patch3 -p1
%build
strip tests/keycard/libswsds_%{_arch}.so
@ -82,6 +76,12 @@ DESTDIR=$RPM_BUILD_ROOT make install
rm -rf /var/lock/oech.lock
%changelog
* Tue Feb 28 2023 cuixucui <cuixucui1@h-partner.com> - 1.1.4-0
- Add board information in the test report
- Add spdk test case
- Add dpdk test case
- Update pci.ids file
* Tue Dec 13 2022 liqiang <liqiang332@h-partner.com> - 1.1.3-3
- Fix libswsds.so not stripped
- Fix the value of kernel.src obtained by the kabi test case is incorrect

Binary file not shown.

BIN
v1.1.4.tar.gz Normal file

Binary file not shown.