diff mbox series

[5/5] common/rc: print scratch and test mount options

Message ID 20240614061722.1080-6-da.gomez@samsung.com (mailing list archive)
State New, archived
Headers show
Series tmpfs fixes | expand

Commit Message

Daniel Gomez June 14, 2024, 6:17 a.m. UTC
Mount options for a SCRATCH device might not be the same in the TEST
device if RECREATE_TEST_DEV is not enabled. So, print mount options for
each device to clarify this.

Add mount and mkfs info for TEST devices so we get the same information
being printed for both devices.

Signed-off-by: Daniel Gomez <da.gomez@samsung.com>
---
 check     |  4 ++++
 common/rc | 20 ++++++++++++++++++--
 2 files changed, 22 insertions(+), 2 deletions(-)

Comments

Darrick J. Wong June 14, 2024, 3:55 p.m. UTC | #1
On Fri, Jun 14, 2024 at 06:17:26AM +0000, Daniel Gomez wrote:
> Mount options for a SCRATCH device might not be the same in the TEST
> device if RECREATE_TEST_DEV is not enabled. So, print mount options for
> each device to clarify this.
> 
> Add mount and mkfs info for TEST devices so we get the same information
> being printed for both devices.
> 
> Signed-off-by: Daniel Gomez <da.gomez@samsung.com>
> ---
>  check     |  4 ++++
>  common/rc | 20 ++++++++++++++++++--
>  2 files changed, 22 insertions(+), 2 deletions(-)
> 
> diff --git a/check b/check
> index 723a52e30..e02d28b39 100755
> --- a/check
> +++ b/check
> @@ -807,7 +807,11 @@ function run_section()
>  	# print out our test configuration
>  	echo "FSTYP         -- `_full_fstyp_details`"
>  	echo "PLATFORM      -- `_full_platform_details`"
> +	echo "TEST device:"
> +	echo "MKFS_OPTIONS  -- `_test_mkfs_options`"
> +	echo "MOUNT_OPTIONS -- `_test_mount_options`"
>  	if [ ! -z "$SCRATCH_DEV" ]; then
> +	  echo "SCRATCH device:"
>  	  echo "MKFS_OPTIONS  -- `_scratch_mkfs_options`"
>  	  echo "MOUNT_OPTIONS -- `_scratch_mount_options`"

Now there are two lines that start with "MKFS_OPTIONS"; will this break
anyone's parsing scripts?  Or should these be prefixed:

echo "TEST_MKFS_OPTIONS -- `_test_mkfs_options`"
...
echo "SCRATCH_MKFS_OPTIONS -- `_scratch_mkfs_options`"

?

Also should these four variables be captured explicitly by the reports
that are generated by common/report ?

--D

