diff --git a/docs/zh/docs/certification/figures/0690939843730385b79e4cd21d504059.png b/docs/zh/docs/certification/figures/0690939843730385b79e4cd21d504059.png new file mode 100644 index 0000000000000000000000000000000000000000..987f57873ce86442fab32785a2576957729e0b7c Binary files /dev/null and b/docs/zh/docs/certification/figures/0690939843730385b79e4cd21d504059.png differ diff --git a/docs/zh/docs/certification/figures/171f947111911ab0e662e2d7d802c86a.png b/docs/zh/docs/certification/figures/171f947111911ab0e662e2d7d802c86a.png new file mode 100644 index 0000000000000000000000000000000000000000..a26be78a8413f9370f1f68ca928b0e8544f58ca3 Binary files /dev/null and b/docs/zh/docs/certification/figures/171f947111911ab0e662e2d7d802c86a.png differ diff --git a/docs/zh/docs/certification/figures/17cbce82b9379286ad4cb1e77833538a.png b/docs/zh/docs/certification/figures/17cbce82b9379286ad4cb1e77833538a.png new file mode 100644 index 0000000000000000000000000000000000000000..35b4360f7f4a1663d19a53e9d7664e17a8974dbc Binary files /dev/null and b/docs/zh/docs/certification/figures/17cbce82b9379286ad4cb1e77833538a.png differ diff --git a/docs/zh/docs/certification/figures/1ba51dfdafc88634029eea1fb0337f4f.png b/docs/zh/docs/certification/figures/1ba51dfdafc88634029eea1fb0337f4f.png new file mode 100644 index 0000000000000000000000000000000000000000..acd8c34910bf1dba03a562640b293e1463ea18ff Binary files /dev/null and b/docs/zh/docs/certification/figures/1ba51dfdafc88634029eea1fb0337f4f.png differ diff --git a/docs/zh/docs/certification/figures/222ce6304c11c1f08232890ef4c3fe06.png b/docs/zh/docs/certification/figures/222ce6304c11c1f08232890ef4c3fe06.png new file mode 100644 index 0000000000000000000000000000000000000000..15c7e1674e41ac164560b34ec0804bd0dd2daf28 Binary files /dev/null and b/docs/zh/docs/certification/figures/222ce6304c11c1f08232890ef4c3fe06.png differ diff --git a/docs/zh/docs/certification/figures/2345e6304c11c1f08232890ef4c3fe06.png b/docs/zh/docs/certification/figures/2345e6304c11c1f08232890ef4c3fe06.png new file mode 100644 index 0000000000000000000000000000000000000000..103772dda69538a4c7be5c4e42de83c8febcb6a0 Binary files /dev/null and b/docs/zh/docs/certification/figures/2345e6304c11c1f08232890ef4c3fe06.png differ diff --git a/docs/zh/docs/certification/figures/3238b62e2848115d441eb30d7ab17681.png b/docs/zh/docs/certification/figures/3238b62e2848115d441eb30d7ab17681.png new file mode 100644 index 0000000000000000000000000000000000000000..faeb07403f1cf116662fc379516a2bab79d37da5 Binary files /dev/null and b/docs/zh/docs/certification/figures/3238b62e2848115d441eb30d7ab17681.png differ diff --git a/docs/zh/docs/certification/figures/446a61dbb880c4e40e5c54e7eb305427.png b/docs/zh/docs/certification/figures/446a61dbb880c4e40e5c54e7eb305427.png new file mode 100644 index 0000000000000000000000000000000000000000..04be72c75fa7b3f829e48943b04d6140d8da7ce7 Binary files /dev/null and b/docs/zh/docs/certification/figures/446a61dbb880c4e40e5c54e7eb305427.png differ diff --git a/docs/zh/docs/certification/figures/4dfbf191b6d574d05b925f2a72ff1a26.png b/docs/zh/docs/certification/figures/4dfbf191b6d574d05b925f2a72ff1a26.png new file mode 100644 index 0000000000000000000000000000000000000000..ab335f055ca24efe50ea6755847f45309e04f21a Binary files /dev/null and b/docs/zh/docs/certification/figures/4dfbf191b6d574d05b925f2a72ff1a26.png differ diff --git a/docs/zh/docs/certification/figures/5af0166ab06e30d2483ef6f442811cd1.png b/docs/zh/docs/certification/figures/5af0166ab06e30d2483ef6f442811cd1.png new file mode 100644 index 0000000000000000000000000000000000000000..aa57a0ba81359396dd8166460f35eaa550dba28b Binary files /dev/null and b/docs/zh/docs/certification/figures/5af0166ab06e30d2483ef6f442811cd1.png differ diff --git a/docs/zh/docs/certification/figures/68d556565c59f7819326a9b6a1c364a5.png b/docs/zh/docs/certification/figures/68d556565c59f7819326a9b6a1c364a5.png new file mode 100644 index 0000000000000000000000000000000000000000..cf02e181d6b2cda3b84cedd7ff2439008c3dc384 Binary files /dev/null and b/docs/zh/docs/certification/figures/68d556565c59f7819326a9b6a1c364a5.png differ diff --git a/docs/zh/docs/certification/figures/72287e9eac379e88d9f6e70a0fd0a82a.png b/docs/zh/docs/certification/figures/72287e9eac379e88d9f6e70a0fd0a82a.png new file mode 100644 index 0000000000000000000000000000000000000000..1390252d26f8c431c0aeef60204b9d40dced612a Binary files /dev/null and b/docs/zh/docs/certification/figures/72287e9eac379e88d9f6e70a0fd0a82a.png differ diff --git a/docs/zh/docs/certification/figures/805b547fdd5f083ec5bdaf14f70c8709.png b/docs/zh/docs/certification/figures/805b547fdd5f083ec5bdaf14f70c8709.png new file mode 100644 index 0000000000000000000000000000000000000000..d63d0852c72d480712df5a6b87d817e264d5206f Binary files /dev/null and b/docs/zh/docs/certification/figures/805b547fdd5f083ec5bdaf14f70c8709.png differ diff --git a/docs/zh/docs/certification/figures/8257c421f3e44c53246752925c67f43f.png b/docs/zh/docs/certification/figures/8257c421f3e44c53246752925c67f43f.png new file mode 100644 index 0000000000000000000000000000000000000000..760ce368ca0c6adafbc35bbbbd7f571429585487 Binary files /dev/null and b/docs/zh/docs/certification/figures/8257c421f3e44c53246752925c67f43f.png differ diff --git a/docs/zh/docs/certification/figures/8a844cc8f6d5083ac494ff5938ccf6ab.png b/docs/zh/docs/certification/figures/8a844cc8f6d5083ac494ff5938ccf6ab.png new file mode 100644 index 0000000000000000000000000000000000000000..bcea1a2d2ce9313b941da9b0a4eb0274b5bd8796 Binary files /dev/null and b/docs/zh/docs/certification/figures/8a844cc8f6d5083ac494ff5938ccf6ab.png differ diff --git a/docs/zh/docs/certification/figures/a0edd4aec65418587c8b47c16e4ef274.png b/docs/zh/docs/certification/figures/a0edd4aec65418587c8b47c16e4ef274.png new file mode 100644 index 0000000000000000000000000000000000000000..9a34b9f1e60137939c62cf81fdcdf10d8501a427 Binary files /dev/null and b/docs/zh/docs/certification/figures/a0edd4aec65418587c8b47c16e4ef274.png differ diff --git a/docs/zh/docs/certification/figures/a795a7e01a6d22e6f0889c424eed33af.png b/docs/zh/docs/certification/figures/a795a7e01a6d22e6f0889c424eed33af.png new file mode 100644 index 0000000000000000000000000000000000000000..b7ccad2e2e50623aae240e66727d758e84760f09 Binary files /dev/null and b/docs/zh/docs/certification/figures/a795a7e01a6d22e6f0889c424eed33af.png differ diff --git a/docs/zh/docs/certification/figures/acd692cfed9c6c69b6130831b3cc0d64.png b/docs/zh/docs/certification/figures/acd692cfed9c6c69b6130831b3cc0d64.png new file mode 100644 index 0000000000000000000000000000000000000000..788da6e97239a42cb62afb9aa9e02dd125eb07c5 Binary files /dev/null and b/docs/zh/docs/certification/figures/acd692cfed9c6c69b6130831b3cc0d64.png differ diff --git a/docs/zh/docs/certification/figures/b8746f18193a74d78e134e48fe305a0c.png b/docs/zh/docs/certification/figures/b8746f18193a74d78e134e48fe305a0c.png new file mode 100644 index 0000000000000000000000000000000000000000..51e1296715b23192308e96b624740f4f9610b4a6 Binary files /dev/null and b/docs/zh/docs/certification/figures/b8746f18193a74d78e134e48fe305a0c.png differ diff --git a/docs/zh/docs/certification/figures/c13a837bb42a395df9865931ebcf23ab.png b/docs/zh/docs/certification/figures/c13a837bb42a395df9865931ebcf23ab.png new file mode 100644 index 0000000000000000000000000000000000000000..bc25fa72c02e3b38c6e69dd1a8dbd9ba24f0ea1c Binary files /dev/null and b/docs/zh/docs/certification/figures/c13a837bb42a395df9865931ebcf23ab.png differ diff --git a/docs/zh/docs/certification/figures/c2a52ef70ae2b9ada562a623a492c64f.png b/docs/zh/docs/certification/figures/c2a52ef70ae2b9ada562a623a492c64f.png new file mode 100644 index 0000000000000000000000000000000000000000..c00c50d44cdd30edfccfe453dc5ca9b23ada2f1b Binary files /dev/null and b/docs/zh/docs/certification/figures/c2a52ef70ae2b9ada562a623a492c64f.png differ diff --git a/docs/zh/docs/certification/figures/d28d66a605aa980563a72f07c0220bae.png b/docs/zh/docs/certification/figures/d28d66a605aa980563a72f07c0220bae.png new file mode 100644 index 0000000000000000000000000000000000000000..c74b7321dc524bea83a9be6d4492762d93631136 Binary files /dev/null and b/docs/zh/docs/certification/figures/d28d66a605aa980563a72f07c0220bae.png differ diff --git a/docs/zh/docs/certification/figures/ec46ba2ca4b8f9b57c5c5f0d97ec2482.png b/docs/zh/docs/certification/figures/ec46ba2ca4b8f9b57c5c5f0d97ec2482.png new file mode 100644 index 0000000000000000000000000000000000000000..2609da3df7502292c505f74dad14c2a657d6da03 Binary files /dev/null and b/docs/zh/docs/certification/figures/ec46ba2ca4b8f9b57c5c5f0d97ec2482.png differ diff --git a/docs/zh/docs/certification/figures/fa46b29668836f5dc009d17b71e8275e.png b/docs/zh/docs/certification/figures/fa46b29668836f5dc009d17b71e8275e.png new file mode 100644 index 0000000000000000000000000000000000000000..b78855df159f8fe293d0d76ad6e06057db5e5f23 Binary files /dev/null and b/docs/zh/docs/certification/figures/fa46b29668836f5dc009d17b71e8275e.png differ diff --git a/docs/zh/docs/certification/figures/fff3093b3569cfe731087db579cf95df.png b/docs/zh/docs/certification/figures/fff3093b3569cfe731087db579cf95df.png new file mode 100644 index 0000000000000000000000000000000000000000..6778a80885b2699b1c1a23ed8e7bfc445d63d4db Binary files /dev/null and b/docs/zh/docs/certification/figures/fff3093b3569cfe731087db579cf95df.png differ diff --git "a/docs/zh/docs/certification/openEuler\346\212\200\346\234\257\346\265\213\350\257\204\346\214\207\345\257\274\344\271\246.md" "b/docs/zh/docs/certification/openEuler\346\212\200\346\234\257\346\265\213\350\257\204\346\214\207\345\257\274\344\271\246.md" new file mode 100644 index 0000000000000000000000000000000000000000..7578ca07d913ceed1f1a07cffa8659406a420fb5 --- /dev/null +++ "b/docs/zh/docs/certification/openEuler\346\212\200\346\234\257\346\265\213\350\257\204\346\214\207\345\257\274\344\271\246.md" @@ -0,0 +1,1003 @@ +目 录 + +[1 概述 1](#_Toc256000000) + +[1.1 目的 1](#_Toc256000001) + +[1.2 适用范围 1](#_Toc256000002) + +[1.3 定义 1](#_Toc256000003) + +[2 openEuler技术测评场景说明 3](#_Toc256000004) + +[2.1 技术测评 3](#_Toc256000005) + +[2.1.1 场景说明 3](#场景说明) + +[2.1.2 流程说明 5](#软件硬件测评流程说明) + +[2.1.2.1 整体流程 5](#整体流程) + +[2.1.2.2 流程节点说明 5](#流程节点说明) + +[2.2 交叉测评 5](#_Toc256000010) + +[2.2.1 场景说明 5](#_Toc256000011) + +[2.2.2 整体流程 5](#_Toc256000012) + +[2.2.3 流程节点说明 5](#_Toc256000013) + +[3 测试标准和测试工具 6](#_Toc256000014) + +[3.1 ISV 6](#_Toc256000015) + +[3.1.1 测试用例 6](#_Toc256000016) + +[3.1.2 测试工具 6](#测试步骤) + +[3.2 IHV 6](#_Toc256000018) + +[3.2.1 测试用例 6](#测试标准) + +[3.2.2 测试工具 6](#测试步骤-1) + +[3.3 OSV 6](#_Toc256000021) + +[3.3.1 测试用例 6](#测试标准-1) + +[3.3.2 测试工具 7](#测试步骤-2) + +[4 平台操作指导 8](#_Toc256000024) + +[4.1 用户注册 8](#_Toc256000025) + +[4.2 企业认证 8](#_Toc256000026) + +[4.3 测评申请 8](#_Toc256000027) + +[4.4 测评审批 8](#_Toc256000028) + +[5 附录 9](#_Toc256000029) + +[5.1 测试报告模板 9](#_Toc256000030) + +[5.1.1 ISV 9](#_Toc256000031) + +[5.1.2 IHV 9](#_Toc256000032) + +[5.1.3 OSV 9](#_Toc256000033) + +[5.2 FAQ 9](#_Toc256000034) + +# 概述 + +[1.1 目的](#目的) + +[1.2 适用范围](#适用范围) + +[1.3 定义](#定义) + +## 目的 + +openEuler技术测评,是openEuler社区面向产业伙伴提供的一项技术性服务,由openEuler社区针对伙伴产品进行集成、构建、测试和验证,以证明伙伴产品与openEuler操作系统间的技术关系,以及伙伴基于openEuler的产品构建能力,帮助伙伴为客户提供更好的解决方案。 + +openEuler技术测评,是openEuler社区针对使用openEuler OS的生态伙伴解决方案的技术测评服务。本文描述了openEuler技术测评标准,本标准不仅仅适用于openEuler社区,也适用于获得欧拉社区授权,开展openEuler技术测评活动的测试机构(如欧拉生态创新中心等)。本文档旨在提供统一的测试标准、流程和测试工具,简化伙伴测试的复杂度。 + +## 适用范围 + +本文档描述范围是openEuler技术测评。适用但不限于如下组织: + +- openEuler社区授权的测试/测评机构,openEuler兼容性SIG组; +- 各地域openEuler创新中心,生态实验室; + +## 定义 + +| **术语** | **释义** | +| ----------------- | ------------------------------------------------------------ | +| openEuler技术测评 | openEuler社区针对使用openEuler OS的生态伙伴解决方案的技术测评服务。 | +| ISV | 独立软件开发商。 | +| IHV | 独立硬件厂商。 | +| OSV | 操作系统供应商。 | + +# openEuler技术测评场景说明 + +[2.1 技术测评](#技术测评) + +[2.2 交叉测评](#测试标准和测试工具) + +## 技术测评 + +### 场景说明 + +openEuler是面向商业软件、硬件、操作系统发行版及开发openEuler Compatible技术测评项目,根据证书类型,分为通用证书及OS证书。 + +| **证书类型** | **证明效力** | **测评场景** | +| ----------------------------------------- | ------------------------------------ | ------------------------------------------------------------ | +| openEuler技术测评 通用证书 (软件、硬件) | 伙伴产品兼容 openEuler社区发行版 | 针对软件伙伴产品(除操作系统外),硬件伙伴的产品(整机或板卡),基于openEuler社区发行版在多样性算力平台上进行兼容性测评,满足openEuler技术测评标准后,可申请获取openEuler技术测评通用证书。 | +| openEuler技术测评OS证书 | 伙伴发行版兼容 openEuler社区技术路线 | 伙伴openEuler商业发行版及企业自用版操作系统,在多样性算力平台下,进行兼容性测试验证,满足openEuler系OS技术测评标准后,可申请openEuler技术测评OS证书。 | + +证书样式如下: + +| **通用证书首页** | ![](figures/17cbce82b9379286ad4cb1e77833538a.png) | +|------------------|-------------------------------------------------| +| **OS证书首页** | ![](figures/a795a7e01a6d22e6f0889c424eed33af.png) | +| **证书背面** | ![](figures/fa46b29668836f5dc009d17b71e8275e.png) | + +### 软件&硬件测评流程说明 + +#### 整体流程 + +![](figures/8257c421f3e44c53246752925c67f43f.png) + +> 说明: +> +> 申请技术测评需先完成帐号注册、完善企业信息,签署CLA协议(步骤001-004)。如已完成上述步骤001-004,可直接提交技术测评申请(步骤005)。 + + + +#### 流程节点说明 + +| **活动序号** | **活动属性** | **内容** | +| ------------ | ------------ | ------------------------------------------------------------ | +| **001** | **活动名称** | 账号注册。 | +| | **活动描述** | 申请测评企业需先在技术测评平台:[https://certification.openeuler.org](https://certification.openeuler.org/),进行帐号注册,提交姓名、手机号/邮箱、验证密码,同意隐私声明和兼容性协议,验证完成后,完成帐号注册。 | +| | **责任角色** | 测评企业。 | +| | **参与角色** | - | +| **002** | **活动名称** | 签署CLA协议。 | +| | **活动描述** | 完成帐号注册后登录测评平台,测评企业需完成CLA签署,才能进行后续操作,CLA签署攻略:,测评企业请签署企业CLA或企业员工CLA。 注意:签署CLA无需测评企业贡献代码和技术测评的测试报告等信息至社区,默认仅贡献兼容性清单。如有特殊需求,可在技术测评申请流程中,选择不发布到兼容性清单。 | +| | **责任角色** | 测评企业。 | +| | **参与角色** | - | +| **003** | **活动名称** | 完善企业信息。 | +| | **活动描述** | 完成CLA签署后,测评企业需完善企业信息,需提交企业LOGO、工商注册国家/地区、企业邮箱、营业执照等信息,用以确认当前申请人确实获得企业授权进行技术测评。 | +| | **责任角色** | 测评企业。 | +| | **参与角色** | - | +| **004** | **活动名称** | 资质审核。 | +| | **活动描述** | 测评企业完善企业信息后,平台会自动对提交信息进行校验,确认邮箱、企业资质等无误后,完成企业资质审核。 | +| | **责任角色** | openEuler社区。 | +| | **参与角色** | - | +| **005** | **活动名称** | 申请测评。 | +| | **活动描述** | 申请测评企业产品类型,选择待测评的产品和解决方案,并填写产品相关信息,提交测评申请。测评申请平台:。 | +| | **责任角色** | 测评企业。 | +| | **参与角色** | - | +| **006** | **活动名称** | 方案审核。 | +| | **活动描述** | openEuler社区接收到测评申请后,需审核测评方案合理性:审核测评方案是否和已有测评重复、测评方案是否符合技术测评范畴、测评评方案必备信息的完整性和内容质量。 | +| | **责任角色** | openEuler社区。 | +| | **参与角色** | - | +| **007** | **活动名称** | 发放环境。 | +| | **活动描述** | 测评审核通过后,openEuler社区会引导测评企业按照测评标准进行测试,测评企业如无测试条件,可提交资源申请。 对于商业软件,openEuler社区或创新中心会发放服务器作为测试环境。对于整机&板卡,openEuler社区或创新中心可接收整机/板卡,协助测评企业测试。 | +| | **责任角色** | openEuler社区/创新中心。 | +| | **参与角色** | - | +| **008** | **活动名称** | 迁移适配。 | +| | **活动描述** | 测评企业依靠测评方案对测评产品完成openEuler适配 ,确保产品功能正常。 | +| | **责任角色** | 测评企业。 | +| | **参与角色** | openEuler社区,创新中心。 | +| **009** | **活动名称** | 测试执行。 | +| | **活动描述** | 测评企业依靠测评方案对测评产品完成技术测评用例测试,验证用例是否通过。 | +| | **责任角色** | 测评企业。 | +| | **参与角色** | openEuler社区,创新中心。 | +| **010** | **活动名称** | 测试结果收集提交。 | +| | **活动描述** | 完成测试并自检通过后,测评企业需收集测试日志,并提交到测评平台。 | +| | **责任角色** | 测评企业。 | +| | **参与角色** | openEuler社区,创新中心。 | +| **011** | **活动名称** | 生成测试报告。 | +| | **活动描述** | 测评平台接收到测评企业提交的测试日志后,根据规则分析日志并生成测试报告。 | +| | **责任角色** | openEuler社区。 | +| | **参与角色** | - | +| **012** | **活动名称** | 测试报告初审。 | +| | **活动描述** | 测试报告生成后,创新中心需根据测评方案和测评标准,对测试报告进行审核。如果测试用例均通过且满足测评标准,则通过复审。如果存在失败用例或不满足测评标准,则驳回到伙伴重新测试提交测试日志。 | +| | **责任角色** | 创新中心。 | +| | **参与角色** | - | +| **013** | **活动名称** | 测试报告复审。 | +| | **活动描述** | 创新中心初审报告通过后,由openEuler社区进行报告的最终审核,确认满足测评标准后,完成测试报告复审。 | +| | **责任角色** | openEuler社区。 | +| | **参与角色** | - | +| **014** | **活动名称** | 证书初审。 | +| | **活动描述** | 基于测试报告审核意见给出测评证书签发意见,完成openEuler社区侧证书初审。 | +| | **责任角色** | openEuler社区。 | +| | **参与角色** | - | +| **015** | **活动名称** | 伙伴确认。 | +| | **活动描述** | 测评企业从测评平台预览测评证书,完成测评企业侧领导签发,将签名或扫描件上传到测评平台。 | +| | **责任角色** | 测评企业。 | +| | **参与角色** | - | +| **016** | **活动名称** | 证书签发。 | +| | **活动描述** | openEuler社区下载测评企业签发后的测评证书,需确认证书内容的一致性和正确性: 1、双方领导签名的正确性和大小规格一致性 ,2、测评企业软件名称、版本正确性, 3、测评企业公司名称正确性和一致性。 | +| | **责任角色** | openEuler社区。 | +| | **参与角色** | - | +| **017** | **活动名称** | 兼容清单刷新。 | +| | **活动描述** | 证书签发完成后,如果测评伙伴在测评流程选择发布兼容性清单,测评平台自动将兼容性信息发布到openEuler官网兼容性列表。 | +| | **责任角色** | openEuler社区。 | +| | **参与角色** | - | + +### 操作系统测评流程说明 + +#### 整体流程 + +![](figures/3238b62e2848115d441eb30d7ab17681.png) + +> 说明: +> +> 申请技术测评需先完成帐号注册、完善企业信息及签署CLA协议(步骤001-004)。如已完成上述步骤001-004,可直接提交技术测评申请(步骤005)。 + +#### 流程节点说明 + +| **活动序号** | **活动属性** | **内容** | +| ------------ | ------------ | ------------------------------------------------------------ | +| **001** | **活动名称** | 账号注册。 | +| | **活动描述** | 申请测评企业需先在技术测评平台:[https://certification.openeuler.org](https://certification.openeuler.org/),进行帐号注册,提交姓名、手机号/邮箱、验证密码,同意隐私声明和兼容性协议,验证完成后,完成帐号注册。 | +| | **责任角色** | 测评企业。 | +| | **参与角色** | - | +| **002** | **活动名称** | 签署CLA协议。 | +| | **活动描述** | 完成账号注册并登录测评平台后,测评企业需完成CLA签署,才能进行后续操作,CLA签署攻略:,测评企业请签署企业CLA或企业员工CLA。 注意:签署CLA无需测评企业贡献代码和技术测评的测试报告等信息至社区,默认仅贡献兼容性清单。如有特殊需求,可在技术测评申请流程中,选择不发布到兼容性清单。 | +| | **责任角色** | 测评企业。 | +| | **参与角色** | - | +| **003** | **活动名称** | 完善企业信息。 | +| | **活动描述** | 完成CLA签署后,测评企业需完善企业信息,提交企业LOGO、工商注册国家/地区、企业邮箱、营业执照等信息,用以确认当前申请人确实获得企业授权进行技术测评。 | +| | **责任角色** | 测评企业。 | +| | **参与角色** | - | +| **004** | **活动名称** | 资质审核。 | +| | **活动描述** | 测评企业完善企业信息后,平台会自动对提交信息进行校验,确认邮箱、企业资质等无误后,完成企业资质审核。 | +| | **责任角色** | openEuler社区。 | +| | **参与角色** | - | +| **005** | **活动名称** | 申请测评。 | +| | **活动描述** | 申请测评企业产品类型,选择待测评的产品和解决方案,并填写产品相关信息,提交测评申请。测评申请平台:。 | +| | **责任角色** | 测评企业。 | +| | **参与角色** | - | +| **006** | **活动名称** | 方案审核。 | +| | **活动描述** | openEuler社区接收到测评申请后,需审核测评方案合理性: 审核测评方案是否和已有测评重复,测评方案是否符合技术测评范畴, 测评方案必备信息的完整性和内容质量。 | +| | **责任角色** | openEuler社区。 | +| | **参与角色** | - | +| **007** | **活动名称** | 提供ISO。 | +| | **活动描述** | 方案审核通过后,测评企业需提供待测评ISO的下载地址,用于后续测试。 | +| | **责任角色** | 测评企业。 | +| | **参与角色** | - | +| **008** | **活动名称** | ISO测试。 | +| | **活动描述** | 创新中心依靠测评方案对测评ISO完成技术测评用例测试,验证用例是否通过。 | +| | **责任角色** | 创新中心。 | +| | **参与角色** | openEuler社区,测评企业。 | +| **009** | **活动名称** | 生成测试报告。 | +| | **活动描述** | 测评平台收到测评企业提交的测试日志后,根据规则分析日志并生成测试报告。 | +| | **责任角色** | openEuler社区 | +| | **参与角色** | - | +| **010** | **活动名称** | 测试报告初审。 | +| | **活动描述** | 测试报告生成后,创新中心需根据测评方案和测评标准,对测试报告进行审核。如果测试用例均通过且满足测评标准,则通过复审。如果存在失败用例或不满足测评标准,则驳回到伙伴重新测试提交测试日志。 | +| | **责任角色** | 创新中心。 | +| | **参与角色** | - | +| **011** | **活动名称** | 测试报告复审。 | +| | **活动描述** | 创新中心初审报告通过后,由openEuler社区进行报告的最终审核,确认满足测评标准后,完成测试报告复审。 | +| | **责任角色** | openEuler社区。 | +| | **参与角色** | - | +| **012** | **活动名称** | 证书初审。 | +| | **活动描述** | 基于测试报告审核意见给出测评证书签发意见,完成openEuler社区侧证书初审。 | +| | **责任角色** | openEuler社区。 | +| | **参与角色** | - | +| **013** | **活动名称** | 伙伴确认。 | +| | **活动描述** | 测评企业从测评平台预览测评证书,完成测评企业侧领导签发,将签名/扫描件上传到测评平台。 | +| | **责任角色** | 测评企业。 | +| | **参与角色** | - | +| **014** | **活动名称** | 证书签发。 | +| | **活动描述** | openEuler社区下载测评企业签发后的测评证书,需确认证书内容的一致性和正确性: 1、双方领导签名的正确性和大小规格一致性 ,2、测评企业软件名称、版本正确性, 3、测评企业公司名称正确性和一致性。 | +| | **责任角色** | openEuler社区。 | +| | **参与角色** | - | +| **015** | **活动名称** | 兼容清单刷新。 | +| | **活动描述** | 证书签发完成后,如果测评伙伴在测评流程选择发布兼容性清单,测评平台自动将兼容性信息发布到openEuler官网兼容性列表。 | +| | **责任角色** | openEuler社区。 | +| | **参与角色** | - | + +# 测试标准和测试工具 + +[3.1 ISV](#商用软件) + +[3.2 IHV](#硬件) + +[3.3 OSV](#操作系统) + +## 商用软件 + +### 测试标准 + +经openEuler兼容性SIG组评定,针对商用软件技术测评的测试方案如下。 + +| **测试维度** | **检测项** | **评定标准** | **是否可选** | +| ----------------- | ------------------ | ------------------------------------------------------------ | ------------ | +| 构建测试 | 软件构建测试 | 目标软件可以在指定架构、操作系统上构建成功。 | 可选 | +| 兼容性测试 | 软件包安装测试 | 目标软件可以在指定架构、操作系统上安装成功。 | 必选 | +| | 软件包卸载测试 | 目标软件可以在指定架构、操作系统上卸载成功。 | 必选 | +| | 软件服务启动测试 | 目标软件可以在指定架构、操作系统上启动成功。 | 必选 | +| | 软件服务停止测试 | 目标软件可以在指定架构、操作系统上停止成功。 | 必选 | +| | 强制杀死进程测试 | 目标软件可以在指定架构、操作系统上异常终止后可以启动成功。 | 必选 | +| | 软件命令调用测试 | 目标软件可以在指定架构、操作系统上运行基本的命令。 | 必选 | +| | 软件依赖库查询 | 目标软件可以在指定架构、操作系统上查询依赖库。 | 必选 | +| | 软件以来库差异识别 | 目标软件可以在指定架构、操作系统上依赖库兼容。 | 必选 | +| 性能测试 (可选) | CPU波动测试 | 目标软件在稳定运行期间的系统资源CPU的波动正常。 | 可选 | +| | 内存波动测试 | 目标软件在稳定运行期间的系统资源内存的波动正常。 | 可选 | +| | 磁盘波动测试 | 目标软件在稳定运行期间的系统资源IO的波动正常。 | 可选 | +| | 网络波动测试 | 目标软件在稳定运行期间的系统资源网络的波动正常。 | 可选 | +| | 压力长稳测试 | 目标软件在压力测试下能够长时间稳定运行,且指标数据波动范围在预期范围内。 | 可选 | +| 安全测试 | 端口安全测试 | 目标软件在运行期间的监控端口是否与端口矩阵中的端口信息一致。 | 必选 | +| | 病毒扫描测试 | 目标软件无携带病毒文件。 | 必选 | +| | CVE漏洞扫描测试 | 目标软件不存在已知的CVE漏洞。 | 必选 | + +### 测试步骤 + +#### 工具简介 + +为了解决欧拉技术测评过程中涉及的ISV商用软件兼容性测试问题,特基于《欧拉技术测评兼容性测试用例(ISV商用软件)》 集成了lkp-tests和x2openEuler测试工具。 + +#### 环境要求 + +| **项目** | **要求** | +| -------- | ------------------------------------------------- | +| 操作系统 | openEuler系操作系统。 | +| 依赖软件 | 请使用此命令安装依赖包:yum install -y wget git。 | + +> #### 注意 +> +> - 请勿在生产环境安装和执行测试工具。 +> - 工具安装过程需从外网下载代码和依赖包,请确保网络连接正常(如无法链接外网,需要将gem相关依赖完全离线并进行安装)。 +> - 工具默认安装在当前目录,请确保目录剩余空间足够。 +> + +#### 工具安装 + +##### Lkp-tests + +1. 安装依赖。 + + ``` + yum install -y wget git + ``` + + + +2. 安装Lkp-tests。 + + ``` + git clone + + cd lkp-tests + + sed -i "s/rubygems.org/gems.ruby-china.com/g" Gemfile + + gem sources --remove https://rubygems.org/ + + gem sources -a + + make install + ``` + +3. 写入环境变量。 + + 将lkp-tests所在路径写入/etc/profile末尾,便于后续测试。 + + ``` + vi /etc/profile + ``` + + export LKP_PATH="填写lkp-tests所在路径"。 + +- vi 打开文件后,"ctrl"+"g"跳到文件末尾,然后按下"o" 编辑下一行。 + +- 输入完成后,"esc"退出编辑,然后输入":wq"+"enter"保存并退出文件。 + + ``` + source /etc/profile + ``` + +1. 下载测试套。 + + ``` +git clone + + cd compatibility-test + + sh install.sh + ``` + +##### x2openEuler安装 + +1. 安装依赖。 + + ``` + yum install -y bzip2 bzip2-devel + ``` + +2. 安装x2openEuler。 + + 访问 https://repo.oepkgs.net/openEuler/rpm/openEuler-20.03-LTS-SP1/contrib/x2openEuler/ 获取x2openEuler软件包并上传至服务器。 + + ``` + yum install x2openEuler-xxx.rpm + ``` + +3. 设置x2openEuler密码。 + + ``` +passwd x2openEuler + ``` + + > 说明: + > + > 用户登录的密码,建议满足如下复杂度要求: + > + > - 密码长度为8\~32个字符。 + > - 使用包含大写字母、小写字母、数字、特殊字符(\~!@\#\$%\^&\*()-_=+\|[{}];:'",\<.\>/?)中的两种及以上类型的组合。 + > - 密码中不包含空格。 + > - 密码中不使用用户名。 + +#### 测试执行 + +##### Lkp-tests测试 + +1. 安装通用依赖。 + + ``` + export arch=\`arch\` + + gem install git -v 1.9.1 + + lkp install + ``` + + > 注意: + > + > 此处必须安装1.12以下版本的git,否则会导致接口传参出错。 + +2. 安装兼容性测试依赖。 + + ``` + lkp split-job \$LKP_PATH/jobs/compatibility-test.yaml + + lkp install -f compatibility-test-defaults.yaml + ``` + + 执行成功后会在执行命令目录中生成 compatibility-test-defaults.yaml 文件,用于后续任务调度,后续执行[执行兼容性测试](#执行兼容性测试),也需切换到此目录。 + +3. 执行兼容性测试。 + + 将待测软件包放至当前目录下,执行以下命令,最终测试结果在compatibilityLog文件中。 + + ``` + lkp run ./compatibility-test-defaults.yaml -s 'package_name: xxxxxx' \>compatibilityLog 2\>& 1 + ``` + +> 说明: +> +> - package_name: 后必须有一个空格,否则导致报错无法进行测试。 +> - 此处package_name后需填写软件包文件全名,例如nginx-1.14.2-1.oe1.aarch +> - 当前脚本适配rpm包,如无法直接使用rpm -ivh等rpm命令进行安装、卸载,请在脚本中修改安装卸载命令,详见附录[商业软件测试安装和卸载命令](#商业软件测试安装和卸载命令)。 +> + +##### x2openEuler测试 + +1. 切换到x2openEuler用户。 + + ``` + su - x2openEuler + ``` + + > 须知: + > + > 使用前请务必切换用户为x2openEuler用户 + +2. 执行扫描。 + + ``` +x2openEuler scan [-batch] [-arch ARCH] [-os_name OS_NAME] [-target_os_name TARGET_OS_NAME] {filename \| directoryname} + ``` + +| **命令** | **参数选项** | **说明** | +| ---------------- | ------------------------ | ------------------------------------------------------------ | +| -batch | - | 多应用场景,配合directoryname,扫描文件夹下多个软件包若无此参数,仅扫描单个软件包。 | +| -arch | ARCH | 操作系统架构 可选参数。 | +| | | 可选x86_64或aarch64,默认为x86_64。 | +| | | 例如"-arch x86_64" 选择操作系统架构为x86_64。 | +| -os_name | OS_NAME | 源操作系统 可选参数。 | +| | | 默认参数为centos7.6。 | +| | | 例如"-os_name centos8.2" 选择源操作系统为CentOS 8.2。 | +| | | 说明:当前源操作系统支持CentOS 6.8/CentOS 7.6/CentOS 8.2。 | +| - target_os_name | TARGET_OS_NAME | 目标操作系统 可选参数。 | +| | | 默认参数为openEuler20.03-LTS-SP1。 | +| | | 例如"-target_os_name openEuler20.03-LTS-SP1" 选择目标操作系统为openEuler20.03-LTS-SP1。 | +| - | filename\| directoryname | 需扫描的应用包或目录。 | +| | | 例如"x2openEuler scan file_name_version.rpm" 选择扫描的应用包为file_name_version.rpm。 | +| | | 说明:当前扫描支持rpm/tar/zip/gzip/jar/py/pyc/sh/bin文件。 | + +此处以评估CUnit-2.1.3-21.oel.aarch64.rpm_应用包并输出软件评估报告为例,请根据实际情况选择所需参数并替换为需要扫描的软件包或软件包目录。 + +``` +x2openEuler scan -arch x86_64 CUnit-2.1.3-21.oel.x86_64.rpm +``` + +![](figures/8a844cc8f6d5083ac494ff5938ccf6ab.png) + +1. 结果查看。 + + 报告为html格式,建议下载报告并在浏览器查看。 + + ![](figures/446a61dbb880c4e40e5c54e7eb305427.png) + +## 硬件 + +### 测试标准 + +#### 整机测试标准 + +经openEuler兼容性SIG组评定,硬件技术测评分为整机和板卡,整机测试方案如下。 + +| **测试维度** | **检测项** | **评定标准** | **是否可选** | +| ------------ | ----------------- | ------------------------------------------------------------ | ------------ | +| ACPI测试 | ACPI测试 | 提取ACPI表,查看电源配置是否合理。 | 必选 | +| 时钟测试 | 系统时间偏差测试 | 测试系统时间没有偏差。 | 必选 | +| | RTC时钟稳定性测试 | 测试RTC硬件时钟稳定性。 | 必选 | +| CPU测试 | CPU调频策略测试 | 测试 cpu 在不同调频策略下运行频率是否预期,测试 cpu 在不同频率下完全同规格计算量所需时间是否与频率值吻合。 | 必选 | +| Kdump测试 | 预留内存测试 | 查看系统是否为捕获内核提供预留内存。 | 必选 | +| | Kdump可用性测试 | Kdump服务能否正常使用。 | 必选 | +| | vmcore分析测试 | 通过crash分析kdump生成的vmcore文件。 | 必选 | +| 系统测试 | 系统事件捕获测试 | 测试perf是否可以捕获系统事件信息。 | 必选 | +| | 基本信息检查 | 查询硬件型号信息,系统版本信息,系统内核模块信息。 | 必选 | +| | 内核检查 | 检查是否为debug kernel。检查os版本和kerner版本是否匹配。 检查内核是否被污染或者内核rpm包是否被修改。 查看内核启动参数。 | 必选 | +| | selinux检查 | 检测selinux是否可用,可设置为enforcing。 | 必选 | +| IPMI测试 | IPMI测试 | 使用ipmitool查询ipmi信息。 | 必选 | +| 看门狗测试 | watchdog测试 | 触发watchdog,测试系统是否可以正常复位。 | 必选 | +| 内存测试 | 内存读写测试 | 测试内存读写是否成功。 | 必选 | +| | 内存占用测试 | 测试此内存是否成功。 | 必选 | +| | 内存大页测试 | 大页内存分配成功,大页内存测试成功。 | 必选 | +| | 内存热插拔测试 | 测试内存热插拔。 | 必选 | +| 磁盘测试 | 磁盘分区测试 | 成功获取空闲磁盘。 | 必选 | +| | 磁盘读写测试 | 裸盘顺序读写成功,裸盘随机读写成功,文件系统顺序读写成功,文件系统随机读写成功。 | 必选 | +| 网卡测试 | 获取IP地址 | 是否可以获取C/S的IP地址。 | 必选 | +| | 网卡启停测试 | 网卡是否可以正常启动、关闭,获取网卡速率。 | 必选 | +| | 网卡连通性测试 | 客户端是够能ping通服务端,是否有丢包。 | 必选 | +| | 延迟和带宽测试 | 测试C/S之间的网络延迟和Server的带宽。 | 必选 | +| | 文件上传下载测试 | 客户端能否从服务端上传和下载文件。 | 必选 | +| USB测试 | USB插拔测试 | 检测到有新设备插入 检测到有设备拔掉。 | 必选 | +| RAID测试 | 分区测试 | 能成功获取空闲磁盘个数。 | 必选 | +| | 读写测试 | 裸盘顺序读写成功,裸盘随机读写成功,文件系统顺序读写成功,文件系统随机读写成功。 | 必选 | + +#### 板卡测试标准 + +经openEuler兼容性SIG组评定,硬件技术测评分为整机和板卡,板卡测试方案如下: + +##### NVMe测试标准 + +| **测试维度** | **检测项** | **评定标准** | **是否可选** | +| ------------ | ---------- | ------------------------ | ------------ | +| NVMe测试 | 格式化测试 | 测试硬盘格式化是否成功。 | 必选 | +| | 读测试 | 测试硬盘读是否成功。 | - | +| | 写测试 | 测试硬盘写是否成功。 | - | +| | smart测试 | 磁盘读取samrt信息成功。 | - | +| | log测试 | 分析smart信息成功。 | - | + +##### 网卡测试标准 + +| **测试维度** | **检测项** | **评定标准** | **是否可选** | +| ------------ | ---------------- | ------------------------------------------ | ------------ | +| 网卡测试 | 获取IP地址 | 是否可以获取C/S的IP地址。 | - | +| | 网卡启停测试 | 网卡是否可以正常启动、关闭,获取网卡速率。 | - | +| | 网卡连通性测试 | 客户端是够能ping通服务端,是否有丢包。 | - | +| | 延迟和带宽测试 | 测试C/S之间的网络延迟和Server的带宽。 | - | +| | 文件上传下载测试 | 客户端能否从服务端上传和下载文件。 | - | + +##### FC测试标准 + +| **测试维度** | **检测项** | **评定标准** | **是否可选** | +| ------------ | ---------- | ------------------------------------------------------------ | ------------ | +| FC卡测试 | lun测试 | 获取可测试的磁盘阵列成功。 | - | +| | 读写测试 | 裸盘顺序读写成功,裸盘随机读写成功,文件系统顺序读写成功,文件系统随机读写成功。 | - | + +##### GPU测试标准 + +| **测试维度** | **检测项** | **评定标准** | **是否可选** | +| ------------ | ------------ | ------------------------------------------------------ | ------------ | +| GPU测试 | GPU burn测试 | gpu-burn工具压力测试,nvidia-sim工具监测性能指标正常。 | - | +| | 样例测试 | 样例测试结果为PASS。 | - | + +### 测试步骤 + +#### 工具简介 + +为了解决欧拉技术测评过程中涉及的整机和板卡兼容性测试问题,基于《欧拉技术测评兼容性测试用例(整机&板卡)》 集成了oec-hardware测试工具。 此工具将根据《欧拉技术测评兼容性测试用例(整机&板卡)》提取为58个自动化测试用例,分为整机测试用例集和板卡测试用例集。 + +#### 环境要求 + +整机测试环境要求。 + +| **项目** | **要求** | +| -------- | ----------------------------------------------- | +| 整机数量 | 需要两台整机,业务网口互通。 | +| 硬件 | 至少有一张RAID卡和一张网卡(包括集成主板硬件)。 | +| 内存 | 建议满配。 | +| 操作系统 | openEuler系操作系统(支持dnf/yum/pip3)。 | + +板卡测试环境要求。 + +| **项目** | **要求** | +| ---------- | ------------------------------------------------------------ | +| 服务器型号 | Taishan200(Model 2280)、2288H V5或同等类型的服务器,对于x86_64服务器,icelake/cooperlake/cascade可任选一种,优选icelake。 | +| RAID卡 | 需要组raid,至少组raid0。 | +| NIC/IB卡 | 服务端和测试端需要分别插入一张同类型板卡,配置同网段IP,保证直连互通。 | +| FC卡 | 需要连接磁阵,至少组两个lun。 | +| 操作系统 | openEuler系操作系统(支持dnf/yum/pip3)。 | + +> #### 注意 +> +> - 部分测试用例会重启机器,请勿在生产环境安装和执行测试工具。 +> - 工具安装过程需要从外网下载代码和依赖包,请确保网络连接正常(如无法连接外网,需要下载相关依赖并进行安装)。 +> - 工具日志默认存放在/usr/share,请确保目录剩余空间足够。 +> + +#### 工具安装 + +客户端: + +1. 配置 openEuler 官方 repo 中对应版本的 everything 和 update 源,使用 dnf 安装客户端 oec-hardware。 + + ``` + dnf install oec-hardware + ``` + + + +2. 输入 `oech` 命令,可正常运行,则表示安装成功。 + +服务端: + +1. 配置 openEuler 官方 repo 中对应版本的 everything 和 update 源,使用 dnf 安装服务端 oec-hardware-server。 + + ``` + dnf install oec-hardware-server + ``` + + + +2. 服务端 web 展示页面需要的部分组件系统本身不提供,需要使用 pip3 安装(请自行配置可用 pip 源)。 + + ``` + pip3 install Flask Flask-bootstrap uwsgi + ``` + + + +3. 启动服务:本服务默认使用 8080 端口,同时搭配 nginx(默认端口 80)提供 web 服务,请确认端口未被占用。 + + ``` + systemctl start oech-server.service + + systemctl start nginx.service + ``` + +4. 关闭防火墙和 SElinux。 + + ``` +systemctl stop firewalld + + ``` + +iptables -F + + setenforce 0 + ``` + + +​ + +#### 测试执行 + +- /usr/share/oech/kernelrelease.json 文件中列出了当前支持的所有系统版本,使用`uname -a` 命令确认当前系统内核版本是否属于框架支持的版本。 +- 框架默认会扫描所有网卡,对网卡进行测试前,请自行筛选被测网卡,并给它配上能 ping 通服务端的IP。如果客户端是对 InfiniBand 网卡进行测试,服务端也必须有一个 InfiniBand 网卡并提前配 IP 。建议不要使用业务网口进行网卡测试。 +- 部分用例需要root权限,请使用root用户执行。 +1. 启动测试工具 + + 在完成安装oec-hardware软件包的客户端执行 oech,填写ID、URL、Server配置项,ID 建议填写 gitee 上的 issue ID(注意:ID中不能带特殊字符)、URL建议填写产品链接。Server 需填写客户端可直接访问的服务器域名或 ip,用于展示测试报告和作网络测试的服务端。 + + \# oech + + The openEuler Hardware Compatibility Test Suite + + Please provide your Compatibility Test ID: + + Please provide your Product URL: + + Please provide the Compatibility Test Server (Hostname or Ipaddr): + +2. 进入测试套选择界面 + + 在用例选择界面,框架将自动扫描硬件并选取当前环境可供测试的测试套,输入 edit 可以进入测试套选择界面。 + +- 板卡测试请选择对应的板卡测试项。 +- 整机测试建议测试全部类型的测试项,至少需要测试一张RAID卡和网卡,网卡测试选择一个网口即可,注意不要使用业务网口进行测试。 + + These tests are recommended to complete the compatibility test: + + No. Run-Now? Status Class Device + + 1 yes NotRun acpi + + 2 yes NotRun clock + + 3 yes NotRun cpufreq + + 4 yes NotRun disk + + 5 yes NotRun ethernet enp3s0 + + 6 yes NotRun ethernet enp4s0 + + 7 yes NotRun ethernet enp5s0 + + 8 yes NotRun kdump + + 9 yes NotRun memory + + 10 yes NotRun perf + + 11 yes NotRun system + + 12 yes NotRun usb + + 13 yes NotRun watchdog + + Ready to begin testing? (run\|edit\|quit) + +1. 选择测试套 + + all\|none 分别用于 全选\|全取消(必测项 system 不可取消,多次执行成功后 system 的状态会变为Force);数字编号可选择测试套,每次只能选择一个数字,按回车符之后 no 变为 yes,表示已选择该测试套。 + +2. 开始测试 + + 选择完成后输入 run 开始测试。 + +3. 上传测试结果 + + 测试完成后可以上传测试结果到安装oec-hardware-server软件包的服务端,便于展示结果和日志分析。如果上传失败,请检查网络配置,重新上传测试结果。 + +4. 查看工具的测试日志 + + 客户端详细的测试日志路径为 /usr/share/oech/logs/oech-yyyymmddxxxx-xxxxxxx.tar 。 + +5. 查看测试结果。 + + 测试结果上传到服务端后,在浏览器打开服务端 IP 地址,点击导航栏 Results 界面,找到对应的测试 id 进入,可看到具体的测试结果展示,包括环境信息和执行结果等。 + +## 操作系统 + +### 测试标准 + +经openEuler兼容性SIG组评定,OSV商用发行版/企业自用版技术测评的测试方案如下。 + +| **测试维度** | **检测项** | **检测点描述** | **评定标准** | **是否可选** | +| ------------ | --------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------ | +| 工具检测 | 核心包 | 核心包一致性比例 | 名称、小版本完全一致,核心包包括核心包内容一致性,内核、gcc、glibc、qemu、docker、openJDK、systemd、openssh、lvm2、busybox、initscripts核心模块一致性,JDK如果没有,则不会纳入比较项。 | 必选 | +| | 软件包 | L1/L2 软件包一致性比例 | L1 100%兼容,L2 95%以上兼容,参考社区等级清单定义(附上链接)。 | 必选 | +| | 内核KABI接口 | OSV内核KABI接口白名单与openEuler内核KABI接口白名单一致性比例 | 内核-KABI白名单 90%以上兼容。 | 可选 | +| | 用户态ABI接口 | OSV软件包ABI接口与openEuler软件包ABI一致性比例 | L1 100%兼容,L2 95%以上兼容,参考社区等级清单定义。 | 必选 | +| | Service默认配置 | OSV软件包Service文件与openEuler软件包Service文件一致性比例 | 全量默认配置一致性90%以上。 | 可选 | +| | 软件包默认配置 | OSV软件包配置文件与openEuler软件包配置文件一致性比例 | 全量默认配置一致性90%以上,目前对于OSV厂商新增的配置,不会作为差异比较。 | 可选 | +| | 内核特性配置 | 内核特性配置 | 内核关键配置一致性,达90%以上。 | 必选 | +| 平台验证 | 仓库 | EPOL仓/软件所仓库在OSV版本上安装成功比例 | 仓库复用度90%以上。 | 必选 | +| | 基本功能 | 社区AT用例运行结果 | 社区AT用例运行结果100%通过。 | 必选 | +| | 基础性能 | 基础性能测试结果 | 性能浮动5%以内。 | 必选 | +| | 运行时默认配置 | 运行时默认配置 | 全量运行时默认配置一致性90%以上。 | 可选 | + +### 测试步骤 + +#### 工具简介 + +OECP工具比较2个ISO之间的静态差异,OECP工具需借助compass-ci才能比较2个ISO之间的动态差异。在测试完成后输出的OSV认证报告中,静态差异测试工具检测的检测项,动态差异才包括平台验证的检测项。 + +#### 环境要求 + +| **项目** | **要求** | +| -------- | ------------------------------------------------------------ | +| 服务器 | 当前支持Kunpeng和X86等多个底座,有其他平台的适配需求欢迎提交issue。 | +| 操作系统 | openEuler系操作系统。 | +| 依赖软件 | python3-devel,sqlite,libabigail,japi-compliancechecker,安装方法见工具安装。 | + +> #### 注意 +> +> - 请勿在生产环境安装和执行测试工具 +> - 工具安装过程需要从外网下载代码和依赖包,请确保网络连接正常(如无法连接外网,需要将gem相关依赖完全离线并进行安装)。 +> - 工具默认安装在当前目录,请确保目录剩余空间足够。 +> + +#### 工具安装 + +1. 安装依赖。 + + ``` + yum install -y python3-devel sqlite libabigail-devel python3-pip + + pip3 install pyyaml + + git clone https://github.com/lvc/japi-compliance-checker.git + + cd japi-compliance-checker + + make install prefix=/usr + ``` + + 安装结果检测。 + + ``` + japi-compliance-checker -test + ``` + + ![](figures/805b547fdd5f083ec5bdaf14f70c8709.png) + +2. 工具安装。 + + ``` +git clone + + ``` + +cd oecp + + pip3 install -r requirement + ``` + + +​ + +#### 测试执行 + +1. 执行测试。 + + ``` +python3 cli.py file1 file2 + ``` + + > 说明: + > + > - file1: 基准ISO + > - file2: 待测评的ISO + +2. 查看结果。 + + 在结果文件osv_data_summary.xlsx中查看测试结果。 + + ![](figures/a0edd4aec65418587c8b47c16e4ef274.png) + +# 平台操作指导 + +[4.1 用户注册](#用户注册登录) + +[4.2 企业认证](#访问技术测评平台) + +[4.3 测评申请](#测评申请) + +[4.4 测评审批](#测评审批) + +## 用户注册登录 + +### 访问技术测评平台 + +在浏览器地址栏输入: 进行访问,填写如下信息。 + +![](figures/72287e9eac379e88d9f6e70a0fd0a82a.png) + +- 如已完成账号注册,可在①处填写账号密码登录平台。 + +- 如未注册账号,需点击②处进行账号注册,详见[注册账号](#注册账号)。 + + +### 注册账号 + +注册页面填写手机号进行注册,并且需同意《openEuler隐私声明》和《兼容性协议》。 + +![](figures/b8746f18193a74d78e134e48fe305a0c.png) + +完成注册后会自动登录进平台,如下图。 + +![](figures/fff3093b3569cfe731087db579cf95df.png) + +## 完善个人信息 + +### 完善平台个人信息 + +首次登录时请先完善个人信息,点击页面右上角 “用户名(注册时填写的用户名)” -\> “账号中心”。 + +![](figures/171f947111911ab0e662e2d7d802c86a.png) + +![](figures/c13a837bb42a395df9865931ebcf23ab.png) + +点击修改,进入编辑界面,完善邮箱信息。 + +> 说明:邮箱后续和CLA邮箱关联,建议填写企业邮箱 + +![](figures/acd692cfed9c6c69b6130831b3cc0d64.png) + +### 签署CLA + +点击首页的“CLA签署”或者访问“https://www.openeuler.org/zh/community/contribution/”,点击左下角的“openEuler社区贡献者许可协议”进入CLA签署页面。选择类型如下: + +![](figures/1ba51dfdafc88634029eea1fb0337f4f.png) + +如果作为企业的员工进行技术测评,建议在公司政策允许情况下,签署“员工CLA”。进入签署页面后,需填写Gitee账号(用于后续欧拉相关仓库相关活动)、邮箱账号(必须和测评平台的邮箱账号一致)、姓名。 + +## 企业认证 + +在“个人中心”点击左下的“企业信息”,如下图。 + +![](figures/d28d66a605aa980563a72f07c0220bae.png) + +点击“企业实名认证”进入提交页面,如下图。 + +![](figures/4dfbf191b6d574d05b925f2a72ff1a26.png) + +需提交企业LOGO(透明底)、工商注册国家/地区、企业邮箱、上传营业执照。 + +> 说明:自动提取有一定的失败率,提取后请再次确认。确认无误后,点击“提交”完成企业认证。系统会自动根据提交的信息,确认企业信息是否有效。 +> + +## 测评申请 + +伙伴访问技术测评平台(https://certification.openeuler.org),点击“申请技术测评”, 根据提示,完善方案信息和测试环境信息。 + +![](figures/0690939843730385b79e4cd21d504059.png) + +欧拉兼容性技术测评要求适配多算力平台,因此,此处的算力平台需至少选择两个算力平台。 + +完善提交后,自动返回主页面,可在“测评申请”列表查看到对应的方案,点击方案,进入详情页查看方案详情和各个阶段的处理人。 + +![](figures/5af0166ab06e30d2483ef6f442811cd1.png) + +## 测评审批 + +### 提交测试报告 + +提交测评申请后,会由社区的相关负责人进行方案的审批。 + +- 如果审批不通过,方案会驳回到提交人,此时提交人需查看驳回原因,修改后重新提交。 +- 如果通过,则进入测试阶段,此时提交人需根据欧拉兼容性技术测评标准对方案进行测试,并提交测试报告。 + +![](figures/68d556565c59f7819326a9b6a1c364a5.png) + +上传后,创新中心及社区负责人会对测试报告进行审核,通过审核后,即可进入证书签发的流程,社区负责人对证书信息进行初审,确认证书信息与实际测试内容一致后通过审核,由伙伴进行证书确认。 + +### 证书确认 + +在openEuler社区和创新中心报告评审通过后,社区会进行证书初审,初审通过后,申请人需要进行证书确认,页面如下: + +![](figures/c2a52ef70ae2b9ada562a623a492c64f.png) + +申请人需要确认证书上软件的信息、测试环境信息等是否准确无误,确认准确无误后,需上传伙伴的签名/签章(透明底),用于后续证书生成。 + +申请人也可以点击“证书预览”,查看证书预览页面。 + +确认证书信息无误并且上传签名/签章后,点击提交即可。 + +## 证书签发 +### openEuler社区签发证书 +申请人确认证书信息无误并上传签名/签章后,openEuler社区对证书的内容一致性和正确性进行最终审核,确认无误后,进行证书签发 +![](figures/2345e6304c11c1f08232890ef4c3fe06) + +### 发布兼容性清单 +证书签发后,兼容性信息会自动发布到openEuler官网兼容性清单(https://www.openeuler.org/zh/compatibility/) + +# 附录 + +## 修改商业软件测试安装和卸载命令 + +1. 修改安装命令 + + ``` + vi \$LKP_PATH/tests/compatibility-test + ``` + + 修改72行的安装命令,将安装命令的执行结果保存到变量a中 + + 下面76行将出现"error"报错识别为失败,如安装过程失败提示非"error"字样,请根据实际情况修改。 + + ![](figures/222ce6304c11c1f08232890ef4c3fe06.png) + +2. 修改卸载命令 + + ``` +vi \$LKP_PATH/tests/compatibility-test + ``` + + 修改208行的卸载命令,如无出现报错,即认为修改成功 + + ![](figures/ec46ba2ca4b8f9b57c5c5f0d97ec2482.png)