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:
parent
db739e1594
commit
4ab8589ba3
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user