>  	fi
> diff --git a/common/rc b/common/rc
> index a42792c37..b351a82eb 100644
> --- a/common/rc
> +++ b/common/rc
> @@ -235,6 +235,17 @@ _scratch_mount_options()
>  					$SCRATCH_DEV $SCRATCH_MNT
>  }
>  
> +_test_mount_options()
> +{
> +	_test_options mount
> +
> +	if $RECREATE_TEST_DEV || [ "$OLD_FSTYP" != "$FSTYP" ]; then
> +		echo $TEST_OPTIONS $TEST_FS_MOUNT_OPTS $SELINUX_MOUNT_OPTIONS $TMPFS_MOUNT_OPTIONS $* $TEST_DEV $TEST_DIR
> +	else
> +		echo $TEST_OPTIONS $TEST_FS_MOUNT_OPTS $SELINUX_MOUNT_OPTIONS $* $TEST_DEV $TEST_DIR
> +	fi
> +}
> +
>  _supports_filetype()
>  {
>  	local dir=$1
> @@ -456,8 +467,7 @@ _test_mount()
>          return $?
>      fi
>  
> -    _test_options mount
> -    _mount -t $FSTYP$FUSE_SUBTYP $TEST_OPTIONS $TEST_FS_MOUNT_OPTS $SELINUX_MOUNT_OPTIONS $TMPFS_MOUNT_OPTIONS $* $TEST_DEV $TEST_DIR
> +    _mount -t $FSTYP$FUSE_SUBTYP `_test_mount_options $*`
>      mount_ret=$?
>      [ $mount_ret -ne 0 ] && return $mount_ret
>      _idmapped_mount $TEST_DEV $TEST_DIR
> @@ -571,6 +581,12 @@ _metadump_dev() {
>  	esac
>  }
>  
> +_test_mkfs_options()
> +{
> +	_test_options mkfs
> +	echo $TEST_OPTIONS $MKFS_OPTIONS $* $TEST_DEV
> +}
> +
>  _test_mkfs()
>  {
>      case $FSTYP in
> -- 
> 2.43.0
>
Daniel Gomez June 24, 2024, 2:02 p.m. UTC | #2
On Fri, Jun 14, 2024 at 08:55:55AM GMT, Darrick J. Wong wrote:
> On Fri, Jun 14, 2024 at 06:17:26AM +0000, Daniel Gomez wrote:
> > Mount options for a SCRATCH device might not be the same in the TEST
> > device if RECREATE_TEST_DEV is not enabled. So, print mount options for
> > each device to clarify this.
> > 
> > Add mount and mkfs info for TEST devices so we get the same information
> > being printed for both devices.
> > 
> > Signed-off-by: Daniel Gomez <da.gomez@samsung.com>
> > ---
> >  check     |  4 ++++
> >  common/rc | 20 ++++++++++++++++++--
> >  2 files changed, 22 insertions(+), 2 deletions(-)
> > 
> > diff --git a/check b/check
> > index 723a52e30..e02d28b39 100755
> > --- a/check
> > +++ b/check
> > @@ -807,7 +807,11 @@ function run_section()
> >  	# print out our test configuration
> >  	echo "FSTYP         -- `_full_fstyp_details`"
> >  	echo "PLATFORM      -- `_full_platform_details`"
> > +	echo "TEST device:"
> > +	echo "MKFS_OPTIONS  -- `_test_mkfs_options`"
> > +	echo "MOUNT_OPTIONS -- `_test_mount_options`"
> >  	if [ ! -z "$SCRATCH_DEV" ]; then
> > +	  echo "SCRATCH device:"
> >  	  echo "MKFS_OPTIONS  -- `_scratch_mkfs_options`"
> >  	  echo "MOUNT_OPTIONS -- `_scratch_mount_options`"
> 
> Now there are two lines that start with "MKFS_OPTIONS"; will this break
> anyone's parsing scripts?  Or should these be prefixed:
> 
> echo "TEST_MKFS_OPTIONS -- `_test_mkfs_options`"
> ...
> echo "SCRATCH_MKFS_OPTIONS -- `_scratch_mkfs_options`"
> 
> ?

This looks like my initial version, but I prefer the 'sub-menu style' because
we did not have these variables before. However, I think it makes sense to
introduce them so we can differentiate between them. 

I guess introducing this change would break anyone's parsing scripts regardless?
However, I do think is necessary to specify the mount differences.

> 
> Also should these four variables be captured explicitly by the reports
> that are generated by common/report ?

I guess the report only includes the scratch mount options. I will update it to
include the new specific test and scratch mount/mkfs options.

> 
> --D
> 
> >  	fi
> > diff --git a/common/rc b/common/rc
> > index a42792c37..b351a82eb 100644
> > --- a/common/rc
> > +++ b/common/rc
> > @@ -235,6 +235,17 @@ _scratch_mount_options()
> >  					$SCRATCH_DEV $SCRATCH_MNT
> >  }
> >  
> > +_test_mount_options()
> > +{
> > +	_test_options mount
> > +
> > +	if $RECREATE_TEST_DEV || [ "$OLD_FSTYP" != "$FSTYP" ]; then
> > +		echo $TEST_OPTIONS $TEST_FS_MOUNT_OPTS $SELINUX_MOUNT_OPTIONS $TMPFS_MOUNT_OPTIONS $* $TEST_DEV $TEST_DIR
> > +	else
> > +		echo $TEST_OPTIONS $TEST_FS_MOUNT_OPTS $SELINUX_MOUNT_OPTIONS $* $TEST_DEV $TEST_DIR
> > +	fi
> > +}
> > +
> >  _supports_filetype()
> >  {
> >  	local dir=$1
> > @@ -456,8 +467,7 @@ _test_mount()
> >          return $?
> >      fi
> >  
> > -    _test_options mount
> > -    _mount -t $FSTYP$FUSE_SUBTYP $TEST_OPTIONS $TEST_FS_MOUNT_OPTS $SELINUX_MOUNT_OPTIONS $TMPFS_MOUNT_OPTIONS $* $TEST_DEV $TEST_DIR
> > +    _mount -t $FSTYP$FUSE_SUBTYP `_test_mount_options $*`
> >      mount_ret=$?
> >      [ $mount_ret -ne 0 ] && return $mount_ret
> >      _idmapped_mount $TEST_DEV $TEST_DIR
> > @@ -571,6 +581,12 @@ _metadump_dev() {
> >  	esac
> >  }
> >  
> > +_test_mkfs_options()
> > +{
> > +	_test_options mkfs
> > +	echo $TEST_OPTIONS $MKFS_OPTIONS $* $TEST_DEV
> > +}
> > +
> >  _test_mkfs()
> >  {
> >      case $FSTYP in
> > -- 
> > 2.43.0
> >
Darrick J. Wong June 24, 2024, 4:24 p.m. UTC | #3
On Mon, Jun 24, 2024 at 02:02:33PM +0000, Daniel Gomez wrote:
> On Fri, Jun 14, 2024 at 08:55:55AM GMT, Darrick J. Wong wrote:
> > On Fri, Jun 14, 2024 at 06:17:26AM +0000, Daniel Gomez wrote:
> > > Mount options for a SCRATCH device might not be the same in the TEST
> > > device if RECREATE_TEST_DEV is not enabled. So, print mount options for
> > > each device to clarify this.
> > > 
> > > Add mount and mkfs info for TEST devices so we get the same information
> > > being printed for both devices.
> > > 
> > > Signed-off-by: Daniel Gomez <da.gomez@samsung.com>
> > > ---
> > >  check     |  4 ++++
> > >  common/rc | 20 ++++++++++++++++++--
> > >  2 files changed, 22 insertions(+), 2 deletions(-)
> > > 
> > > diff --git a/check b/check
> > > index 723a52e30..e02d28b39 100755
> > > --- a/check
> > > +++ b/check
> > > @@ -807,7 +807,11 @@ function run_section()
> > >  	# print out our test configuration
> > >  	echo "FSTYP         -- `_full_fstyp_details`"
> > >  	echo "PLATFORM      -- `_full_platform_details`"
> > > +	echo "TEST device:"
> > > +	echo "MKFS_OPTIONS  -- `_test_mkfs_options`"
> > > +	echo "MOUNT_OPTIONS -- `_test_mount_options`"
> > >  	if [ ! -z "$SCRATCH_DEV" ]; then
> > > +	  echo "SCRATCH device:"
> > >  	  echo "MKFS_OPTIONS  -- `_scratch_mkfs_options`"
> > >  	  echo "MOUNT_OPTIONS -- `_scratch_mount_options`"
> > 
> > Now there are two lines that start with "MKFS_OPTIONS"; will this break
> > anyone's parsing scripts?  Or should these be prefixed:
> > 
> > echo "TEST_MKFS_OPTIONS -- `_test_mkfs_options`"
> > ...
> > echo "SCRATCH_MKFS_OPTIONS -- `_scratch_mkfs_options`"
> > 
> > ?
> 
> This looks like my initial version, but I prefer the 'sub-menu style' because
> we did not have these variables before. However, I think it makes sense to
> introduce them so we can differentiate between them. 

The trouble is, if your parsing script were doing something like
splitting on "-- " then the "TEST device:" string would not split
properly and you'd have to add context retention of some sort to know
which "MKFS_OPTIONS" this was for.  Better just to namespace the new
lines from the start.  I guess for compatibility's sake then we'd have
to have:

TEST_MKFS_OPTIONS -- -o foo=bar
MKFS_OPTIONS      -- -o foo=baz

in the output, along with a comment somewhere in the source that the
non-prefixed scratch mkfs options is that way for hyst[eo]rical output
parsing reasons.

--D

> I guess introducing this change would break anyone's parsing scripts regardless?
> However, I do think is necessary to specify the mount differences.
> > 
> > Also should these four variables be captured explicitly by the reports
> > that are generated by common/report ?
> 
> I guess the report only includes the scratch mount options. I will update it to
> include the new specific test and scratch mount/mkfs options.
> 
> > 
> > --D
> > 
> > >  	fi
> > > diff --git a/common/rc b/common/rc
> > > index a42792c37..b351a82eb 100644
> > > --- a/common/rc
> > > +++ b/common/rc
> > > @@ -235,6 +235,17 @@ _scratch_mount_options()
> > >  					$SCRATCH_DEV $SCRATCH_MNT
> > >  }
> > >  
> > > +_test_mount_options()
> > > +{
> > > +	_test_options mount
> > > +
> > > +	if $RECREATE_TEST_DEV || [ "$OLD_FSTYP" != "$FSTYP" ]; then
> > > +		echo $TEST_OPTIONS $TEST_FS_MOUNT_OPTS $SELINUX_MOUNT_OPTIONS $TMPFS_MOUNT_OPTIONS $* $TEST_DEV $TEST_DIR
> > > +	else
> > > +		echo $TEST_OPTIONS $TEST_FS_MOUNT_OPTS $SELINUX_MOUNT_OPTIONS $* $TEST_DEV $TEST_DIR
> > > +	fi
> > > +}
> > > +
> > >  _supports_filetype()
> > >  {
> > >  	local dir=$1
> > > @@ -456,8 +467,7 @@ _test_mount()
> > >          return $?
> > >      fi
> > >  
> > > -    _test_options mount
> > > -    _mount -t $FSTYP$FUSE_SUBTYP $TEST_OPTIONS $TEST_FS_MOUNT_OPTS $SELINUX_MOUNT_OPTIONS $TMPFS_MOUNT_OPTIONS $* $TEST_DEV $TEST_DIR
> > > +    _mount -t $FSTYP$FUSE_SUBTYP `_test_mount_options $*`
> > >      mount_ret=$?
> > >      [ $mount_ret -ne 0 ] && return $mount_ret
> > >      _idmapped_mount $TEST_DEV $TEST_DIR
> > > @@ -571,6 +581,12 @@ _metadump_dev() {
> > >  	esac
> > >  }
> > >  
> > > +_test_mkfs_options()
> > > +{
> > > +	_test_options mkfs
> > > +	echo $TEST_OPTIONS $MKFS_OPTIONS $* $TEST_DEV
> > > +}
> > > +
> > >  _test_mkfs()
> > >  {
> > >      case $FSTYP in
> > > -- 
> > > 2.43.0
> > >
Daniel Gomez June 24, 2024, 8:57 p.m. UTC | #4
On Mon, Jun 24, 2024 at 09:24:34AM GMT, Darrick J. Wong wrote:
> On Mon, Jun 24, 2024 at 02:02:33PM +0000, Daniel Gomez wrote:
> > On Fri, Jun 14, 2024 at 08:55:55AM GMT, Darrick J. Wong wrote:
> > > On Fri, Jun 14, 2024 at 06:17:26AM +0000, Daniel Gomez wrote:
> > > > Mount options for a SCRATCH device might not be the same in the TEST
> > > > device if RECREATE_TEST_DEV is not enabled. So, print mount options for
> > > > each device to clarify this.
> > > > 
> > > > Add mount and mkfs info for TEST devices so we get the same information
> > > > being printed for both devices.
> > > > 
> > > > Signed-off-by: Daniel Gomez <da.gomez@samsung.com>
> > > > ---
> > > >  check     |  4 ++++
> > > >  common/rc | 20 ++++++++++++++++++--
> > > >  2 files changed, 22 insertions(+), 2 deletions(-)
> > > > 
> > > > diff --git a/check b/check
> > > > index 723a52e30..e02d28b39 100755
> > > > --- a/check
> > > > +++ b/check
> > > > @@ -807,7 +807,11 @@ function run_section()
> > > >  	# print out our test configuration
> > > >  	echo "FSTYP         -- `_full_fstyp_details`"
> > > >  	echo "PLATFORM      -- `_full_platform_details`"
> > > > +	echo "TEST device:"
> > > > +	echo "MKFS_OPTIONS  -- `_test_mkfs_options`"
> > > > +	echo "MOUNT_OPTIONS -- `_test_mount_options`"
> > > >  	if [ ! -z "$SCRATCH_DEV" ]; then
> > > > +	  echo "SCRATCH device:"
> > > >  	  echo "MKFS_OPTIONS  -- `_scratch_mkfs_options`"
> > > >  	  echo "MOUNT_OPTIONS -- `_scratch_mount_options`"
> > > 
> > > Now there are two lines that start with "MKFS_OPTIONS"; will this break
> > > anyone's parsing scripts?  Or should these be prefixed:
> > > 
> > > echo "TEST_MKFS_OPTIONS -- `_test_mkfs_options`"
> > > ...
> > > echo "SCRATCH_MKFS_OPTIONS -- `_scratch_mkfs_options`"
> > > 
> > > ?
> > 
> > This looks like my initial version, but I prefer the 'sub-menu style' because
> > we did not have these variables before. However, I think it makes sense to
> > introduce them so we can differentiate between them. 
> 
> The trouble is, if your parsing script were doing something like
> splitting on "-- " then the "TEST device:" string would not split
> properly and you'd have to add context retention of some sort to know
> which "MKFS_OPTIONS" this was for.  Better just to namespace the new
> lines from the start.  I guess for compatibility's sake then we'd have
> to have:
> 
> TEST_MKFS_OPTIONS -- -o foo=bar
> MKFS_OPTIONS      -- -o foo=baz
> 
> in the output, along with a comment somewhere in the source that the
> non-prefixed scratch mkfs options is that way for hyst[eo]rical output
> parsing reasons.

We are also reporting as MOUNT_OPTIONS the scratch mount options. But
$MOUNT_OPTIONS are just the 'common' options, a subset of the scratch mount
options.

But I agree with only adding information for TEST device.

> 
> --D
> 
> > I guess introducing this change would break anyone's parsing scripts regardless?
> > However, I do think is necessary to specify the mount differences.
> > > 
> > > Also should these four variables be captured explicitly by the reports
> > > that are generated by common/report ?
> > 
> > I guess the report only includes the scratch mount options. I will update it to
> > include the new specific test and scratch mount/mkfs options.
> > 
> > > 
> > > --D
> > > 
> > > >  	fi
> > > > diff --git a/common/rc b/common/rc
> > > > index a42792c37..b351a82eb 100644
> > > > --- a/common/rc
> > > > +++ b/common/rc
> > > > @@ -235,6 +235,17 @@ _scratch_mount_options()
> > > >  					$SCRATCH_DEV $SCRATCH_MNT
> > > >  }
> > > >  
> > > > +_test_mount_options()
> > > > +{
> > > > +	_test_options mount
> > > > +
> > > > +	if $RECREATE_TEST_DEV || [ "$OLD_FSTYP" != "$FSTYP" ]; then
> > > > +		echo $TEST_OPTIONS $TEST_FS_MOUNT_OPTS $SELINUX_MOUNT_OPTIONS $TMPFS_MOUNT_OPTIONS $* $TEST_DEV $TEST_DIR
> > > > +	else
> > > > +		echo $TEST_OPTIONS $TEST_FS_MOUNT_OPTS $SELINUX_MOUNT_OPTIONS $* $TEST_DEV $TEST_DIR
> > > > +	fi
> > > > +}
> > > > +
> > > >  _supports_filetype()
> > > >  {
> > > >  	local dir=$1
> > > > @@ -456,8 +467,7 @@ _test_mount()
> > > >          return $?
> > > >      fi
> > > >  
> > > > -    _test_options mount
> > > > -    _mount -t $FSTYP$FUSE_SUBTYP $TEST_OPTIONS $TEST_FS_MOUNT_OPTS $SELINUX_MOUNT_OPTIONS $TMPFS_MOUNT_OPTIONS $* $TEST_DEV $TEST_DIR
> > > > +    _mount -t $FSTYP$FUSE_SUBTYP `_test_mount_options $*`
> > > >      mount_ret=$?
> > > >      [ $mount_ret -ne 0 ] && return $mount_ret
> > > >      _idmapped_mount $TEST_DEV $TEST_DIR
> > > > @@ -571,6 +581,12 @@ _metadump_dev() {
> > > >  	esac
> > > >  }
> > > >  
> > > > +_test_mkfs_options()
> > > > +{
> > > > +	_test_options mkfs
> > > > +	echo $TEST_OPTIONS $MKFS_OPTIONS $* $TEST_DEV
> > > > +}
> > > > +
> > > >  _test_mkfs()
> > > >  {
> > > >      case $FSTYP in
> > > > -- 
> > > > 2.43.0
> > > >
diff mbox series

Patch

diff --git a/check b/check
index 723a52e30..e02d28b39 100755
--- a/check
+++ b/check
@@ -807,7 +807,11 @@  function run_section()
 	# print out our test configuration
 	echo "FSTYP         -- `_full_fstyp_details`"
 	echo "PLATFORM      -- `_full_platform_details`"
+	echo "TEST device:"
+	echo "MKFS_OPTIONS  -- `_test_mkfs_options`"
+	echo "MOUNT_OPTIONS -- `_test_mount_options`"
 	if [ ! -z "$SCRATCH_DEV" ]; then
+	  echo "SCRATCH device:"
 	  echo "MKFS_OPTIONS  -- `_scratch_mkfs_options`"
 	  echo "MOUNT_OPTIONS -- `_scratch_mount_options`"
 	fi
diff --git a/common/rc b/common/rc
index a42792c37..b351a82eb 100644
--- a/common/rc
+++ b/common/rc
@@ -235,6 +235,17 @@  _scratch_mount_options()
 					$SCRATCH_DEV $SCRATCH_MNT
 }
 
+_test_mount_options()
+{
+	_test_options mount
+
+	if $RECREATE_TEST_DEV || [ "$OLD_FSTYP" != "$FSTYP" ]; then
+		echo $TEST_OPTIONS $TEST_FS_MOUNT_OPTS $SELINUX_MOUNT_OPTIONS $TMPFS_MOUNT_OPTIONS $* $TEST_DEV $TEST_DIR
+	else
+		echo $TEST_OPTIONS $TEST_FS_MOUNT_OPTS $SELINUX_MOUNT_OPTIONS $* $TEST_DEV $TEST_DIR
+	fi
+}
+
 _supports_filetype()
 {
 	local dir=$1
@@ -456,8 +467,7 @@  _test_mount()
         return $?
     fi
 
-    _test_options mount
-    _mount -t $FSTYP$FUSE_SUBTYP $TEST_OPTIONS $TEST_FS_MOUNT_OPTS $SELINUX_MOUNT_OPTIONS $TMPFS_MOUNT_OPTIONS $* $TEST_DEV $TEST_DIR
+    _mount -t $FSTYP$FUSE_SUBTYP `_test_mount_options $*`
     mount_ret=$?
     [ $mount_ret -ne 0 ] && return $mount_ret
     _idmapped_mount $TEST_DEV $TEST_DIR
@@ -571,6 +581,12 @@  _metadump_dev() {
 	esac
 }
 
+_test_mkfs_options()
+{
+	_test_options mkfs
+	echo $TEST_OPTIONS $MKFS_OPTIONS $* $TEST_DEV
+}
+
 _test_mkfs()
 {
     case $FSTYP in