[PATCH v2 5/6] tests: unit tests for iSCSI iSER

Han Han hhan at redhat.com
Fri May 15 03:46:04 UTC 2020


Signed-off-by: Han Han <hhan at redhat.com>
---
 .../qemuxml2argvdata/disk-network-iscsi.args  |  8 +++-
 .../disk-network-iscsi.x86_64-2.12.0.args     |  7 ++-
 .../disk-network-iscsi.x86_64-latest.args     | 45 +++++++++++--------
 tests/qemuxml2argvdata/disk-network-iscsi.xml |  9 ++++
 tests/qemuxml2argvtest.c                      |  5 ++-
 .../qemuxml2xmloutdata/disk-network-iscsi.xml | 10 +++++
 tests/qemuxml2xmltest.c                       |  4 +-
 tests/virstoragetest.c                        | 16 +++++++
 8 files changed, 80 insertions(+), 24 deletions(-)

diff --git a/tests/qemuxml2argvdata/disk-network-iscsi.args b/tests/qemuxml2argvdata/disk-network-iscsi.args
index 53b3821e..23ef32f2 100644
--- a/tests/qemuxml2argvdata/disk-network-iscsi.args
+++ b/tests/qemuxml2argvdata/disk-network-iscsi.args
@@ -30,7 +30,7 @@ server,nowait \
 if=none,id=drive-virtio-disk0 \
 -device virtio-blk-pci,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,\
 id=virtio-disk0,bootindex=1 \
--drive file=iscsi://example.org:6000/iqn.1992-01.com.example/1,format=raw,\
+-drive file=iser://example.org:6000/iqn.1992-01.com.example/1,format=raw,\
 if=none,id=drive-virtio-disk1 \
 -device virtio-blk-pci,bus=pci.0,addr=0x5,drive=drive-virtio-disk1,\
 id=virtio-disk1 \
@@ -47,4 +47,8 @@ id=virtio-disk3 \
 -drive file=iscsi://example.org:3260/iqn.1992-01.com.example/0,format=raw,\
 if=none,id=drive-scsi0-0-0-0 \
 -device scsi-block,bus=scsi0.0,channel=0,scsi-id=0,lun=0,\
-drive=drive-scsi0-0-0-0,id=scsi0-0-0-0
+drive=drive-scsi0-0-0-0,id=scsi0-0-0-0 \
+-drive file=iser://example.org:3260/iqn.1992-01.com.example/1,format=raw,\
+if=none,id=drive-scsi0-0-0-1 \
+-device scsi-block,bus=scsi0.0,channel=0,scsi-id=0,lun=1,\
+drive=drive-scsi0-0-0-1,id=scsi0-0-0-1
diff --git a/tests/qemuxml2argvdata/disk-network-iscsi.x86_64-2.12.0.args b/tests/qemuxml2argvdata/disk-network-iscsi.x86_64-2.12.0.args
index 930d8d5d..b6b89912 100644
--- a/tests/qemuxml2argvdata/disk-network-iscsi.x86_64-2.12.0.args
+++ b/tests/qemuxml2argvdata/disk-network-iscsi.x86_64-2.12.0.args
@@ -34,7 +34,7 @@ if=none,id=drive-virtio-disk0 \
 -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x3,drive=drive-virtio-disk0,\
 id=virtio-disk0,bootindex=1 \
 -drive file.driver=iscsi,file.portal=example.org:6000,\
-file.target=iqn.1992-01.com.example,file.lun=1,file.transport=tcp,format=raw,\
+file.target=iqn.1992-01.com.example,file.lun=1,file.transport=iser,format=raw,\
 if=none,id=drive-virtio-disk1 \
 -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk1,\
 id=virtio-disk1 \
@@ -61,6 +61,11 @@ file.target=iqn.1992-01.com.example,file.lun=0,file.transport=tcp,format=raw,\
 if=none,id=drive-scsi0-0-0-0 \
 -device scsi-block,bus=scsi0.0,channel=0,scsi-id=0,lun=0,\
 drive=drive-scsi0-0-0-0,id=scsi0-0-0-0 \
