----- Original Message -----
> From: "Cyril Hrubis" <chru...@suse.cz>
> To: "Jan Stancek" <jstan...@redhat.com>
> Cc: ltp-list@lists.sourceforge.net
> Sent: Monday, 23 February, 2015 3:33:16 PM
> Subject: Re: [LTP] [PATCH] difftime/1-1: avoid running on second boundary
> 
> Hi!
> > diff --git
> > a/testcases/open_posix_testsuite/conformance/interfaces/difftime/1-1.c
> > b/testcases/open_posix_testsuite/conformance/interfaces/difftime/1-1.c
> > index 97bf443..2872e08 100644
> > --- a/testcases/open_posix_testsuite/conformance/interfaces/difftime/1-1.c
> > +++ b/testcases/open_posix_testsuite/conformance/interfaces/difftime/1-1.c
> > @@ -15,14 +15,31 @@
> >  #include <stdio.h>
> >  #include <stdlib.h>
> >  #include <unistd.h>
> > +#include <sys/time.h>
> >  #include "posixtest.h"
> >  
> >  int main(void)
> >  {
> >     time_t time1, time0;
> > -
> >     double time_diff;
> > -   time_diff = 0;
> > +   struct timeval t1;
> > +
> > +   /*
> > +    * Quoting https://lkml.org/lkml/2015/2/19/384
> > +    *  "The idea that time() would be ok as being HZ granular, and its
> > +    *  been this way since 2.6.23.  Thus you have a < HZ sized window
> > +    *  where gettimeofday() will return the next second before time()
> > +    *  gets updated by the tick."
> > +    *
> > +    * Avoid running this test on second boundary as there is small
> > +    * window, where this test can fail on Linux, reporting that 2
> > +    * seconds has passed.
> > +    */
> > +   do {
> > +           usleep(10000);
> > +           gettimeofday(&t1, NULL);
> > +   } while (t1.tv_usec > 700*1000 || t1.tv_usec < 300*1000);
> > +
> >     time0 = time(NULL);
> >     sleep(WAIT_DURATION);
> >     time1 = time(NULL);
> 
> Looking at the test I wonder why we even have to call sleep() and then

That is a good point :-), the test is for difftime.

> time() to get the second timestamp. POSIX specifies that time_t is
> integer of floating point type so assigning a number to it and
> arithmetic should work just fine. So we can just do time1 = time0 + 1

I sent v2 which removes sleep and adds 1.

Regards,
Jan

> instead. Or go even further and pass statically defined values to
> difftime() and compare it with precomputed value.
> 
> --
> Cyril Hrubis
> chru...@suse.cz
> 

------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=190641631&iu=/4140/ostg.clktrk
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to