ISCSI-TEST-CU(1) iscsi-test-cu: iSCSI/SCSI pr ISCSI-TEST-CU(1)

iscsi-test-cu - مجموعه آزمون پروتکل‌های iSCSI/SCSI

iscsi-test-cu [ OPTIONS ] <ISCSI-PORTAL>

iscsi-test-cu [-i --initiator-name=<IQN>] [-I --initiator-name-2=<IQN>] [-l --list] [-t --test=<family>|*[.<suite>|*[.<test>|*]]] [-d --dataloss] [-s --allow-sanitize] [-V --Verbose-scsi] [-x --xml] [-? --help]

دستور iscsi-test-cu یک مجموعه آزمون برای iSCSI/SCSI است.

قالب درگاه iSCSI به‌صورت 'iscsi://[<username>[%<password>]@]<host>[:<port>]/<iqn-name>/<lun>' است.

گزینهٔ Port درگاه TCP روی هدف (target) برای اتصال است. مقدار پیش‌فرض 3260 است.

نام کاربری (username) و گذرواژه (password) تنها زمانی مورد نیاز هستند که هدف نیاز به احراز هویت CHAP داشته باشد. به‌صورت اختیاری می‌توانید نام کاربری و گذرواژه را از طریق متغیرهای محیطی LIBISCSI_CHAP_USERNAME و LIBISCSI_CHAP_PASSWORD مشخص کنید.

میزبان (Host) را می‌توان به‌صورت نام میزبان، نشانی IPv4 یا نشانی IPv6 مشخص کرد. مثال‌ها:

iscsi://192.0.2.1/iqn.ronnie.test/1
iscsi://[2001:DB8::1]:3261/iqn.ronnie.test/1
iscsi://ronnie%password@iscsi.example.com/iqn.ronnie.test/1

-i --initiator-name=<IQN>

همهٔ آزمون‌ها حداقل از یک اتصال iSCSI به هدف استفاده می‌کنند و این نام آغازگر (initiator) است که برای آن نشست اولیه استفاده می‌شود و مقدار پیش‌فرض آن 'iqn.2007-10.com.github:sahlberg:libiscsi:iscsi-test' است.

از این آرگومان برای تغییر نام آغازگر مورد استفاده در نشست اولیه استفاده می‌شود.

-I --initiator-name-2=<IQN>

برخی آزمون‌ها از اتصال دومی به هدف استفاده می‌کنند، مانند 'it nexus loss tests'. نام پیش‌فرض استفاده‌شده برای این اتصال دوم 'iqn.2007-10.com.github:sahlberg:libiscsi:iscsi-test-2' است.

از این آرگومان برای تغییر نام آغازگر مورد استفاده در نشست ثانویه استفاده می‌شود.

-l --list

این آرگومان تمام آزمون‌های موجود را فهرست می‌کند.

