Commit Graph
184 Commits
Author SHA1 Message Date
Gleb Chesnokov e284f3299a kunit: Test LUN rollback, teardown and external blockers
Add private access declarations and task-scoped boundaries for sysfs,
copy-manager admission, grace periods and blocking waits. Preserve
their original operations outside the current test task.

Share the existing ACG release-work layout through the private core
header so the worker and its separate test object use one definition.

Link separate lifecycle and blocker suites covering rollback, mapping
detach order, ACG worker locking and reference ownership. Cleanup
tolerates failed initialization and assertions.
2026-10-14 15:08:03 +03:00
Gleb Chesnokov 593023ba41 kunit: Test copy-manager updates and read-only admission
Expose private functions to a separate test object and stub discovery,
registration and default-group lookup. Keep the actual update and
admission paths unchanged.

Check coalescing, failed inquiry, removal before retry and read-only
LUN rejection using private state.
2026-10-14 15:08:03 +03:00
Gleb Chesnokov bc20ee1ca1 kunit: Test event import, delivery and timeout accounting
Move the existing client layout into a private header and link
separate suites with shared fixtures. Add task-scoped usercopy and
allocation boundaries around the actual ioctl and timeout paths.

Use private clients without scheduling work or accessing userspace
memory. Preserve payload validation and counter behavior; the
delivered-timeout assertion exposes the existing double decrement.

Include the private event headers needed by ordinary in-tree builds
in generated kernel patches.
2026-10-14 15:08:03 +03:00
Gleb Chesnokov de6f96695f kunit: Test UNMAP parsing and atomic overlap boundaries
Give the separate UNMAP suite private access to the actual overlap
function. Check parser and consumer contracts without changing
validation or descriptor traversal.

Bind each command's CDB pointer to its private buffer and provide a
private session for allocation-failure status handling.

Use allocated guard descriptors to expose count violations safely.
Expect incomplete final descriptors to be ignored while preserving
complete descriptors, including when the CDB truncates the list. Stop
sense and descriptor checks if the parser returns an unexpected status.
Keep correct-result assertions for existing failures and explicitly skip
short-transfer cases that could read beyond the baseline buffer.
2026-10-14 15:08:03 +03:00
Gleb Chesnokov c3070172c7 kunit: Add a shared test switch and a core library suite
Integrate optional native KUnit suites with out-of-tree SCST modules.
A single CONFIG_SCST_KUNIT_TEST switch includes all test objects of
each owner. Declare each suite name and label once and discover source
registrations for kunit-list without a build or loaded modules.
Preserve ordinary builds without KUnit.

Start with a fixed-wire LUN regression. Centralize private visibility
and task-scoped static-stub switches, and define retained-fixture
reporting for asynchronous tests. Use current native KUnit APIs
without compatibility shims. Keep optional execution messages behind
CONFIG_SCST_KUNIT_LOG while leaving failure diagnostics unconditional.

Add Makefile/Kbuild regression checks and document the shared switch.

Keep compatibility builds free of KUnit, including inherited test
options and allmodconfig. Generate ordinary in-tree SCST patches with
private declarations but without test suites or KUnit build options.
Check this boundary and preserve kernels without an unwinder option.
2026-10-14 15:08:03 +03:00
Gleb Chesnokov f788bfd0d6 scripts: Fix ShellCheck diagnostics
Quote scalar arguments and use arrays for command option lists so paths
and options retain their boundaries. Preserve intentional version-field
splitting with narrow documented suppressions.

Also handle GNU getopt output without losing quoted arguments and
remove warnings about masked statuses, unused values and ambiguous test
expressions.
2026-08-21 19:58:59 +03:00
Gleb Chesnokov 1a1a75d9ed scripts: Remove non-Git VCS support
Mercurial branches remain in source-listing and cleanup helpers after
Subversion support was retired. SCST development now uses Git.

Remove Mercurial detection and commands together with stale Subversion
wording. Preserve the existing no-VCS source-list fallback and all Git
behavior.
2026-08-21 19:58:59 +03:00
Gleb Chesnokov 91517609cd scripts/generate-kernel-patch: Preserve split patches
Write the specialized patch unchanged when diffstat is unavailable,
instead of creating an empty file. Propagate specialization,
output-directory, and generated-header failures to the caller.

Treat status 1 from diff as successful when generating QLogic in-tree
patches, while continuing to propagate actual diff failures.
2026-08-21 19:58:59 +03:00
Gleb Chesnokov 2b1dc822e8 scripts: Remove pre-3.10 kernel support
Reject unsupported kernel versions before download or patch generation.
Remove 2.x paths, RHEL 5/6 and Scientific Linux repositories, and
compatibility branches that cannot run with the Linux 3.10 minimum.