+-drive file.driver=iscsi,file.portal=example.org:3260,\
+file.target=iqn.1992-01.com.example,file.lun=1,file.transport=iser,format=raw,\
+if=none,id=drive-scsi0-0-0-1 \
+-device scsi-block,bus=scsi0.0,channel=0,scsi-id=0,lun=1,\
+drive=drive-scsi0-0-0-1,id=scsi0-0-0-1 \
 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\
 resourcecontrol=deny \
 -msg timestamp=on
diff --git a/tests/qemuxml2argvdata/disk-network-iscsi.x86_64-latest.args b/tests/qemuxml2argvdata/disk-network-iscsi.x86_64-latest.args
index 98481280..716646d5 100644
--- a/tests/qemuxml2argvdata/disk-network-iscsi.x86_64-latest.args
+++ b/tests/qemuxml2argvdata/disk-network-iscsi.x86_64-latest.args
@@ -31,47 +31,54 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
 -device virtio-scsi-pci,id=scsi0,bus=pci.0,addr=0x2 \
 -blockdev '{"driver":"iscsi","portal":"example.org:6000",\
 "target":"iqn.1992-01.com.example","lun":0,"transport":"tcp",\
+"node-name":"libvirt-6-storage","auto-read-only":true,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-6-format","read-only":false,"driver":"raw",\
+"file":"libvirt-6-storage"}' \
+-device virtio-blk-pci,bus=pci.0,addr=0x3,drive=libvirt-6-format,\
+id=virtio-disk0,bootindex=1 \
+-blockdev '{"driver":"iscsi","portal":"example.org:6000",\
+"target":"iqn.1992-01.com.example","lun":1,"transport":"iser",\
 "node-name":"libvirt-5-storage","auto-read-only":true,"discard":"unmap"}' \
 -blockdev '{"node-name":"libvirt-5-format","read-only":false,"driver":"raw",\
 "file":"libvirt-5-storage"}' \
--device virtio-blk-pci,bus=pci.0,addr=0x3,drive=libvirt-5-format,\
-id=virtio-disk0,bootindex=1 \
+-device virtio-blk-pci,bus=pci.0,addr=0x4,drive=libvirt-5-format,\
+id=virtio-disk1 \
+-object secret,id=libvirt-4-storage-auth-secret0,\
+data=9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\
+keyid=masterKey0,iv=AAECAwQFBgcICQoLDA0ODw==,format=base64 \
 -blockdev '{"driver":"iscsi","portal":"example.org:6000",\
-"target":"iqn.1992-01.com.example","lun":1,"transport":"tcp",\
+"target":"iqn.1992-01.com.example:storage","lun":1,"transport":"tcp",\
+"user":"myname","password-secret":"libvirt-4-storage-auth-secret0",\
 "node-name":"libvirt-4-storage","auto-read-only":true,"discard":"unmap"}' \
 -blockdev '{"node-name":"libvirt-4-format","read-only":false,"driver":"raw",\
 "file":"libvirt-4-storage"}' \
--device virtio-blk-pci,bus=pci.0,addr=0x4,drive=libvirt-4-format,\
-id=virtio-disk1 \
+-device virtio-blk-pci,bus=pci.0,addr=0x5,drive=libvirt-4-format,\
+id=virtio-disk2 \
 -object secret,id=libvirt-3-storage-auth-secret0,\
 data=9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\
 keyid=masterKey0,iv=AAECAwQFBgcICQoLDA0ODw==,format=base64 \
 -blockdev '{"driver":"iscsi","portal":"example.org:6000",\
-"target":"iqn.1992-01.com.example:storage","lun":1,"transport":"tcp",\
+"target":"iqn.1992-01.com.example:storage","lun":2,"transport":"tcp",\
 "user":"myname","password-secret":"libvirt-3-storage-auth-secret0",\
 "node-name":"libvirt-3-storage","auto-read-only":true,"discard":"unmap"}' \
 -blockdev '{"node-name":"libvirt-3-format","read-only":false,"driver":"raw",\
 "file":"libvirt-3-storage"}' \
