forked from woqidaideshi/openruyi-autotest
fix
This branch is 94 commits behind woqidaideshi/openruyi-autotest:main
openruyi-autotest
openruyi-autotest 是基于 tmt (Test Management Tool) 框架的自动化测试项目,使用 BeakerLib 编写测试脚本,通过 FMF 管理元数据。涵盖冒烟测试、功能测试、安全测试、兼容性测试、性能测试、可靠性测试和特性测试七大类,共 726 个测试套、3708 个测试用例(功能测试 281 套 / 3216 用例:566 pkgs + 2407 LTP + 211 kernel + 32 compiler;安全测试 113 套 / 113 用例:98 CVE + 8 nmap + 7 openscap;可靠性测试 12 套 / 12 用例:6 trinity + 6 stress-ng)。
一、openruyi-autotest 简介
1.1 目录结构
openruyi-autotest/
├── .fmf/ # FMF 元数据根目录
│ └── version
├── plans/ # 测试计划
│ ├── smoke.fmf # 冒烟测试计划
│ ├── functional.fmf # 功能测试计划
│ ├── security.fmf # 安全测试计划
│ ├── compatibility.fmf # 兼容性测试计划
│ ├── performance.fmf # 性能测试计划
│ ├── reliability.fmf # 可靠性测试计划
│ ├── feature.fmf # 特性测试计划
│ └── all.fmf # 全量测试计划
├── tests/ # 测试用例
│ ├── main.fmf # 全局共享配置
│ ├── smoke/ # 冒烟测试(100 个用例)
│ ├── functional/ # 功能测试
│ │ ├── kernel/ # 内核功能测试
│ │ │ ├── blktests/ # 块设备测试(195 个用例)
│ │ │ └── realtime/ # 实时性测试(16 个用例)
│ │ ├── ltp/ # LTP 功能测试套件(32 个子模块, 2407 个用例)
│ │ ├── pkgs/ # RPM 软件包功能测试(202 个包, 566 个用例)
│ │ └── compiler/ # 编译器与工具链测试(32 个用例)
│ │ ├── dejagnu/ # DejaGnu GCC 测试框架(9 个用例)
│ │ ├── jotai/ # Jotai 基准程序测试(7 个用例)
│ │ ├── csmith/ # Csmith 随机程序差分测试(8 个用例)
│ │ └── yarpgen/ # YARPGen 优化 Bug 检测(8 个用例)
│ ├── security/ # 安全测试(113 个用例)
│ │ ├── cve/ # CVE 漏洞测试(98 个用例)
│ │ ├── nmap/ # 网络扫描测试(8 个用例)
│ │ ├── openscap/ # 安全合规性测试(7 个用例:4 基础 + 3 CIS)
│ │ │ ├── basic/ # 基础 CLI 操作(4 个用例)
│ │ │ └── cis/ # CIS Benchmark(3 个用例)
│ ├── compatibility/ # 兼容性测试(188 个用例)
│ ├── performance/ # 性能测试
│ │ ├── mmtests/ # MMTests 基准测试(53 个用例)
│ │ ├── unixbench/ # UnixBench 基准测试(11 个用例)
│ │ ├── iozone/ # IOzone 文件系统 I/O 基准(5 个用例)
│ │ ├── fio/ # fio 存储 I/O 性能测试(6 个用例)
│ │ ├── stream/ # STREAM 内存带宽基准(4 个用例)
│ │ ├── lmbench/ # LMbench 微基准测试(4 个用例)
│ │ └── sysbench/ # sysbench 多线程基准(5 个用例)
│ ├── feature/ # 特性测试
│ └── reliability/ # 可靠性测试
│ ├── trinity/ # Trinity 系统调用 Fuzzer(6 个用例)
│ └── stress-ng/ # stress-ng 系统压力测试(6 个用例)
├── docs/ # 文档
└── README.md
1.2 测试覆盖详情
| 分类 | 代表性软件包 | 覆盖要点 |
|---|---|---|
| 编译工具 | gcc, g++ (gxx), clang, cmake, make, binutils, autoconf, automake, bison, flex, meson, ninja | C/C++ 编译、链接、优化选项、标准支持 |
| 系统管理 | systemd, systemd-timesyncd, dbus, dbus-broker, chkconfig, kmod, util-linux | 服务管理、日志查询、性能分析、时间同步 |
| 文件/文本工具 | coreutils, tar, grep, sed, gawk, diffutils, findutils, file, gzip, xz, zstd, bzip2, lz4, unzip, cpio, dos2unix | 文件操作、归档、搜索、文本处理 |
| 安全/加密 | openssl, gnutls, libgcrypt, nettle, libtasn1, p11-kit, cryptsetup, pam, libselinux, libseccomp, audit, keyutils, krb5 | 加密算法、TLS、ACL、审计、认证 |
| 网络工具 | iputils, curl, wget, wget2, iproute2, iptables, libpcap, libnl, nghttp2, libssh, libidn2, libpsl | 网络诊断、文件下载、流量控制 |
| 容器/虚拟化 | podman, podmansh | 镜像管理、容器运行、网络配置 |
| SSH 工具 | openssh, openssh-clients | 密钥生成、SSH 连接、scp/sftp |
| 版本控制 | git | 仓库初始化、分支操作、远程管理 |
| 脚本/编程语言 | python, perl, lua, tcl, bash, tcsh, expect, swig | 解释器、模块、脚本执行 |
| 库/运行时 | glibc, glib, libffi, libxml2, libxslt, libpng, pcre2, expat, icu4c, libarchive, boost, json-c, sqlite, popt, readline, slang, newt, gmp, mpfr, mpc, mpdecimal, isl, libunistring, libxcrypt, libeconf, libcap, libaio, libbpf, libedit, libevent, libmnl, libnfnetlink, libnetfilter_conntrack, libnftnl, libpwquality, libtirpc, libsodium, nghttp2, libmicrohttpd, xxhash, jitterentropy, libgpg-error, libpsl, publicsuffix-list, iso-codes, brotli, lz4, zstd | 动态库验证、头文件、pkg-config |
| 构建/打包工具 | rpmbuild, rpm, pkgconf, debugedit, dwz, chrpath, patch, pyproject-rpm-macros, python-rpm-macros, python-srpm-macros, python-rpm-generators, perl-rpm-packaging, rpm-config-openruyi, setup, filesystem, config | RPM 包构建、调试信息、宏配置 |
| 显示/桌面 | sddm, weston, labwc, groff, texinfo, help2man, scdoc, xmlto, source-highlight | 显示管理器、Wayland 合成器、文档生成 |
| 测试框架 | atf, cmocka, dejagnu, kyua, lutok, beakerlib | 测试库、测试框架 |
| 其他系统工具 | tmux, cloud-utils-growpart, procps-ng, psmisc, vim, less, bc, time, which, ed, fdupes, lzip, rsync, nfs-utils, cracklib, e2fsprogs, gdb, gdbm, gpm, kbd, lvm2, ncurses, nss, nss_wrapper, pam_wrapper, socket_wrapper, uid_wrapper, perl-Error, perl-Locale-gettext, systemtap, tzdata, unbound, ca-certificates, ca-certificates-mozilla, openruyi-release, linux-headers, pciutils, attr, acl, bash-completion, authselect, cpio, cryptsetup, dbus, dbus-broker, diffutils, elfutils, file, findutils, gawk, git, nghttp2, python-flit-core, python-lxml, python-packaging, python-pip, python-pyelftools, python-setuptools, python-wheel, re2c, scdoc, source-highlight, swig, uid_wrapper, xmlto, xxhash | 终端复用、分区扩容、进程管理、编辑器、时间日期 |
1.3 用例运行状态统计
| 测试类型 | 测试套数 | 用例数 | 状态 |
|---|---|---|---|
| Smoke | 100 | 100 | ✅ 全部通过 |
| Functional | 281 | 3216 | ✅ 全部通过 (566 pkgs + 2407 LTP + 211 kernel + 32 compiler) |
| Security | 113 | 113 | ✅ 全部通过 (98 CVE + 8 nmap + 7 openscap) |
| Compatibility | 188 | 188 | ✅ 通过 (LTP POSIX) |
| Performance | 32 | 84 | 已执行 (11 unixbench + 53 mmtests + 5 iozone + 6 fio + 4 stream + 4 lmbench + 5 sysbench) |
| Reliability | 12 | 12 | 已执行 (6 trinity + 6 stress-ng) |
| Feature | 0 | 0 | 🆕 |
| 合计 | 726 | 3708 |
详情文档:
二、openruyi-autotest 用户指南
参见 用户指南 — 涵盖从克隆仓库、安装依赖到执行单个用例、测试套、测试类型全量用例以及全部测试的完整步骤。
三、openruyi-autotest 开发指南
参见 开发指南 — 涵盖如何添加新测试用例、目录约定、BeakerLib 生命周期、FMF 元数据规范以及命名规范。
四、openruyi-autotest 测试报告模版
参见 测试报告模版 — 涵盖测试概述、各类型测试的套数/用例数/通过/失败/跳过统计表格。
Description
Languages
Shell
97.1%
Python
2.9%