On Fri, Feb 15, 2019, 16:36 Jonkery Huang <[email protected] wrote:

> Hello Nir,
>
> Thanks for the sharing, it is very helpful!
>
> Are these test scripts open sourced and can be re-used by others for
> testing oVirt?
>

Sure, everything we do is open source.

These tests are part of vdsm, available here:
https://github.com/ovirt/vdsm

Example tests:

https://github.com/oVirt/vdsm/blob/master/tests/storage/blocksd_test.py

https://github.com/oVirt/vdsm/blob/master/tests/storage/lvm_test.py

The pytest infrastructure:
https://github.com/oVirt/vdsm/blob/master/tests/storage/conftest.py

Nir

> Thanks
> Jonkery
>
> On 2/14/2019 6:26 AM, Nir Soffer wrote:
>
> I want to share our new block storage tests, running on your laptop, from
> your editor, creating
> real block storage domain with real logical volumes.
>
> One catch, these tests require root - there is no way to create devices
> without root.
> To make it easy to run as root only the tests that need root, they are
> marked with "root" mark.
>
> Here an example of running the root tests for block storage domain:
>
>     $ sudo ~/.local/bin/tox -e storage-py27 tests/storage/blocksd_test.py
> -- -m root
>
> And for lvm:
>
>     $ sudo ~/.local/bin/tox -e storage-py27 tests/storage/lvm_test.py --
> -m root
>
> To run all storage tests that require root:
>
>     $ sudo ~/.local/bin/tox -e storage-py27 -- -m root tests/storage
>
> Another issue - after running the tests as root, you need to fix ownership
> of some
> files in .tox/, tests/htmlcov*, and /var/tmp/vdsm. You can:
>
>     $ sudo chown -R $USER:$USER .tox tests /var/tmp/vdsm
>
> We will improve this later.
>
> Note that I'm running tox installed as user:
>
>     $ pip install --user tox
>
> This gets most recent tox with minimal breakage of system python.
>
> With the new tests, our code coverage is now 57%:
>
> https://jenkins.ovirt.org/job/vdsm_standard-check-patch/2888/artifact/check-patch.tests-py27.fc28.x86_64/htmlcov-storage-py27/index.html
>
> - blockSD: 47%
>
> https://jenkins.ovirt.org/job/vdsm_standard-check-patch/2888/artifact/check-patch.tests-py27.fc28.x86_64/htmlcov-storage-py27/_home_jenkins_workspace_vdsm_standard-check-patch_vdsm_lib_vdsm_storage_blockSD_py.html
>
> - lvm: 74%
>
> https://jenkins.ovirt.org/job/vdsm_standard-check-patch/2888/artifact/check-patch.tests-py27.fc28.x86_64/htmlcov-storage-py27/_home_jenkins_workspace_vdsm_standard-check-patch_vdsm_lib_vdsm_storage_lvm_py.html
>
> These tests are rather slow, all the root tests take 26 seconds. But OST
> takes more then
> 40 minutes, and cover less code in this area.
>
> OST coverage for lvm mudle: 71%
>
> https://jenkins.ovirt.org/job/ovirt-system-tests_manual/4071/artifact/exported-artifacts/coverage/vdsm/html/_usr_lib_python2_7_site-packages_vdsm_storage_lvm_py.html
>
> To get debug the tests, you can use new option in recent pytest
> --log-cli-level:
>
>     $ sudo ~/.local/bin/tox -e storage-py27 tests/storage/blocksd_test.py
> -- -m root --log-cli-level=info
>
> Here is an example output from a test creating a storage domain
> (use --log-cli-leve=debug if this is not verbose enough)
>
> -------------------------------------------------------------------------------
> live log call
> -------------------------------------------------------------------------------
> blockSD.py                1034 INFO
>  sdUUID=d4d7649d-4849-4413-bdc2-b7b84f239092 domainName=loop-domain
> domClass=1 vgUUID=3OJX6U-UDLc-VFtg-2cRO-q3kR-UH2g-Nvf78I storageType=3
> version=3, block_size=512, alignment=1048576
> blockSD.py                 600 INFO     size 512 MB (metaratio 262144)
> lvm.py                    1168 INFO     Creating LV
> (vg=d4d7649d-4849-4413-bdc2-b7b84f239092, lv=metadata, size=512m,
> activate=True, contiguous=False, initialTags=(), device=None)
> lvm.py                    1198 WARNING  Could not change ownership of one
> or more volumes in vg (d4d7649d-4849-4413-bdc2-b7b84f239092) - metadata
> blockSD.py                 522 INFO     Create: SORT MAPPING:
> ['/dev/loop2']
> lvm.py                    1168 INFO     Creating LV
> (vg=d4d7649d-4849-4413-bdc2-b7b84f239092, lv=inbox, size=16m,
> activate=True, contiguous=False, initialTags=(), device=None)
> lvm.py                    1198 WARNING  Could not change ownership of one
> or more volumes in vg (d4d7649d-4849-4413-bdc2-b7b84f239092) - inbox
> lvm.py                    1168 INFO     Creating LV
> (vg=d4d7649d-4849-4413-bdc2-b7b84f239092, lv=outbox, size=16m,
> activate=True, contiguous=False, initialTags=(), device=None)
> lvm.py                    1198 WARNING  Could not change ownership of one
> or more volumes in vg (d4d7649d-4849-4413-bdc2-b7b84f239092) - outbox
> lvm.py                    1168 INFO     Creating LV
> (vg=d4d7649d-4849-4413-bdc2-b7b84f239092, lv=ids, size=8m, activate=True,
> contiguous=False, initialTags=(), device=None)
> lvm.py                    1198 WARNING  Could not change ownership of one
> or more volumes in vg (d4d7649d-4849-4413-bdc2-b7b84f239092) - ids
> lvm.py                    1168 INFO     Creating LV
> (vg=d4d7649d-4849-4413-bdc2-b7b84f239092, lv=leases, size=2048m,
> activate=True, contiguous=False, initialTags=(), device=None)
> lvm.py                    1198 WARNING  Could not change ownership of one
> or more volumes in vg (d4d7649d-4849-4413-bdc2-b7b84f239092) - leases
> lvm.py                    1168 INFO     Creating LV
> (vg=d4d7649d-4849-4413-bdc2-b7b84f239092, lv=master, size=1024m,
> activate=True, contiguous=False, initialTags=(), device=None)
> lvm.py                    1198 WARNING  Could not change ownership of one
> or more volumes in vg (d4d7649d-4849-4413-bdc2-b7b84f239092) - master
> lvm.py                    1333 INFO     Deactivating lvs:
> vg=d4d7649d-4849-4413-bdc2-b7b84f239092 lvs=['master']
> blockdev.py                 84 INFO     Zeroing device
> /dev/d4d7649d-4849-4413-bdc2-b7b84f239092/metadata (size=41943040)
> utils.py                   454 INFO     Zero device
> /dev/d4d7649d-4849-4413-bdc2-b7b84f239092/metadata: 0.00 seconds
> blockdev.py                 84 INFO     Zeroing device
> /dev/d4d7649d-4849-4413-bdc2-b7b84f239092/inbox (size=1024000)
> utils.py                   454 INFO     Zero device
> /dev/d4d7649d-4849-4413-bdc2-b7b84f239092/inbox: 0.02 seconds
> blockdev.py                 84 INFO     Zeroing device
> /dev/d4d7649d-4849-4413-bdc2-b7b84f239092/outbox (size=1024000)
> utils.py                   454 INFO     Zero device
> /dev/d4d7649d-4849-4413-bdc2-b7b84f239092/outbox: 0.02 seconds
> lvm.py                    1438 INFO     Changing VG tags
> (vg=d4d7649d-4849-4413-bdc2-b7b84f239092, delTags=[],
> addTags=['MDT_LEASETIMESEC=60', 'MDT_IOOPTIMEOUTSEC=10',
> 'MDT_LEASERETRIES=3', 'MDT_LOCKRENEWALINTERVALSEC=5',
> 'MDT_SDUUID=d4d7649d-4849-4413-bdc2-b7b84f239092', 'MDT_ROLE=Regular',
> 'MDT_POOL_UUID=',
> 'MDT_PV0=pv:loop2&44&uuid:wzupcF-uQME-3PIa-4WNf-THJJ-57MS-3UIdxD&44&pestart:0&44&pecount:157&44&mapoffset:0',
> 'MDT_CLASS=Data',
> 'MDT__SHA_CKSUM=ee58868dee52c4cc128f0ee89a0c382de1fe6419',
> 'MDT_LOGBLKSIZE=512', 'MDT_VGUUID=3OJX6U-UDLc-VFtg-2cRO-q3kR-UH2g-Nvf78I',
> 'MDT_PHYBLKSIZE=512', 'MDT_DESCRIPTION=loop-domain', 'MDT_TYPE=ISCSI',
> 'MDT_VERSION=3', 'MDT_LOCKPOLICY='])
> lvm.py                    1438 INFO     Changing VG tags
> (vg=d4d7649d-4849-4413-bdc2-b7b84f239092,
> delTags=['RHAT_storage_domain_UNREADY'], addTags=['RHAT_storage_domain'])
> lvm.py                    1325 INFO     Activating lvs:
> vg=d4d7649d-4849-4413-bdc2-b7b84f239092 lvs=['master']
> PASSED
>
>                 [ 50%]
>
> Nir
>
> _______________________________________________
> Devel mailing list -- [email protected]
> To unsubscribe send an email to [email protected]
> Privacy Statement: https://www.ovirt.org/site/privacy-policy/
> oVirt Code of Conduct: 
> https://www.ovirt.org/community/about/community-guidelines/
> List Archives: 
> https://lists.ovirt.org/archives/list/[email protected]/message/BY67R2IBWKIPX3BLTIZ4BDTFP5GXQRG7/
>
>
_______________________________________________
Devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]
Privacy Statement: https://www.ovirt.org/site/privacy-policy/
oVirt Code of Conduct: 
https://www.ovirt.org/community/about/community-guidelines/
List Archives: 
https://lists.ovirt.org/archives/list/[email protected]/message/TDIDJTFLUDORE5RL3UFSKM7YPISE35TH/

Reply via email to