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
|
||||
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
|
||||
|
||||
### construct_lvol_store - positive tests
|
||||
@ -549,9 +553,117 @@ Expected result:
|
||||
- return code != 0
|
||||
- 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
|
||||
|
||||
#### TEST CASE 650 - Name: tasting_positive
|
||||
#### TEST CASE 700 - Name: tasting_positive
|
||||
Positive test for tasting a multi lvol bdev configuration.
|
||||
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
|
||||
@ -593,7 +705,7 @@ Expected results:
|
||||
- all RPC configuration calls successful, return code = 0
|
||||
- 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.
|
||||
Steps:
|
||||
- run vhost app with NVMe bdev
|
||||
@ -609,7 +721,7 @@ Expected result:
|
||||
|
||||
### SIGTERM
|
||||
|
||||
#### TEST CASE 700 - Name: SIGTERM
|
||||
#### TEST CASE 750 - Name: SIGTERM
|
||||
Call CTRL+C (SIGTERM) occurs after creating lvol store
|
||||
Steps:
|
||||
- create a malloc bdev
|
||||
|
Loading…
Reference in New Issue
Block a user