Keep the maintained ABT_KERNELS matrix unchanged.
2026-08-21 19:58:59 +03:00
Gleb Chesnokov 3a6fb66c83 scst: Remove residual procfs code
Procfs support was removed in 2019, but dead configuration guards,
patch specialization logic and unused declarations remained. Remove these
remnants and simplify paths that can no longer receive procfs-only objects.
2026-08-21 19:58:59 +03:00
Gleb Chesnokov f700584be4 scripts: Add Rocky Linux kernel support 2026-05-26 18:27:32 +03:00
Gleb Chesnokov 9543060a2c scripts/generate-kernel-patch: Use krel for qla2xxx patch paths
Fix mismatch where generate-kernel-patch keyed paths by full_kver
(with ‘^’) but in-tree patches were written under krel
(before ‘^’). Derive krel=${full_kver/^*} and use it for qla2xxx path
resolution.
2025-09-30 18:09:11 +03:00
Gleb Chesnokov 90c26fa844 scripts/run-regression-tests: Drop 2.6.x paths and simplify builds
Always include drivers/scsi/qla2xxx in subdirs and extend the local
module build loop to cover both qla2x00t and qla2x00t-32gbit.
2025-09-30 18:09:11 +03:00
Gleb Chesnokov 04ea811e8d scripts: Revert "scripts: Add support for the UEK_RELEASE macro"
This reverts commit 0d025a2e.

Remove unused UEK_RELEASE macro support.
2024-01-10 19:34:49 +03:00
Gleb Chesnokov cf94272cea scst: Remove scst_module.c file
I haven't been able to find any sign of this file being used since the
initial commit, so remove this dead code.
2023-04-28 15:22:58 +03:00
Gleb Chesnokov 31699069f3 nightly build: Include the AlmaLinux RHEL kernels
Add support for RHEL 8.6 8.7 9.0 9.1 nightly builds.
2022-12-14 10:25:38 +03:00
Gleb Chesnokov 1863f8c5c8 scripts: Remove references to the ibmvstgt, mpt and mvsas_tgt drivers 2022-10-25 10:44:54 +03:00
Bart Van Assche 0d025a2e1e scripts: Add support for the UEK_RELEASE macro
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@9602 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2021-11-23 04:53:45 +00:00
Bart Van Assche db29b3330d qla2x00t-32gbit: Bump the minimum kernel version to v3.18
Patches that will be applied later for this driver require kernel version
v3.18.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@9512 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2021-09-05 03:14:00 +00:00
Bart Van Assche ab65209f50 scripts/run-regression-tests: Improve support for UEK kernels
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@9220 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-12-20 02:40:29 +00:00
Bart Van Assche 81ecb3bd6a scripts: Remove all references to the mpt driver
Additionally, make scripts/run-regression-tests build the qla2x00t-32gbit
driver.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@9219 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-12-20 02:39:11 +00:00
Bart Van Assche 0aed574e88 scripts/generate-kernel-patch: Make this script appropriate for the trunk and 3.4.x branches
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@9098 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-08-03 02:56:37 +00:00
Bart Van Assche d6fd03107f Split Makefiles: move kernel build rules into Kbuild files
This patch makes the Makefiles easier to read.



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@9039 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-07-05 02:13:40 +00:00
Bart Van Assche 630573ed19 scripts/generate-kernel-patch: Parse the kernel version properly
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8986 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-05-26 20:14:20 +00:00
Bart Van Assche f4eaed79d1 scripts/generate-kernel-patch: Fix the kernel version passed to specialize-patch
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8977 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-05-23 23:46:03 +00:00
Bart Van Assche 58a1ea5bd7 scripts/generate-kernel-patch: Use read instead of readarray and fix shellcheck warnings
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8901 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-05-11 20:38:25 +00:00
Bart Van Assche ab4f2f5077 scripts/generate-kernel-patch: Use the generic drivers Makefile for CentOS 6.x
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8892 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-05-10 18:59:38 +00:00
Bart Van Assche 6773f8e9a5 scripts/run-regression-tests: Add support for distro kernels
A few examples of how to run the regression tests against a distro kernel:

