diff mbox series

generic/484: test data integrity for rdonly remount

Message ID 20200422045210.11017-1-cgxu519@mykernel.net (mailing list archive)
State New, archived
Headers show
Series generic/484: test data integrity for rdonly remount | expand

Commit Message

Chengguang Xu April 22, 2020, 4:52 a.m. UTC
This test checks data integrity when remounting from
rw to ro mode.

Signed-off-by: Chengguang Xu <cgxu519@mykernel.net>
---
 tests/generic/484     | 54 +++++++++++++++++++++++++++++++++++++++++++
 tests/generic/484.out |  2 ++
 tests/generic/group   |  1 +
 3 files changed, 57 insertions(+)
 create mode 100755 tests/generic/484
 create mode 100644 tests/generic/484.out

Comments

Eryu Guan May 17, 2020, 2:29 p.m. UTC | #1
On Wed, Apr 22, 2020 at 12:52:10PM +0800, Chengguang Xu wrote:
> This test checks data integrity when remounting from
> rw to ro mode.
> 
> Signed-off-by: Chengguang Xu <cgxu519@mykernel.net>

The test itself looks fine. I'm just wondering that is there a real bug
which is exposed by this test? And what's the purpose of the shutdown?
More background info would be great if there's any.

> ---
>  tests/generic/484     | 54 +++++++++++++++++++++++++++++++++++++++++++
>  tests/generic/484.out |  2 ++
>  tests/generic/group   |  1 +
>  3 files changed, 57 insertions(+)
>  create mode 100755 tests/generic/484
>  create mode 100644 tests/generic/484.out
> 
> diff --git a/tests/generic/484 b/tests/generic/484
> new file mode 100755
> index 00000000..bc640214
> --- /dev/null
> +++ b/tests/generic/484
> @@ -0,0 +1,54 @@
> +#! /bin/bash
> +# SPDX-License-Identifier: GPL-2.0
> +# Copyright (c) 2020 Chengguang Xu <cgxu519@mykernel.net>.
> +# All Rights Reserved.
> +#
> +# FS QA Test 484
> +#
> +# Test data integrity for ro remount.
> +#
> +seq=`basename $0`
> +seqres=$RESULT_DIR/$seq
> +echo "QA output created by $seq"
> +
> +here=`pwd`
> +tmp=/tmp/$$
> +status=0
> +trap "_cleanup; exit \$status" 0 1 2 3 15
> +
> +_cleanup()
> +{
> +	cd /
> +	rm -f $tmp.*
> +}
> +
> +# get standard environment, filters and checks
> +. ./common/rc
> +. ./common/filter
> +
> +# remove previous $seqres.full before test
> +rm -f $seqres.full
> +
> +# real QA test starts here
> +_supported_fs generic
> +_supported_os Linux
> +_require_fssum
> +_require_scratch
> +_require_scratch_shutdown
> +
> +_scratch_mkfs &>/dev/null
> +_scratch_mount
> +
> +localdir=$SCRATCH_MNT/dir
> +mkdir $localdir
> +sync
> +
> +# fssum used for comparing checksum of test file(data & metedata),
> +# exclude checking about atime, block structure, open error.
> +$FSSUM_PROG -ugomAcdES -f -w $tmp.fssum $localdir
> +_scratch_remount ro
> +_scratch_shutdown
> +_scratch_cycle_mount
> +$FSSUM_PROG -r $tmp.fssum $localdir
> +
> +exit
> diff --git a/tests/generic/484.out b/tests/generic/484.out
> new file mode 100644
> index 00000000..e33c7815
> --- /dev/null
> +++ b/tests/generic/484.out
> @@ -0,0 +1,2 @@
> +QA output created by 484
> +OK
> diff --git a/tests/generic/group b/tests/generic/group
> index 718575ba..cc58ff0d 100644
> --- a/tests/generic/group
> +++ b/tests/generic/group
> @@ -486,6 +486,7 @@
>  481 auto quick log metadata
>  482 auto metadata replay thin
>  483 auto quick log metadata
> +484 auto quick remount

Also in shutdown group.

Thanks,
Eryu

>  485 auto quick insert
>  486 auto quick attr
>  487 auto quick eio
> -- 
> 2.20.1
>
Chengguang Xu May 18, 2020, 2:36 a.m. UTC | #2
---- 在 星期日, 2020-05-17 22:29:22 Eryu Guan <guan@eryu.me> 撰写 ----
 > On Wed, Apr 22, 2020 at 12:52:10PM +0800, Chengguang Xu wrote:
 > > This test checks data integrity when remounting from
 > > rw to ro mode.
 > > 
 > > Signed-off-by: Chengguang Xu <cgxu519@mykernel.net>
 > 
 > The test itself looks fine. I'm just wondering that is there a real bug
 > which is exposed by this test? And what's the purpose of the shutdown?
 > More background info would be great if there's any.
 > 

The case is  for testing below fix patch in overlayfs but I think maybe it is also suitable for other file systems.
https://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs.git/commit/?h=overlayfs-next&id=399c109d357a7e217cf7ef551e7e234439c68c15