آزمون‌ها به «خانواده‌ها» ('families')، «مجموعه‌ها» ('suites') و «آزمون‌ها» ('tests' تقسیم شده و با '.' از یکدیگر جدا می‌شوند.

iscsi-test-cu -l
ALL
ALL.CompareAndWrite
ALL.CompareAndWrite.Simple
ALL.CompareAndWrite.Miscompare
ALL.GetLBAStatus
ALL.GetLBAStatus.Simple
ALL.GetLBAStatus.BeyondEol
...

-t --test=<family>|*[.<suite>|*[.<test>|*]]

این آرگومان فهرستی جداشده با کاما از عبارت‌های آزمون برای اجرا را مشخص می‌کند. اگر این آرگومان حذف شود، همه آزمون‌ها اجرا خواهند شد. همچنین می‌توانید فقط نام فایلی را مشخص کنید تا فهرست آزمون‌ها از آن خوانده شود.
برای اجرای همهٔ آزمون‌ها:
iscsi-test-cu --test=ALL iscsi://192.0.2.1/iqn.ronnie/test/1
برای اجرای مجموعه آزمون READ16:
iscsi-test-cu --test=SCSI.Read16.* \
  iscsi://192.0.2.1/iqn.ronnie/test/1
برای اجرای تنها یک آزمون مشخص:
iscsi-test-cu --test=iSCSI.iSCSIResiduals.Read10Invalid \
  iscsi://192.0.2.1/iqn.ronnie/test/1
اجرای همه آزمون‌ها در مجموعه TestUnitReady و همچنین آزمون Read16.Flags:
iscsi-test-cu --test=SCSI.TestUnitReady.*,SCSI.Read16.Flags \
  iscsi://192.0.2.1/iqn.ronnie/test/1
اجرای همه آزمون‌های فهرست‌شده در فایل ~/tests-to-run:
iscsi-test-cu --test=~/tests-to-run
  iscsi://192.0.2.1/iqn.ronnie/test/1

-d --dataloss

به‌طور پیش‌فرض این ابزار تنها آزمون‌های غیرمخرب را اجرا می‌کند. برای آزمودن دستورهایی که داده‌ها را تغییر می‌دهند (مانند آزمون‌های Write*) باید پرچم --dataloss را مشخص کنید.

آزمون‌هایی که به --dataloss نیاز دارند داده‌های روی LUN را رونویسی خواهند کرد و هنگام اجرای این آزمون‌ها تمامی اطلاعات روی آن LUN از بین خواهد رفت.

-s --allow-sanitize

انتظار می‌رود کد دستوری (opcode) در SBC SANITIZE زمان قابل توجهی تا تکمیل شدن نیاز داشته باشد و بنابراین آزمون‌های مربوط به این کد دستوری برای اجراهای آزمایشی معمول مناسب نیستند.

به‌طور پیش‌فرض از تمام آزمون‌های SBC SANITIZE صرف‌نظر می‌شود. اگر واقعاً قصد دارید آزمون‌های SANITIZE را انجام دهید از این آرگومان استفاده کنید.

-V --Verbose-scsi

هدف این آزمون‌ها خودتوضیح‌دهنده بودن است. با مشخص کردن پرچم -V، ابزار آزمون تمامی دستورهای SCSI ارسال‌شده به دستگاه، آرگومان‌ها و نتیجهٔ مورد انتظار را چاپ می‌کند.

اگر آزمونی شکست خورد، آن آزمون را با آرگومان -V مجدداً اجرا کنید تا علت شکست آن را مشاهده کنید. اگر آن هم کمکی نکرد، زمان آن است که wireshark را اجرا کرده و بررسی کنید چه رخ داده است.

iscsi-test-cu --test SCSI.Read10.BeyondEol iscsi://192.0.2.1/iqn.ronnie.test/1 -V
Suite: Read10
  Test: BeyondEol ... 
    Test READ10 1-256 blocks one block beyond the end
    Send READ10 (Expecting LBA_OUT_OF_RANGE) LBA:2097152 blocks:1 rdprotect:0 dpo:0 fua:0 fua_nv:0 group:0
    [OK] READ10 returned ILLEGAL_REQUEST/LBA_OUT_OF_RANGE.
...

-x --xml

این گزینه نتایج آزمون را در قالبی ماشین‌خوان برای آزمون‌های خودکار تولید می‌کند.

ابزار iscsi-test-cu می‌تواند نتایج آزمون را به‌صورت ماشین‌خوان برای استفاده در کارساز CI تولید کند. از گزینه --xml به همراه هر مجموعه آزمونی استفاده کنید تا فایلی به نام CUnitAutomated-Results.xml در دایرکتوری کاری جاری شما نوشته شود. این نتایج را می‌توان با استفاده از این اسکریپت به قالب JUnit تبدیل کرد: http://git.cyrusimap.org/cyrus-imapd/plain/cunit/cunit-to-junit.pl

وضعیت خروجی اسکریپت نشان‌دهنده موفقیت‌آمیز بودن یا نبودن آزمون‌ها است. اگر ترجیح می‌دهید اسکریپت وضعیتی را برگرداند که نشان دهد تبدیل cunit به junit موفق بوده است یا خیر، می‌توانید اسکریپت را با این تغییر وصله کنید:

diff --git a/cunit-to-junit.pl.orig b/cunit-to-junit.pl
index 7cf9320..9182ff0 100644
--- a/cunit-to-junit.pl.orig
+++ b/cunit-to-junit.pl
@@ -226,4 +226,4 @@ foreach my $s (@suites)
 }
 print "$0: ran $nrun tests, $nfailed failed\n";
-exit(1) if ($nfailed > 0);
+#exit(1) if ($nfailed > 0);

-? --help

نمایش متن راهنمای اولیه.

http://github.com/sahlberg/libiscsi

02/16/2015 iscsi-test-cu