test/lvol: Test plan for provisioning

Change-Id: Ia1ccf8091fb2dbbb97a7acecc230d9f6cb7c1002
Signed-off-by: Pawel Kaminski <pawelx.kaminski@intel.com>
Reviewed-on: https://review.gerrithub.io/391257
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Karol Latecki <karol.latecki@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
Pawel Kaminski 2017-12-11 20:09:20 +01:00 committed by Jim Harris
parent db739e1594
commit 4ab8589ba3

View File

@ -16,6 +16,10 @@ Some configuration calls may also be validated by use of
"get_*" RPC calls, which provide additional information for verifying "get_*" RPC calls, which provide additional information for verifying
results. results.
Tests with thin provisioned lvol bdev are using nbd devices.
Before writing/reading to lvol bdev, bdev is installed with rpc start_nbd_disk.
After finishing writing/reading, rpc stop_nbd_disk is used.
## Tests ## Tests
### construct_lvol_store - positive tests ### construct_lvol_store - positive tests
@ -549,9 +553,117 @@ Expected result:
- return code != 0 - return code != 0
- Error code response printed to stdout - Error code response printed to stdout
### Provisioning
#### TEST CASE 650 - Name: thin_provisioning_check_space
- create malloc bdev
- construct lvol store on malloc bdev
- create thin provisioned lvol bdev with size equals to lvol store free space
- check and save number of free clusters for lvol store
- write data (less than lvs cluster size) to created lvol bdev starting from offset 0.
- check that free clusters on lvol store was decremented by 1
- write data (lvs cluster size) to lvol bdev with offset set to one and half of cluster size
- check that free clusters on lvol store was decremented by 2
- write data to lvol bdev to the end of its size
- check that lvol store free clusters number equals to 0
- destroy thin provisioned lvol bdev
- check that saved number of free clusters equals to current free clusters
- destroy lvol store
- destroy malloc bdev
Expected result:
- calls successful, return code = 0
- no other operation fails
#### TEST CASE 651 - Name: thin_provisioning_read_empty_bdev
- create malloc bdev
- construct lvol store on malloc bdev
- create thick provisioned lvol bvdev with size equal to lvol store
- create thin provisioned lvol bdev with the same size
- fill the whole thick provisioned lvol bdev
- perform read operations on thin provisioned lvol bdev
and check if they return zeroes
- destroy thin provisioned lvol bdev
- destroy lvol store
- destroy malloc bdev
Expected result:
- calls successful, return code = 0
- no other operation fails
#### TEST CASE 652 - Name: thin_provisioning_data_integrity_test
- create malloc bdev
- construct lvol store on malloc bdev
- construct thin provisioned lvol bdev with size equal to lvol store
- on the whole lvol bdev perform write operation with verification
- destroy thin provisioned lvol bdev
- destroy lvol store
- destroy malloc bdev
Expected result:
- calls successful, return code = 0
- verification ends with success
- no other operation fails
#### TEST CASE 653 - Name: thin_provisioning_resize
- create malloc bdev
- construct lvol store on malloc bdev
- construct thin provisioned lvol bdevs on created lvol store
with size equal to 50% of lvol store
- fill all free space of lvol bdev with data
- save number of free clusters for lvs
- resize bdev to full size of lvs
- check if bdev size changed (total_data_clusters*cluster_size
equal to num_blocks*block_size)
- check if free_clusters on lvs remain unaffected
- perform write operation with verification
to newly created free space of lvol bdev
- resize bdev to 30M and check if it ended with success
- check if free clusters on lvs equals to saved counter
- destroy thin provisioned lvol bdev
- destroy lvol store
- destroy malloc bdev
Expected result:
- calls successful, return code = 0
- no other operation fails
#### TEST CASE 654 - Name: thin_overprovisioning
- create malloc bdev
- construct lvol store on malloc bdev
- construct two thin provisioned lvol bdevs on created lvol store
with size equals to free lvs size
- fill first bdev to 75% of its space with specific pattern
- fill second bdev up to 75% of its space
- check that error message occured while filling second bdev with data
- check if data on first disk stayed unchanged
- destroy thin provisioned lvol bdev
- destroy lvol store
- destroy malloc bdev
Expected result:
- calls successful, return code = 0
- no other operation fails
#### TEST CASE 655 - Name: thin_provisioning_filling_disks_less_than_lvs_size
- create malloc bdev
- construct lvol store on malloc bdev
- construct two thin provisioned lvol bdevs on created lvol store
with size equal to 70% of lvs size
- check if bdevs are available and size of every disk is equal to 70% of lvs size
- fill first disk with 70% of its size and second one also with 70% of its size
- check if operation didn't fail
- destroy thin provisioned lvol bdevs
- destroy lvol store
- destroy malloc bdev
Expected result:
- calls successful, return code = 0
- no other operation fails
### logical volume tasting tests ### logical volume tasting tests
#### TEST CASE 650 - Name: tasting_positive #### TEST CASE 700 - Name: tasting_positive
Positive test for tasting a multi lvol bdev configuration. Positive test for tasting a multi lvol bdev configuration.
Create a lvol store with some lvol bdevs on NVMe drive and restart vhost app. Create a lvol store with some lvol bdevs on NVMe drive and restart vhost app.
After restarting configuration should be automatically loaded and should be exactly After restarting configuration should be automatically loaded and should be exactly
@ -593,7 +705,7 @@ Expected results:
- all RPC configuration calls successful, return code = 0 - all RPC configuration calls successful, return code = 0
- no other operation fails - no other operation fails
#### TEST CASE 651 - Name: tasting_lvol_store_positive #### TEST CASE 701 - Name: tasting_lvol_store_positive
Positive test for tasting lvol store. Positive test for tasting lvol store.
Steps: Steps:
- run vhost app with NVMe bdev - run vhost app with NVMe bdev
@ -609,7 +721,7 @@ Expected result:
### SIGTERM ### SIGTERM
#### TEST CASE 700 - Name: SIGTERM #### TEST CASE 750 - Name: SIGTERM
Call CTRL+C (SIGTERM) occurs after creating lvol store Call CTRL+C (SIGTERM) occurs after creating lvol store
Steps: Steps:
- create a malloc bdev - create a malloc bdev