public inbox for linux-btrfs@vger.kernel.org
 help / color / mirror / Atom feed
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
>>
>>


  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