support more SCSI commands: ReadDefectData, Sanitize, and expanded CI

New SCSI commands implemented:
- READ DEFECT DATA(10/12): returns empty defect list (virtual device)
- SANITIZE: supports OVERWRITE and BLOCK ERASE (zeros all blocks)
- EXTENDED COPY / RECEIVE COPY RESULTS: registered as unsupported

New unit tests for ReadDefectData10/12, Sanitize, and command registration.

New CI libiscsi test cases:
- PersistentReservation (PrinReadKeys, PrinReportCapabilities,
  ProutRegister, ProutReserve)
- ReadDefectData10/12 (Simple)
- CompareAndWrite (Simple)
- OrWrite (Simple, BeyondEol, ZeroBlocks)
- GetLBAStatus (Simple, BeyondEol)
- ReportSupportedOpcodes (OneCommand)

Partial fix for #55

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Lei Xue
2026-03-14 13:06:35 +08:00
parent 3c41cd619b
commit 36149cd4a9
4 changed files with 268 additions and 4 deletions

View File

@@ -106,18 +106,41 @@ jobs:
# Reserve/Release Tests
./test-tool/iscsi-test-cu -d -A --test=ALL.Reserve6.Simple iscsi://127.0.0.1:3260/${{env.TARGET}}/0
# Persistent Reservation Tests
./test-tool/iscsi-test-cu -d -A --test=ALL.PrinReadKeys.Simple iscsi://127.0.0.1:3260/${{env.TARGET}}/0
./test-tool/iscsi-test-cu -d -A --test=ALL.PrinReportCapabilities.Simple iscsi://127.0.0.1:3260/${{env.TARGET}}/0
./test-tool/iscsi-test-cu -d -A --test=ALL.ProutRegister.Simple iscsi://127.0.0.1:3260/${{env.TARGET}}/0
./test-tool/iscsi-test-cu -d -A --test=ALL.ProutReserve.Simple iscsi://127.0.0.1:3260/${{env.TARGET}}/0
# Unmap Tests
./test-tool/iscsi-test-cu -d -A --test=ALL.Unmap.Simple iscsi://127.0.0.1:3260/${{env.TARGET}}/0
./test-tool/iscsi-test-cu -d -A --test=ALL.Unmap.VPD iscsi://127.0.0.1:3260/${{env.TARGET}}/0
./test-tool/iscsi-test-cu -d -A --test=ALL.Unmap.ZeroBlocks iscsi://127.0.0.1:3260/${{env.TARGET}}/0
# Read Defect Data Tests
./test-tool/iscsi-test-cu -d -A --test=ALL.ReadDefectData10.Simple iscsi://127.0.0.1:3260/${{env.TARGET}}/0
./test-tool/iscsi-test-cu -d -A --test=ALL.ReadDefectData12.Simple iscsi://127.0.0.1:3260/${{env.TARGET}}/0
# CompareAndWrite Tests
./test-tool/iscsi-test-cu -d -A --test=ALL.CompareAndWrite.Simple iscsi://127.0.0.1:3260/${{env.TARGET}}/0
# OrWrite Tests
./test-tool/iscsi-test-cu -d -A --test=ALL.OrWrite.Simple iscsi://127.0.0.1:3260/${{env.TARGET}}/0
./test-tool/iscsi-test-cu -d -A --test=ALL.OrWrite.BeyondEol iscsi://127.0.0.1:3260/${{env.TARGET}}/0
./test-tool/iscsi-test-cu -d -A --test=ALL.OrWrite.ZeroBlocks iscsi://127.0.0.1:3260/${{env.TARGET}}/0
# GetLBAStatus Tests
./test-tool/iscsi-test-cu -d -A --test=ALL.GetLBAStatus.Simple iscsi://127.0.0.1:3260/${{env.TARGET}}/0
./test-tool/iscsi-test-cu -d -A --test=ALL.GetLBAStatus.BeyondEol iscsi://127.0.0.1:3260/${{env.TARGET}}/0
# Other SCSI Tests
./test-tool/iscsi-test-cu -d -A --test=ALL.PreventAllow iscsi://127.0.0.1:3260/${{env.TARGET}}/0
./test-tool/iscsi-test-cu -d -A --test=ALL.StartStopUnit iscsi://127.0.0.1:3260/${{env.TARGET}}/0
./test-tool/iscsi-test-cu -d -A --test=ALL.TestUnitReady iscsi://127.0.0.1:3260/${{env.TARGET}}/0
./test-tool/iscsi-test-cu -d -A --test=ALL.ReportSupportedOpcodes.Simple iscsi://127.0.0.1:3260/${{env.TARGET}}/0
./test-tool/iscsi-test-cu -d -A --test=ALL.ReportSupportedOpcodes.OneCommand iscsi://127.0.0.1:3260/${{env.TARGET}}/0
# iSCSI Protocol Tests
./test-tool/iscsi-test-cu -d -A --test=ALL.iSCSITMF iscsi://127.0.0.1:3260/${{env.TARGET}}/0 || true
./test-tool/iscsi-test-cu -d -A --test=ALL.iSCSIcmdsn iscsi://127.0.0.1:3260/${{env.TARGET}}/0