shutdown will avoid effect of async dirty data flushing. 


 > > ---
 > >  tests/generic/484     | 54 +++++++++++++++++++++++++++++++++++++++++++
 > >  tests/generic/484.out |  2 ++
 > >  tests/generic/group   |  1 +
 > >  3 files changed, 57 insertions(+)
 > >  create mode 100755 tests/generic/484
 > >  create mode 100644 tests/generic/484.out
 > > 
 > > diff --git a/tests/generic/484 b/tests/generic/484
 > > new file mode 100755
 > > index 00000000..bc640214
 > > --- /dev/null
 > > +++ b/tests/generic/484
 > > @@ -0,0 +1,54 @@
 > > +#! /bin/bash
 > > +# SPDX-License-Identifier: GPL-2.0
 > > +# Copyright (c) 2020 Chengguang Xu <cgxu519@mykernel.net>.
 > > +# All Rights Reserved.
 > > +#
 > > +# FS QA Test 484
 > > +#
 > > +# Test data integrity for ro remount.
 > > +#
 > > +seq=`basename $0`
 > > +seqres=$RESULT_DIR/$seq
 > > +echo "QA output created by $seq"
 > > +
 > > +here=`pwd`
 > > +tmp=/tmp/$
 > > +status=0
 > > +trap "_cleanup; exit \$status" 0 1 2 3 15
 > > +
 > > +_cleanup()
 > > +{
 > > +    cd /
 > > +    rm -f $tmp.*
 > > +}
 > > +
 > > +# get standard environment, filters and checks
 > > +. ./common/rc
 > > +. ./common/filter
 > > +
 > > +# remove previous $seqres.full before test
 > > +rm -f $seqres.full
 > > +
 > > +# real QA test starts here
 > > +_supported_fs generic
 > > +_supported_os Linux
 > > +_require_fssum
 > > +_require_scratch
 > > +_require_scratch_shutdown
 > > +
 > > +_scratch_mkfs &>/dev/null
 > > +_scratch_mount
 > > +
 > > +localdir=$SCRATCH_MNT/dir
 > > +mkdir $localdir
 > > +sync
 > > +
 > > +# fssum used for comparing checksum of test file(data & metedata),
 > > +# exclude checking about atime, block structure, open error.
 > > +$FSSUM_PROG -ugomAcdES -f -w $tmp.fssum $localdir
 > > +_scratch_remount ro
 > > +_scratch_shutdown
 > > +_scratch_cycle_mount
 > > +$FSSUM_PROG -r $tmp.fssum $localdir
 > > +
 > > +exit
 > > diff --git a/tests/generic/484.out b/tests/generic/484.out
 > > new file mode 100644
 > > index 00000000..e33c7815
 > > --- /dev/null
 > > +++ b/tests/generic/484.out
 > > @@ -0,0 +1,2 @@
 > > +QA output created by 484
 > > +OK
 > > diff --git a/tests/generic/group b/tests/generic/group
 > > index 718575ba..cc58ff0d 100644
 > > --- a/tests/generic/group
 > > +++ b/tests/generic/group
 > > @@ -486,6 +486,7 @@
 > >  481 auto quick log metadata
 > >  482 auto metadata replay thin
 > >  483 auto quick log metadata
 > > +484 auto quick remount
 > 
 > Also in shutdown group.
 > 

I'll add this in next version.


Thanks,
cgxu
diff mbox series

Patch

diff --git a/tests/generic/484 b/tests/generic/484
new file mode 100755
index 00000000..bc640214
--- /dev/null
+++ b/tests/generic/484
@@ -0,0 +1,54 @@ 
+#! /bin/bash
+# SPDX-License-Identifier: GPL-2.0
+# Copyright (c) 2020 Chengguang Xu <cgxu519@mykernel.net>.
+# All Rights Reserved.
+#
+# FS QA Test 484
+#
+# Test data integrity for ro remount.
+#
+seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+echo "QA output created by $seq"
+
+here=`pwd`
+tmp=/tmp/$$
+status=0
+trap "_cleanup; exit \$status" 0 1 2 3 15
+
+_cleanup()
+{
+	cd /
+	rm -f $tmp.*
+}
+
+# get standard environment, filters and checks
+. ./common/rc
+. ./common/filter
+
+# remove previous $seqres.full before test
+rm -f $seqres.full
+
+# real QA test starts here
+_supported_fs generic
+_supported_os Linux
+_require_fssum
+_require_scratch
+_require_scratch_shutdown
+
+_scratch_mkfs &>/dev/null
+_scratch_mount
+
+localdir=$SCRATCH_MNT/dir
+mkdir $localdir
+sync
+
+# fssum used for comparing checksum of test file(data & metedata),
+# exclude checking about atime, block structure, open error.
+$FSSUM_PROG -ugomAcdES -f -w $tmp.fssum $localdir
+_scratch_remount ro
+_scratch_shutdown
+_scratch_cycle_mount
+$FSSUM_PROG -r $tmp.fssum $localdir
+
+exit
diff --git a/tests/generic/484.out b/tests/generic/484.out
new file mode 100644
index 00000000..e33c7815
--- /dev/null
+++ b/tests/generic/484.out
@@ -0,0 +1,2 @@ 
+QA output created by 484
+OK
diff --git a/tests/generic/group b/tests/generic/group
index 718575ba..cc58ff0d 100644
--- a/tests/generic/group
+++ b/tests/generic/group
@@ -486,6 +486,7 @@ 
 481 auto quick log metadata
 482 auto metadata replay thin
 483 auto quick log metadata
+484 auto quick remount
 485 auto quick insert
 486 auto quick attr
 487 auto quick eio