mirror of
https://github.com/SCST-project/scst.git
synced 2026-10-22 06:02:33 +00:00
Run one fio profile with concurrent 4K, 64K and 128K jobs in disjoint regions. Cover buffered fileio with 512-byte sectors and direct blockio with 4K sectors. Verify CRC32C data and completed byte counts, and follow buffered I/O with direct verification to bypass the initiator page cache. Reuse the SCSI fixtures and exported-device checks for both transports. Require an explicit target block device and check its use and signatures before exporting it. Configure the per-job region size and I/O timeout, and retain rendered job files, JSON reports and stderr. Cover job rendering and report validation with framework tests. Document fio prerequisites, destructive scope and label selection through the common Make targets.
1.9 KiB
1.9 KiB
SCST Component Tests
Use README.md for setup, configuration, commands and recovery.
suite/ owns local tests, iscsi/ owns target/SSH-initiator tests, and
internal/ owns shared configuration, execution, fixtures and data checks.
Interfaces and lifecycle
- Management operations and assertions use
scstadmin, never direct sysfs or Perl-library calls. A rejection covers the whole management chain, not necessarily a kernel check. Check operation errors even with exit status 0. - Initiator management uses
iscsiadmover SSH; sg3_utils and fio use only fixture-owned exports. Preserve device identity and geometry checks before writes, explicit block-backend selection and disjoint fio regions. - Use shared command runners with contexts, timeouts, logs and failure handling. Execution failures must not satisfy assertions for expected rejections; SCSI rejection tests must check status and sense.
- Keep ownership and cleanup explicit for configuration, backing files, sessions, node/iface records, the daemon and modules. Restore changed global settings; never use global initiator logout, deletion or service restarts as cleanup. Global SCST clearing belongs only to explicit clear-config tests.
- Failed cleanup or uncertain command completion must stop subsequent specs. Uncertain initiator state must prevent target teardown. Preserve artifacts and residual resources for inspection instead of forcing cleanup.
- Prepare only selected transport groups; complete local teardown before iSCSI setup. Module loading and unloading belong to the suite lifecycle.
Validation
make ginkgo-check checks the framework; ginkgo-list and ginkgo-config
check selection and configuration without SCST or remote-host access.
Live targets load or replace modules and mutate storage on selected hosts;
the root authorization rules apply. Dry runs do not validate SCST behavior.
Keep generated results/ and local profiles out of commits.