Re: [PATCH xfstests v2] overlay: Enable character device to be the base fs partition

From: Zhihao Cheng
Date: Tue Sep 24 2019 - 23:27:51 EST


There are indeed many '-b' options in xfstests. I only confirmed the line of overlay test. Other -b test options I need to reconfirm later.

在 2019/9/25 11:17, Darrick J. Wong 写道:
> On Tue, Sep 24, 2019 at 08:05:50PM -0700, Darrick J. Wong wrote:
>> On Wed, Sep 25, 2019 at 09:54:08AM +0800, Zhihao Cheng wrote:
>>> There is a message in _supported_fs():
>>> _notrun "not suitable for this filesystem type: $FSTYP"
>>> for when overlay usecases are executed on a chararcter device based base
>>
>> You can do that?
>>
>> What does that even look like?
>
> OH, ubifs. Ok.
>
> /me wonders if there are more places in xfstests with test -b that needs
> fixing...
>
> --D
>
>> --D
>>
>>> fs. _overay_config_override() detects that the current base fs partition
>>> is not a block device, and FSTYP won't be overwritten as 'overlay' before
>>> executing usecases which results in all overlay usecases become 'notrun'.
>>> In addition, all generic usecases are based on base fs rather than overlay.
>>>
>>> We want to rewrite FSTYP to 'overlay' before running the usecases. To do
>>> this, we need to add additional character device judgments for TEST_DEV
>>> and SCRATCH_DEV in _overay_config_override().
>>>
>>> Signed-off-by: Zhihao Cheng <chengzhihao1@xxxxxxxxxx>
>>> ---
>>> common/config | 4 ++--
>>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/common/config b/common/config
>>> index 4c86a49..a22acdb 100644
>>> --- a/common/config
>>> +++ b/common/config
>>> @@ -550,7 +550,7 @@ _overlay_config_override()
>>> # the new OVL_BASE_SCRATCH/TEST_DEV/MNT vars are set to the values
>>> # of the configured base fs and SCRATCH/TEST_DEV vars are set to the
>>> # overlayfs base and mount dirs inside base fs mount.
>>> - [ -b "$TEST_DEV" ] || return 0
>>> + [ -b "$TEST_DEV" ] || [ -c "$TEST_DEV" ] || return 0
>>>
>>> # Config file may specify base fs type, but we obay -overlay flag
>>> [ "$FSTYP" == overlay ] || export OVL_BASE_FSTYP="$FSTYP"
>>> @@ -570,7 +570,7 @@ _overlay_config_override()
>>> export TEST_DIR="$OVL_BASE_TEST_DIR/$OVL_MNT"
>>> export MOUNT_OPTIONS="$OVERLAY_MOUNT_OPTIONS"
>>>
>>> - [ -b "$SCRATCH_DEV" ] || return 0
>>> + [ -b "$SCRATCH_DEV" ] || [ -c "$SCRATCH_DEV" ] || return 0
>>>
>>> # Store original base fs vars
>>> export OVL_BASE_SCRATCH_DEV="$SCRATCH_DEV"
>>> --
>>> 2.7.4
>>>
>
> .
>