Re: [PATCH] generic/297: fix the delta time based on stat

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]



Hi,

> On Fri, Jun 10, 2022 at 12:36:24PM +0800, Wang Yugui wrote:
> > Hi,
> > 
> > > On Fri, Jun 10, 2022 at 10:35:53AM +0800, Wang Yugui wrote:
> > > > stat -c '%Y' report seconds as int, so the delta 2.01s may result as 3s.
> > > > 
> > > > Signed-off-by: Wang Yugui <wangyugui@xxxxxxxxxxxx>
> > > > ---
> > > >  tests/generic/297 | 4 ++--
> > > >  1 file changed, 2 insertions(+), 2 deletions(-)
> > > > 
> > > > diff --git a/tests/generic/297 b/tests/generic/297
> > > > index 6bdc3e1c..e3082202 100755
> > > > --- a/tests/generic/297
> > > > +++ b/tests/generic/297
> > > > @@ -51,7 +51,7 @@ for i in $(seq 0 $fnr); do
> > > >  	touch $TEST_DIR/after
> > > >  	before=$(stat -c '%Y' $TEST_DIR/before)
> > > >  	after=$(stat -c '%Y' $TEST_DIR/after)
> > > > -	delta=$((after - before))
> > > > +	delta=$((after - before -1)) # 2.01s may result as 3s; so -1
> > > 
> > > What issue is this change trying to fix? "timeout=8"s is not long enough?
> > 
> > for the command
> > $TIMEOUT_PROG -s INT ${kill_after}s
> > 
> > delta=$((after - before )) may report 'kill_after+1' in some case.
> 
> Yes, that's what it is supposed to report. The process is
> killed 2s after the test starts, so delta is going to be kill_after
> + the delay for the task to exit and the 'touch $TEST_DIR/after'
> command to run. This can take a second or two, depending on how fast
> the reflink operation is proceeding (e.g. waiting on IO).
> 
> > so no relationship to "timeout=8" or "timeout=2".
> 
> If the reflink doesn't get killed within 6s then delta will be
> greater than the timeout (8) and the test fails. So if delta is 2 or
> 3, then it makes no difference to the test result, right?
> 
> > '$XFS_IO_PROG -f -c reflink' without '$TIMEOUT_PROG -s INT ${kill_after}s'
> > may take 20s because this is a very complex reflink.
> 
> Yes, and if it takes 20s (i.e. delta=20s) then it means that the
> kill signal was not delivered and acted upon correctly and so the
> test should fail.

If we want to detect the 'timeout', a simple way it to check
the return value of '$TIMEOUT_PROG '

#timeout exit with status 124.

now we just fix this delta value error because of float/int.

Best Regards
Wang Yugui (wangyugui@xxxxxxxxxxxx)
2022/06/10





[Index of Archives]     [Linux Filesystems Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux