STS - Storage Testing¶
Comprehensive Linux storage testing framework for Fedora, CentOS Stream, and RHEL¶
STS makes storage testing easy with pytest-based libraries, extensive fixtures, and tmt integration. Whether you're testing iSCSI, LVM, multipath, or other storage technologies, STS provides the tools you need.
It consists of two main components:
- ๐ฆ sts-libs: Python testing library with storage-specific APIs and fixtures
- ๐งช Test Suite: Collection of storage tests and tmt plans
Supported APIs and Tests:
- LVM: Volume management and thin provisioning
- Device Mapper: Linear, thin, cache, flakey, error, delay, VDO targets
- iSCSI: Initiator and target testing
- Multipath: Device mapper multipath
- NVMe: NVMe device operations
- Fibre Channel: FC HBA testing
- SCSI: SCSI device and SCSI debug testing
- Stratis: Stratis storage management
- Boom: Boot manager entries and profiles
- Snapm: Snapshot manager snapsets and schedules
- RDMA: RDMA storage protocols
- VDO: Virtual Data Optimizer
- And more: FIO, sg3_utils, QEMU, network interfaces, and more
Quick Start¶
1. Install sts-libs¶
From PyPI:
pip install sts-libs
From Fedora/EPEL:
dnf copr enable packit/gitlab.com-rh-kernel-stqe-sts-releases
dnf install -y python3-sts-libs
2. Write Your First Test¶
For detailed guidance on writing and running tests, see Writing and Running STS Tests.
Requirements¶
- Python: 3.12 or later
- Operating Systems: Fedora, CentOS Stream 9+, RHEL 8+
- Dependencies: pytest, pydantic
Project Architecture¶
sts/
โโโ sts_libs/ # Core Python library (sts-libs on PyPI)
โ โโโ src/sts/ # Library source code
โ โ โโโ models.py # Pydantic base models (StsBaseModel, ReportModel)
โ โ โโโ base.py # Base device classes
โ โ โโโ fixtures/ # Pytest fixtures
โ โ โโโ utils/ # Utility modules
โ โ โโโ lvm/, dm/, โฆ # Per-subsystem libraries
โ โโโ tests/ # Library unit tests
โโโ tests/ # Storage functional tests
โโโ plans/ # tmt test plans (.fmf files)
โโโ docs/ # Documentation source
โโโ pyproject.toml # Project configuration
Community & Support¶
- Documentation: Complete docs
- Source Code: GitLab Repository
- Issues: Issue Tracker
- tmt: tmt Documentation