On Wed, Feb 20, 2019 at 05:12:31PM +0900, Shin'ichiro Kawasaki wrote:
> zbd/001 and zbd/002 test cases fail for partition devices because of
> sysfs path difference between partition devices and their holder
> devices. The size parameter in sysfs path is different between the
> partition devices and their holder devices. The holder devices have
> nr_zones parameter in sysfs but the partition devices do not.
> 
> Utilize _test_dev_is_partition() helper function and TEST_DEV_PART_SYSFS
> variable to refer correct sysfs size parameter for the partition devices.
> Do not refer sysfs nr_zones parameter for the partition devices. Instead,
> calculate the expected nr_zones from device capacity and zone size.

Reviewed-by: Omar Sandoval <[email protected]>

> Signed-off-by: Shin'ichiro Kawasaki <[email protected]>
> ---
>  tests/zbd/rc | 8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/tests/zbd/rc b/tests/zbd/rc
> index c32bf31..88538d0 100644
> --- a/tests/zbd/rc
> +++ b/tests/zbd/rc
> @@ -75,7 +75,11 @@ export SV_NR_ZONES=4
>  _get_sysfs_variable() {
>       unset SYSFS_VARS
>       local _dir=${TEST_DEV_SYSFS}
> -     SYSFS_VARS[$SV_CAPACITY]=$(<"${_dir}"/size)
> +     if _test_dev_is_partition; then
> +             SYSFS_VARS[$SV_CAPACITY]=$(<"${TEST_DEV_PART_SYSFS}"/size)
> +     else
> +             SYSFS_VARS[$SV_CAPACITY]=$(<"${_dir}"/size)
> +     fi
>       SYSFS_VARS[$SV_CHUNK_SECTORS]=$(<"${_dir}"/queue/chunk_sectors)
>       SYSFS_VARS[$SV_PHYS_BLK_SIZE]=$(<"${_dir}"/queue/physical_block_size)
>       SYSFS_VARS[$SV_PHYS_BLK_SECTORS]=$((SYSFS_VARS[SV_PHYS_BLK_SIZE] / 512))
> @@ -83,7 +87,7 @@ _get_sysfs_variable() {
>       # If the nr_zones sysfs attribute exists, get its value. Otherwise,
>       # calculate its value based on the total capacity and zone size, taking
>       # into account that the last zone can be smaller than other zones.
> -     if [[ -e ${TEST_DEV_SYSFS}/queue/nr_zones ]]; then
> +     if [[ -e "${_dir}"/queue/nr_zones ]] && ! _test_dev_is_partition; then
>               SYSFS_VARS[$SV_NR_ZONES]=$(<"${_dir}"/queue/nr_zones)
>       else
>               SYSFS_VARS[$SV_NR_ZONES]=$(( (SYSFS_VARS[SV_CAPACITY] - 1) \
> -- 
> 2.20.1
> 

Reply via email to