--device virtio-blk-pci,bus=pci.0,addr=0x5,drive=libvirt-3-format,\
-id=virtio-disk2 \
--object secret,id=libvirt-2-storage-auth-secret0,\
-data=9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\
-keyid=masterKey0,iv=AAECAwQFBgcICQoLDA0ODw==,format=base64 \
--blockdev '{"driver":"iscsi","portal":"example.org:6000",\
-"target":"iqn.1992-01.com.example:storage","lun":2,"transport":"tcp",\
-"user":"myname","password-secret":"libvirt-2-storage-auth-secret0",\
+-device virtio-blk-pci,bus=pci.0,addr=0x6,drive=libvirt-3-format,\
+id=virtio-disk3 \
+-blockdev '{"driver":"iscsi","portal":"example.org:3260",\
+"target":"iqn.1992-01.com.example","lun":0,"transport":"tcp",\
 "node-name":"libvirt-2-storage","auto-read-only":true,"discard":"unmap"}' \
 -blockdev '{"node-name":"libvirt-2-format","read-only":false,"driver":"raw",\
 "file":"libvirt-2-storage"}' \
--device virtio-blk-pci,bus=pci.0,addr=0x6,drive=libvirt-2-format,\
-id=virtio-disk3 \
+-device scsi-block,bus=scsi0.0,channel=0,scsi-id=0,lun=0,\
+drive=libvirt-2-format,id=scsi0-0-0-0 \
 -blockdev '{"driver":"iscsi","portal":"example.org:3260",\
-"target":"iqn.1992-01.com.example","lun":0,"transport":"tcp",\
+"target":"iqn.1992-01.com.example","lun":1,"transport":"iser",\
 "node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \
 -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw",\
 "file":"libvirt-1-storage"}' \
--device scsi-block,bus=scsi0.0,channel=0,scsi-id=0,lun=0,\
-drive=libvirt-1-format,id=scsi0-0-0-0 \
+-device scsi-block,bus=scsi0.0,channel=0,scsi-id=0,lun=1,\
+drive=libvirt-1-format,id=scsi0-0-0-1 \
 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\
 resourcecontrol=deny \
 -msg timestamp=on
diff --git a/tests/qemuxml2argvdata/disk-network-iscsi.xml b/tests/qemuxml2argvdata/disk-network-iscsi.xml
index 8a55f1b2..9812b4b1 100644
--- a/tests/qemuxml2argvdata/disk-network-iscsi.xml
+++ b/tests/qemuxml2argvdata/disk-network-iscsi.xml
@@ -25,6 +25,7 @@
       <driver name='qemu' type='raw'/>
       <source protocol='iscsi' name='iqn.1992-01.com.example/1'>
         <host name='example.org' port='6000'/>
+        <iser/>
       </source>
       <target dev='vdb' bus='virtio'/>
     </disk>
@@ -55,6 +56,14 @@
       </source>
       <target dev='sda' bus='scsi'/>
     </disk>
+    <disk type='network' device='lun'>
+      <driver name='qemu' type='raw'/>
+      <source protocol='iscsi' name='iqn.1992-01.com.example/1'>
+        <host name='example.org'/>
+        <iser/>
+      </source>
+      <target dev='sdb' bus='scsi'/>
+    </disk>
     <controller type='usb' index='0'/>
     <controller type='pci' index='0' model='pci-root'/>
     <controller type='scsi' index='0' model='virtio-scsi'/>
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index 4ab664a8..f5419701 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -1060,7 +1060,10 @@ mymain(void)
     DO_TEST("disk-network-nbd", NONE);
     DO_TEST_CAPS_VER("disk-network-nbd", "2.12.0");
     DO_TEST_CAPS_LATEST("disk-network-nbd");