scripts/run-regression-tests -l 4.18.0-147.5.1.el8_1^CentOS^8.1.1911-nc
scripts/run-regression-tests -l 4.18.0-80.11.2.el8_0^CentOS^8.0.1905-nc
scripts/run-regression-tests -l 3.10.0-1127.el7^CentOS^7.8.2003-nc
scripts/run-regression-tests -l 3.10.0-1062.18.1.el7^CentOS^7.7.1908-nc
scripts/run-regression-tests -l 3.10.0-957.27.2.el7^CentOS^7.6.1810-nc
scripts/run-regression-tests -l 3.10.0-862.14.4.el7^CentOS^7.5.1804-nc



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8885 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-05-09 22:54:47 +00:00
Bart Van Assche b3b658bd09 scripts/generate-kernel-patch: Make several paths absolute
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8884 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-05-09 22:48:23 +00:00
Bart Van Assche 9ece5279ad Add the qla2x00t-32gbit/trace/events/qla.h file to the output of scripts/generate-kernel-patch
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8876 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-05-08 15:23:43 +00:00
Bart Van Assche 40b4dfd289 scst: Split the scst_targ.c source file
Since the scst_targ.c source file is large, move the functions for processing
SCSI commands into a new source file, scst_local_cmd.c.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8768 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2020-02-23 17:16:12 +00:00
Bart Van Assche 5ca9d97b65 scst: Remove the code that depends on the SCSI_EXEC_REQ_FIFO_DEFINED macro
The exec_req_fifo patches have been removed some time ago. Hence also remove
the code that depends on these patches having been applied. See also commit
78d6da4517 ("scst: Remove obsolete exec_req_fifo kernel patches"; r8022).



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8698 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-12-23 18:55:58 +00:00
Bart Van Assche 2f37a91d77 Remove more references to the ibmvstgt, mpt and mvsas_tgt drivers
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8652 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-11-03 21:29:36 +00:00
Bart Van Assche 9267f92ba5 scripts/generate-kernel-patch: Only select new QLogic driver for kernel versions >= 3.15
A recent change (.cmd_size in the SCSI host template) increased the
minimal kernel version required for qla2x00t-32gbit. Update
scripts/generate-kernel-patch.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8571 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-08-26 00:25:58 +00:00
Bart Van Assche 4c74d8a2c7 scripts/generate-kernel-patch: Remove obsolete download_kernel() calls
See also 0dceefe878 ("qla2x00t, scripts: Introduce download_and_extract_kernel_tree()") / r8117.



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8406 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-06-02 15:01:46 +00:00
Bart Van Assche b8a1634ced qla2x00t-32gbit: Import this driver into the SCST repository
The source code in this commit is a combination of the v4.18.20 qla2xxx
driver and the QLogic target driver from the QLogic git repository
(commit ac4faf74f437 ("qla2xxx: Fix session creation fail")).


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8091 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-03-29 01:29:46 +00:00
Bart Van Assche 0bc77ddfd2 qla2x00t, regression tests: Move QLogic target code
Move the QLogic target code from drivers/scst/qla2x00-target/ to
drivers/scsi/qla2xxx/.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8084 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-03-26 02:03:17 +00:00
Bart Van Assche bf9fd22294 scripts/generate-kernel-patch: Fix shellcheck warnings
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8083 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-03-26 02:02:07 +00:00
Bart Van Assche 304766529e scripts/generate-kernel-patch: Only include fcst for kernel versions >= 2.6.37
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8054 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2019-03-14 01:49:26 +00:00
Bart Van Assche 0c1ca90007 scripts/generate-kernel-patch: Download the correct kernel version
Additionally, only try to download the Linux kernel when including the
qla2x00t driver in the output.

This is a modified version of a patch supplied by Pascal de Bruijn.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7825 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-11-22 05:58:42 +00:00
Bart Van Assche e46b7a93fc scripts/generate-kernel-patch: Fix the code that only includes fcst for kernel versions >= 2.6.33
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7824 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-11-22 05:56:18 +00:00
Bart Van Assche acf304fb88 scripts/generate-kernel-patch: Download the kernel tarball if necessary
From Pascal de Bruijn <p.debruijn@unilogic.nl>.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7821 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-11-21 02:54:34 +00:00
Bart Van Assche 5f77ac3dd3 scripts/generate-kernel-patch: Only add scst/README_in-tree if present
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7793 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-11-04 21:19:52 +00:00
Bart Van Assche 30d36bbfe6 scripts/generate-kernel-patch: Make the patch format more standard
Make sure that both paths in the diff header have the same number of
components. This patch does not change the result of applying a patch
generated by this script.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7441 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2018-07-23 04:31:00 +00:00
Bart Van Assche d554163553 scripts/generate-kernel-patch: Fix a regression introduced in r7164
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7237 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2017-10-03 00:04:53 +00:00
Bart Van Assche b2f00687fd scripts/generate-kernel-patch: Stop applying the put_page_callback and exec_req_fifo patches
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7164 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2017-05-02 18:32:56 +00:00
Bart Van Assche af36dbc1f4 scripts/generate-kernel-patch: Fix shellcheck warnings
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7035 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-11-26 19:25:06 +00:00
Bart Van Assche 6ba9d088ee scripts/generate-kernel-patch: Revert r7022
Revert r7022 because:
* Changing $kver3 into $kver is wrong for 2.x kernels.
* Building include/iscsi_scst_itf_ver.h must not depend on the kernel version.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7032 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-11-24 16:53:00 +00:00
Vladislav Bolkhovitin 9ed7b217e3 generate-kernel-patch: optimize generation of Makefile for scst_local
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7028 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-11-17 05:24:07 +00:00
Vladislav Bolkhovitin 84c71bc53e generate-kernel-patch: optimize generation of Makefile.drivers patch
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7027 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2016-11-17 05:18:55 +00:00