From: Anand Jain <anand.jain@oracle.com>
To: Filipe Manana <fdmanana@kernel.org>
Cc: fstests@vger.kernel.org, linux-btrfs@vger.kernel.org
Subject: Re: [PATCH 12/12] btrfs: test tempfsid with device add, seed, and balance
Date: Mon, 19 Feb 2024 18:48:03 +0530 [thread overview]
Message-ID: <c754b3c6-040c-44bd-9e50-ce95f4c4c4c7@oracle.com> (raw)
In-Reply-To: <CAL3q7H77SEYPongbHn9auS7jyvOetD-8gD3oyQ3e+7pJuPVbSQ@mail.gmail.com>
On 2/15/24 18:33, Filipe Manana wrote:
> On Thu, Feb 15, 2024 at 6:35 AM Anand Jain <anand.jain@oracle.com> wrote:
>>
>> Make sure that basic functions such as seeding and device add fail,
>> while balance runs successfully with tempfsid.
>>
>> Signed-off-by: Anand Jain <anand.jain@oracle.com>
>> ---
>> common/filter.btrfs | 6 ++++
>> tests/btrfs/315 | 79 +++++++++++++++++++++++++++++++++++++++++++++
>> tests/btrfs/315.out | 11 +++++++
>> 3 files changed, 96 insertions(+)
>> create mode 100755 tests/btrfs/315
>> create mode 100644 tests/btrfs/315.out
>>
>> diff --git a/common/filter.btrfs b/common/filter.btrfs
>> index 8ab76fcb193a..d48e96c6f66b 100644
>> --- a/common/filter.btrfs
>> +++ b/common/filter.btrfs
>> @@ -68,6 +68,12 @@ _filter_btrfs_device_stats()
>> sed -e "s/ *$NUMDEVS /<NUMDEVS> /g"
>> }
>>
>> +_filter_btrfs_device_add()
>> +{
>> + _filter_scratch_pool | \
>> + sed -E 's/\(([0-9]+(\.[0-9]+)?)[a-zA-Z]+B\)/\(NUM\)/'
>
> Why do we need this new filter?
> We are testing for a failure, where none of this is relevant except
> filtering device names.
>
2nd part filters out the size part as seen in the raw
btrfs device add output below.
$ btrfs device add /dev/sdb2 /btrfs
Performing full device TRIM /dev/sdb2 (731.00MiB) ...
I will add a comment.
> The test can just filter with _filter_scratch_pool only.
>
>> +}
>> +
>> _filter_transaction_commit() {
>> sed -e "/Transaction commit: none (default)/d" \
>> -e "s/Delete subvolume [0-9]\+ (.*commit):/Delete subvolume/g" \
>> diff --git a/tests/btrfs/315 b/tests/btrfs/315
>> new file mode 100755
>> index 000000000000..7ad0dfbc9c32
>> --- /dev/null
>> +++ b/tests/btrfs/315
>> @@ -0,0 +1,79 @@
>> +#! /bin/bash
>> +# SPDX-License-Identifier: GPL-2.0
>> +# Copyright (c) 2024 YOUR NAME HERE. All Rights Reserved.
>> +#
>> +# FS QA Test 315
>> +#
>> +# Verify if the seed and device add to a tempfsid filesystem fails.
>> +#
>> +. ./common/preamble
>> +_begin_fstest auto quick volume seed tempfsid
>> +
>> +_cleanup()
>> +{
>> + cd /
>> + umount $tempfsid_mnt 2>/dev/null
>
> $UMOUNT_PROG
>
got it.
>> + rm -r -f $tmp.*
>> + rm -r -f $tempfsid_mnt
>> +}
>> +
>> +. ./common/filter.btrfs
>> +
>> +_supported_fs btrfs
>> +_require_btrfs_sysfs_fsid
>> +_require_scratch_dev_pool 3
>> +_require_btrfs_fs_feature temp_fsid
>> +_require_btrfs_command inspect-internal dump-super
>> +_require_btrfs_mkfs_uuid_option
>> +
>> +_scratch_dev_pool_get 3
>> +
>> +# mount point for the tempfsid device
>> +tempfsid_mnt=$TEST_DIR/$seq/tempfsid_mnt
>> +
>> +seed_device_must_fail()
>> +{
>> + echo ---- $FUNCNAME ----
>> +
>> + mkfs_clone ${SCRATCH_DEV} ${SCRATCH_DEV_NAME[1]}
>> +
>> + $BTRFS_TUNE_PROG -S 1 ${SCRATCH_DEV}
>> + $BTRFS_TUNE_PROG -S 1 ${SCRATCH_DEV_NAME[1]}
>> +
>> + _scratch_mount 2>&1 | _filter_scratch
>> + _mount ${SCRATCH_DEV_NAME[1]} ${tempfsid_mnt} 2>&1 | _filter_test_dir
>> +}
>> +
>> +device_add_must_fail()
>> +{
>> + echo ---- $FUNCNAME ----
>> +
>> + mkfs_clone ${SCRATCH_DEV} ${SCRATCH_DEV_NAME[1]}
>> + _scratch_mount
>> + _mount ${SCRATCH_DEV_NAME[1]} ${tempfsid_mnt}
>> +
>> + $XFS_IO_PROG -fc 'pwrite -S 0x61 0 9000' $SCRATCH_MNT/foo | \
>> + _filter_xfs_io
>> +
>> +$BTRFS_UTIL_PROG device add -f ${SCRATCH_DEV_NAME[2]} ${tempfsid_mnt} 2>&1 |\
>> + _filter_btrfs_device_add
>
> We are testing for failure, so no need for the new filter
> _filter_btrfs_device_add.
> Just filter through _filter_scratch_pool here and nothing more.
>
As shown above, we need to filter out the size part too.
Thanks, Anand
> Thanks.
>
>> +
>> + echo Balance must be successful
>> + _run_btrfs_balance_start ${tempfsid_mnt}
>> +}
>> +
>> +mkdir -p $tempfsid_mnt
>> +
>> +seed_device_must_fail
>> +
>> +_scratch_unmount
>> +_cleanup
>> +mkdir -p $tempfsid_mnt
>> +
>> +device_add_must_fail
>> +
>> +_scratch_dev_pool_put
>> +
>> +# success, all done
>> +status=0
>> +exit
>> diff --git a/tests/btrfs/315.out b/tests/btrfs/315.out
>> new file mode 100644
>> index 000000000000..32149972beb4
>> --- /dev/null
>> +++ b/tests/btrfs/315.out
>> @@ -0,0 +1,11 @@
>> +QA output created by 315
>> +---- seed_device_must_fail ----
>> +mount: SCRATCH_MNT: WARNING: source write-protected, mounted read-only.
>> +mount: TEST_DIR/315/tempfsid_mnt: mount(2) system call failed: File exists.
>> +---- device_add_must_fail ----
>> +wrote 9000/9000 bytes at offset 0
>> +XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
>> +ERROR: error adding device 'SCRATCH_DEV': Invalid argument
>> +Performing full device TRIM SCRATCH_DEV (NUM) ...
>> +Balance must be successful
>> +Done, had to relocate 3 out of 3 chunks
>> --
>> 2.39.3
>>
>>
next prev parent reply other threads:[~2024-02-19 13:18 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-15 6:34 [PATCH 00/12] btrfs: functional test cases for tempfsid Anand Jain
2024-02-15 6:34 ` [PATCH 01/12] add t_reflink_read_race to .gitignore file Anand Jain
2024-02-15 11:45 ` Filipe Manana
2024-02-15 11:50 ` Anand Jain
2024-02-15 6:34 ` [PATCH 02/12] assign SCRATCH_DEV_POOL to an array Anand Jain
2024-02-15 11:55 ` Filipe Manana
2024-02-15 6:34 ` [PATCH 03/12] btrfs: introduce tempfsid test group Anand Jain
2024-02-15 11:57 ` Filipe Manana
2024-02-15 6:34 ` [PATCH 04/12] btrfs: create a helper function, check_fsid(), to verify the tempfsid Anand Jain
2024-02-15 12:13 ` Filipe Manana
2024-02-16 15:02 ` Zorro Lang
2024-02-15 6:34 ` [PATCH 05/12] btrfs: verify that subvolume mounts are unaffected by tempfsid Anand Jain
2024-02-15 12:20 ` Filipe Manana
2024-02-15 6:34 ` [PATCH 06/12] create a helper to clone devices Anand Jain
2024-02-15 12:27 ` Filipe Manana
2024-02-15 6:34 ` [PATCH 07/12] btrfs: check if cloned device mounts with tempfsid Anand Jain
2024-02-15 12:33 ` Filipe Manana
2024-02-15 6:34 ` [PATCH 08/12] btrfs: test case prerequisite _require_btrfs_mkfs_uuid_option Anand Jain
2024-02-15 12:37 ` Filipe Manana
2024-02-15 6:34 ` [PATCH 09/12] btrfs: introduce helper for creating cloned devices with mkfs Anand Jain
2024-02-15 12:42 ` Filipe Manana
2024-02-17 4:31 ` Anand Jain
2024-02-15 6:34 ` [PATCH 10/12] btrfs: verify tempfsid clones using mkfs Anand Jain
2024-02-15 12:46 ` Filipe Manana
2024-02-15 6:34 ` [PATCH 11/12] btrfs: validate send-receive operation with tempfsid Anand Jain
2024-02-15 12:56 ` Filipe Manana
2024-02-15 6:34 ` [PATCH 12/12] btrfs: test tempfsid with device add, seed, and balance Anand Jain
2024-02-15 13:03 ` Filipe Manana
2024-02-19 13:18 ` Anand Jain [this message]
2024-02-19 13:29 ` Filipe Manana
2024-02-19 13:33 ` Anand Jain
2024-02-19 19:47 ` [PATCH 00/12] btrfs: functional test cases for tempfsid Anand Jain
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=c754b3c6-040c-44bd-9e50-ce95f4c4c4c7@oracle.com \
--to=anand.jain@oracle.com \
--cc=fdmanana@kernel.org \
--cc=fstests@vger.kernel.org \
--cc=linux-btrfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox