public inbox for fstests@vger.kernel.org
 help / color / mirror / Atom feed
From: Eryu Guan <eguan@redhat.com>
To: Jan Tulak <jtulak@redhat.com>
Cc: fstests@vger.kernel.org, Dave Chinner <david@fromorbit.com>
Subject: Re: [PATCH v2] xfstests: update xfs/096 for new behaviour
Date: Thu, 30 Jun 2016 14:54:59 +0800	[thread overview]
Message-ID: <20160630065459.GW23649@eguan.usersys.redhat.com> (raw)
In-Reply-To: <1467195535-32147-1-git-send-email-jtulak@redhat.com>

On Wed, Jun 29, 2016 at 12:18:55PM +0200, Jan Tulak wrote:
> Because we recently changed how mkfs behaves when it gets incorrect/invalid
> values, update the expected output to reflect the current status.
> However, keep also compatibility with the old version.
> 
> Signed-off-by: Jan Tulak <jtulak@redhat.com>
> ---
> CHANGE: added compatibility for the old xfsprogs.

Sorry for the late response, because I was lost on this :)

Hi Dave - what's the rule/policy of maintaining the backword
compatibility in fstests? I know that efforts have been made to make
sure new changes don't break old binaries, but is that a must or a
best-to-have? And what do you think about the xfsprogs version
comparing? (I'm OK with it :-))

Thanks!

Eryu

> 
> ---
>  tests/xfs/096                     | 26 ++++++++++++++---
>  tests/xfs/096.out.external.pre460 | 50 ++++++++++++++++++++++++++++++++
>  tests/xfs/096.out.internal        | 60 +++++++++++++++++++++++++++++++++------
>  tests/xfs/096.out.internal.pre460 | 51 +++++++++++++++++++++++++++++++++
>  4 files changed, 175 insertions(+), 12 deletions(-)
>  create mode 100644 tests/xfs/096.out.external.pre460
>  create mode 100644 tests/xfs/096.out.internal.pre460
> 
> diff --git a/tests/xfs/096 b/tests/xfs/096
> index f949e83..fe3d58c 100755
> --- a/tests/xfs/096
> +++ b/tests/xfs/096
> @@ -39,6 +39,14 @@ _cleanup()
>      rm -f $tmp.*
>  }
>  
> +# Get xfsprogs version as a number (4.7.0 => 470)
> +xfsprogs_ver()
> +{
> +	$MKFS_XFS_PROG -V | \
> +	grep -o "[0-9]\+\.[0-9]\+\.[0-9]\+" | \
> +	sed "s/\.//g"
> +}
> +
>  # get standard environment, filters and checks
>  . ./common/rc
>  . ./common/filter
> @@ -106,12 +114,22 @@ _supported_os IRIX Linux
>  _require_scratch
>  _require_v2log
>  
> -# choose .out file based on internal/external log
> +# Skip on old versions of xfsprogs
> +# and choose .out file based on internal/external log
>  rm -f $seqfull.out
> -if [ "$USE_EXTERNAL" = yes ]; then
> -	ln -s $seq.out.external $seqfull.out
> +version=$(xfsprogs_ver)
> +if [ $version -ge 460 ]; then
> +	if [ "$USE_EXTERNAL" = yes ]; then
> +		ln -s $seq.out.external $seqfull.out
> +	else
> +		ln -s $seq.out.internal $seqfull.out
> +	fi
>  else
> -	ln -s $seq.out.internal $seqfull.out
> +	if [ "$USE_EXTERNAL" = yes ]; then
> +		ln -s $seq.out.external.pre460 $seqfull.out
> +	else
> +		ln -s $seq.out.internal.pre460 $seqfull.out
> +	fi
>  fi
>  
>  # maximum log record size
> diff --git a/tests/xfs/096.out.external.pre460 b/tests/xfs/096.out.external.pre460
> new file mode 100644
> index 0000000..3122330
> --- /dev/null
> +++ b/tests/xfs/096.out.external.pre460
> @@ -0,0 +1,50 @@
> +QA output created by 096
> +
> +# su too big but must be a multiple of fs block size too
> +--- mkfs=-l version=2,su=262656 ---
> +log stripe unit (262656) must be a multiple of the block size (4096)
> +
> +
> +# test log stripe greater than LR size
> +--- mkfs=-l version=2,su=266240 ---
> +meta-data=DEV isize=N      agcount=N, agsize=N blks
> +data     =                       bsize=4096   blocks=N, imaxpct=N
> +         =                       sunit=0      swidth=0 blks, unwritten=1
> +naming   =version 2              bsize=4096
> +log      =LOG                    bsize=4096   blocks=N, version=N
> +realtime =REALTIME               extsz=N, blocks=N, rtextents=N
> +
> +
> +# same test but get log stripe from data stripe
> +--- mkfs=-l version=2 -d su=266240,sw=1 ---
> +meta-data=DEV isize=N      agcount=N, agsize=N blks
> +data     =                       bsize=4096   blocks=N, imaxpct=N
> +         =                       sunit=65     swidth=65 blks, unwritten=1
> +naming   =version 2              bsize=4096
> +log      =LOG                    bsize=4096   blocks=N, version=N
> +         =                       sunit=N blks
> +realtime =REALTIME               extsz=N, blocks=N, rtextents=N
> +
> +
> +# test out data stripe
> +--- mkfs=-m crc=0 -l version=1 -d su=266240,sw=1 ---
> +meta-data=DEV isize=N      agcount=N, agsize=N blks
> +data     =                       bsize=4096   blocks=N, imaxpct=N
> +         =                       sunit=65     swidth=65 blks, unwritten=1
> +naming   =version 2              bsize=4096
> +log      =LOG                    bsize=4096   blocks=N, version=N
> +         =                       sunit=N blks
> +realtime =REALTIME               extsz=N, blocks=N, rtextents=N
> +
> +
> +# test out data stripe the same but using sunit & swidth
> +--- mkfs=-m crc=0 -l version=1 -d sunit=520,swidth=520 ---
> +meta-data=DEV isize=N      agcount=N, agsize=N blks
> +data     =                       bsize=4096   blocks=N, imaxpct=N
> +         =                       sunit=65     swidth=65 blks, unwritten=1
> +naming   =version 2              bsize=4096
> +log      =LOG                    bsize=4096   blocks=N, version=N
> +         =                       sunit=N blks
> +realtime =REALTIME               extsz=N, blocks=N, rtextents=N
> +
> +
> diff --git a/tests/xfs/096.out.internal b/tests/xfs/096.out.internal
> index 80201d2..82c2043 100644
> --- a/tests/xfs/096.out.internal
> +++ b/tests/xfs/096.out.internal
> @@ -2,18 +2,62 @@ QA output created by 096
>  
>  # su too big but must be a multiple of fs block size too
>  --- mkfs=-l version=2,su=262656 ---
> -log stripe unit (262656) must be a multiple of the block size (4096)
> +Illegal value 262656 for -l su option. value is too large
> +Usage: mkfs.xfs
> +/* blocksize */		[-b log=n|size=num]
> +/* data subvol */	[-d agcount=n,agsize=n,file,name=xxx,size=num,
> +			    (sunit=value,swidth=value|su=num,sw=num|noalign),
> +			    sectlog=n|sectsize=num
> +/* force overwrite */	[-f]
> +/* inode size */	[-i log=n|perblock=n|size=num,maxpct=n,attr=0|1|2,
> +			    projid32bit=0|1,sparse=0|1]
> +/* no discard */	[-K]
> +/* log subvol */	[-l agnum=n,internal,size=num,logdev=xxx,version=n
> +			    sunit=value|su=num,sectlog=n|sectsize=num,
> +			    lazy-count=0|1]
> +/* label */		[-L label (maximum 12 characters)]
> +/* naming */		[-n log=n|size=num,version=N|ci,ftype=0|1]
> +/* no-op info only */	[-N]
> +/* prototype file */	[-p fname]
> +/* quiet */		[-q]
> +/* realtime subvol */	[-r extsize=num,size=num,rtdev=xxx]
> +/* sectorsize */	[-s log=n|size=num]
> +/* version */		[-V]
> +			devicename
> +<devicename> is required unless -d name=xxx is given.
> +<num> is xxx (bytes), xxxs (sectors), xxxb (fs blocks), xxxk (xxx KiB),
> +      xxxm (xxx MiB), xxxg (xxx GiB), xxxt (xxx TiB) or xxxp (xxx PiB).
> +<value> is xxx (512 byte blocks).
>  
>  
>  # test log stripe greater than LR size
>  --- mkfs=-l version=2,su=266240 ---
> -meta-data=DEV isize=N    agcount=N, agsize=N blks
> -data     =                       bsize=4096   blocks=N, imaxpct=N
> -         =                       sunit=0      swidth=0 blks, unwritten=1
> -naming   =version 2              bsize=4096
> -log      =LOG                    bsize=4096   blocks=N, version=N
> -         =                       sunit=N blks
> -realtime =REALTIME               extsz=N, blocks=N, rtextents=N
> +Illegal value 266240 for -l su option. value is too large
> +Usage: mkfs.xfs
> +/* blocksize */		[-b log=n|size=num]
> +/* data subvol */	[-d agcount=n,agsize=n,file,name=xxx,size=num,
> +			    (sunit=value,swidth=value|su=num,sw=num|noalign),
> +			    sectlog=n|sectsize=num
> +/* force overwrite */	[-f]
> +/* inode size */	[-i log=n|perblock=n|size=num,maxpct=n,attr=0|1|2,
> +			    projid32bit=0|1,sparse=0|1]
> +/* no discard */	[-K]
> +/* log subvol */	[-l agnum=n,internal,size=num,logdev=xxx,version=n
> +			    sunit=value|su=num,sectlog=n|sectsize=num,
> +			    lazy-count=0|1]
> +/* label */		[-L label (maximum 12 characters)]
> +/* naming */		[-n log=n|size=num,version=N|ci,ftype=0|1]
> +/* no-op info only */	[-N]
> +/* prototype file */	[-p fname]
> +/* quiet */		[-q]
> +/* realtime subvol */	[-r extsize=num,size=num,rtdev=xxx]
> +/* sectorsize */	[-s log=n|size=num]
> +/* version */		[-V]
> +			devicename
> +<devicename> is required unless -d name=xxx is given.
> +<num> is xxx (bytes), xxxs (sectors), xxxb (fs blocks), xxxk (xxx KiB),
> +      xxxm (xxx MiB), xxxg (xxx GiB), xxxt (xxx TiB) or xxxp (xxx PiB).
> +<value> is xxx (512 byte blocks).
>  
>  
>  # same test but get log stripe from data stripe
> diff --git a/tests/xfs/096.out.internal.pre460 b/tests/xfs/096.out.internal.pre460
> new file mode 100644
> index 0000000..80201d2
> --- /dev/null
> +++ b/tests/xfs/096.out.internal.pre460
> @@ -0,0 +1,51 @@
> +QA output created by 096
> +
> +# su too big but must be a multiple of fs block size too
> +--- mkfs=-l version=2,su=262656 ---
> +log stripe unit (262656) must be a multiple of the block size (4096)
> +
> +
> +# test log stripe greater than LR size
> +--- mkfs=-l version=2,su=266240 ---
> +meta-data=DEV isize=N    agcount=N, agsize=N blks
> +data     =                       bsize=4096   blocks=N, imaxpct=N
> +         =                       sunit=0      swidth=0 blks, unwritten=1
> +naming   =version 2              bsize=4096
> +log      =LOG                    bsize=4096   blocks=N, version=N
> +         =                       sunit=N blks
> +realtime =REALTIME               extsz=N, blocks=N, rtextents=N
> +
> +
> +# same test but get log stripe from data stripe
> +--- mkfs=-l version=2 -d su=266240,sw=1 ---
> +meta-data=DEV isize=N    agcount=N, agsize=N blks
> +data     =                       bsize=4096   blocks=N, imaxpct=N
> +         =                       sunit=65     swidth=65 blks, unwritten=1
> +naming   =version 2              bsize=4096
> +log      =LOG                    bsize=4096   blocks=N, version=N
> +         =                       sunit=N blks
> +realtime =REALTIME               extsz=N, blocks=N, rtextents=N
> +
> +
> +# test out data stripe
> +--- mkfs=-m crc=0 -l version=1 -d su=266240,sw=1 ---
> +meta-data=DEV isize=N    agcount=N, agsize=N blks
> +data     =                       bsize=4096   blocks=N, imaxpct=N
> +         =                       sunit=65     swidth=65 blks, unwritten=1
> +naming   =version 2              bsize=4096
> +log      =LOG                    bsize=4096   blocks=N, version=N
> +         =                       sunit=N blks
> +realtime =REALTIME               extsz=N, blocks=N, rtextents=N
> +
> +
> +# test out data stripe the same but using sunit & swidth
> +--- mkfs=-m crc=0 -l version=1 -d sunit=520,swidth=520 ---
> +meta-data=DEV isize=N    agcount=N, agsize=N blks
> +data     =                       bsize=4096   blocks=N, imaxpct=N
> +         =                       sunit=65     swidth=65 blks, unwritten=1
> +naming   =version 2              bsize=4096
> +log      =LOG                    bsize=4096   blocks=N, version=N
> +         =                       sunit=N blks
> +realtime =REALTIME               extsz=N, blocks=N, rtextents=N
> +
> +
> -- 
> 2.5.5
> 

  reply	other threads:[~2016-06-30  7:01 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-02  9:10 [PATCH] xfstests: update xfs/096 for new behaviour Jan Tulak
2016-06-07  3:45 ` Eryu Guan
     [not found]   ` <CACj3i733G7oz_tg4NANfz_=X5nYMp31k-FskEPXxHsaSxKtTEw@mail.gmail.com>
2016-06-07  8:31     ` Fwd: " Jan Tulak
2016-06-23 11:22     ` Jan Tulak
2016-06-23 11:41       ` Jan Tulak
2016-06-29 10:18 ` [PATCH v2] " Jan Tulak
2016-06-30  6:54   ` Eryu Guan [this message]
2016-07-01  0:37     ` Dave Chinner
2016-07-01  3:05       ` Eryu Guan
2016-07-01 12:12         ` Jan Tulak
2016-07-01 16:14 ` [PATCH v3] " Jan Tulak
2016-07-13 10:38   ` Eryu Guan
2016-07-14 10:25     ` Jan Tulak

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=20160630065459.GW23649@eguan.usersys.redhat.com \
    --to=eguan@redhat.com \
    --cc=david@fromorbit.com \
    --cc=fstests@vger.kernel.org \
    --cc=jtulak@redhat.com \
    /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