Skip to content

STS - Storage Testing

PyPI version Ruff prek Documentation

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