-    DO_TEST("disk-network-iscsi", QEMU_CAPS_VIRTIO_SCSI, QEMU_CAPS_SCSI_BLOCK);
+    DO_TEST("disk-network-iscsi",
+            QEMU_CAPS_VIRTIO_SCSI,
+            QEMU_CAPS_SCSI_BLOCK,
+            QEMU_CAPS_ISCSI_ISER);
     DO_TEST("disk-network-iscsi-modern",
             QEMU_CAPS_VIRTIO_SCSI,
             QEMU_CAPS_SCSI_BLOCK,
diff --git a/tests/qemuxml2xmloutdata/disk-network-iscsi.xml b/tests/qemuxml2xmloutdata/disk-network-iscsi.xml
index 757b9b7b..0c8722a2 100644
--- a/tests/qemuxml2xmloutdata/disk-network-iscsi.xml
+++ b/tests/qemuxml2xmloutdata/disk-network-iscsi.xml
@@ -26,6 +26,7 @@
       <driver name='qemu' type='raw'/>
       <source protocol='iscsi' name='iqn.1992-01.com.example/1'>
         <host name='example.org' port='6000'/>
+        <iser/>
       </source>
       <target dev='vdb' bus='virtio'/>
       <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
@@ -60,6 +61,15 @@
       <target dev='sda' bus='scsi'/>
       <address type='drive' controller='0' bus='0' target='0' unit='0'/>
     </disk>
+    <disk type='network' device='lun'>
+      <driver name='qemu' type='raw'/>
+      <source protocol='iscsi' name='iqn.1992-01.com.example/1'>
+        <host name='example.org' port='3260'/>
+        <iser/>
+      </source>
+      <target dev='sdb' bus='scsi'/>
+      <address type='drive' controller='0' bus='0' target='0' unit='1'/>
+    </disk>
     <controller type='usb' index='0'>
       <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
     </controller>
diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c
index 033f8101..e7d881fa 100644
--- a/tests/qemuxml2xmltest.c
+++ b/tests/qemuxml2xmltest.c
@@ -331,7 +331,9 @@ mymain(void)
     DO_TEST_CAPS_VER("disk-cache", "2.12.0");
     DO_TEST_CAPS_LATEST("disk-cache");
     DO_TEST("disk-network-nbd", NONE);
-    DO_TEST("disk-network-iscsi", QEMU_CAPS_VIRTIO_SCSI);
+    DO_TEST("disk-network-iscsi",
+            QEMU_CAPS_VIRTIO_SCSI,
+            QEMU_CAPS_ISCSI_ISER);
     DO_TEST("disk-network-gluster", NONE);
     DO_TEST("disk-network-rbd", NONE);
     DO_TEST("disk-network-source-auth", NONE);
diff --git a/tests/virstoragetest.c b/tests/virstoragetest.c
index 98f47f0e..7f72e76a 100644
--- a/tests/virstoragetest.c
+++ b/tests/virstoragetest.c
@@ -1314,6 +1314,11 @@ mymain(void)
                        "<source protocol='nbd' name='/exp'>\n"
                        "  <host transport='unix' socket='/tmp/sock'/>\n"
                        "</source>\n");
+    TEST_BACKING_PARSE("iser://example.org:1234/exportname",
+                       "<source protocol='iscsi' name='exportname'>\n"
+                       "  <host name='example.org' port='1234'/>\n"
+                       "  <iser/>\n"
+                       "</source>\n");
     TEST_BACKING_PARSE_FULL("iscsi://testuser:testpass@example.org:1234/exportname",
                             "<source protocol='iscsi' name='exportname'>\n"
                             "  <host name='example.org' port='1234'/>\n"
@@ -1550,6 +1555,17 @@ mymain(void)
                        "<source protocol='iscsi' name='iqn.2016-12.com.virttest:emulated-iscsi-noauth.target/0'>\n"
                        "  <host name='test.org' port='3260'/>\n"
                        "</source>\n");
+    TEST_BACKING_PARSE("json:{\"file\":{\"driver\":\"iscsi\","
+                                       "\"transport\":\"iser\","
+                                       "\"portal\":\"test.org\","
+                                       "\"target\":\"iqn.2016-12.com.virttest:emulated-iscsi-noauth.target\","
+                                       "\"lun\":\"1\""
+                                      "}"
+                            "}",
+                       "<source protocol='iscsi' name='iqn.2016-12.com.virttest:emulated-iscsi-noauth.target/1'>\n"
+                       "  <host name='test.org' port='3260'/>\n"
+                       "  <iser/>\n"
+                       "</source>\n");
     TEST_BACKING_PARSE_FULL("json:{\"file\":{\"driver\":\"iscsi\","
                                             "\"transport\":\"tcp\","
                                             "\"portal\":\"test.org\","
-- 
2.25.0




More information about the libvir-list mailing list