This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Thanks, this looks good to me. I'll commit it when master opens up for 2.21. On Fri, Sep 05, 2014 at 08:13:54AM +0200, Arjun Shankar wrote: > This test verifies the sanity of ftime and exposes bugs such as BZ #16430. > It takes between one and two seconds to finish. > > ChangeLog: > > 2014-09-05 Arjun Shankar <arjun.is@lostca.se> > > * time/tst-ftime.c: New test. > * time/Makefile (tests): Add tst-ftime. > --- > time/Makefile | 2 +- > time/tst-ftime.c | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > 2 files changed, 60 insertions(+), 1 deletion(-) > create mode 100644 time/tst-ftime.c > > Changes in v2: > - incorporate review comments from Siddhesh > diff --git a/time/Makefile b/time/Makefile > index a07c041..55c1de8 100644 > --- a/time/Makefile > +++ b/time/Makefile > @@ -37,7 +37,7 @@ aux := era alt_digit lc-time-cleanup > tests := test_time clocktest tst-posixtz tst-strptime tst_wcsftime \ > tst-getdate tst-mktime tst-mktime2 tst-ftime_l tst-strftime \ > tst-mktime3 tst-strptime2 bug-asctime bug-asctime_r bug-mktime1 \ > - tst-strptime3 bug-getdate1 tst-strptime-whitespace > + tst-strptime3 bug-getdate1 tst-strptime-whitespace tst-ftime > > include ../Rules > > diff --git a/time/tst-ftime.c b/time/tst-ftime.c > new file mode 100644 > index 0000000..78fb2f6 > --- /dev/null > +++ b/time/tst-ftime.c > @@ -0,0 +1,59 @@ > +/* Verify that ftime is sane. > + Copyright (C) 2014 Free Software Foundation, Inc. > + This file is part of the GNU C Library. > + > + The GNU C Library is free software; you can redistribute it and/or > + modify it under the terms of the GNU Lesser General Public > + License as published by the Free Software Foundation; either > + version 2.1 of the License, or (at your option) any later version. > + > + The GNU C Library is distributed in the hope that it will be useful, > + but WITHOUT ANY WARRANTY; without even the implied warranty of > + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > + Lesser General Public License for more details. > + > + You should have received a copy of the GNU Lesser General Public > + License along with the GNU C Library; if not, see > + <http://www.gnu.org/licenses/>. */ > + > +#include <sys/timeb.h> > +#include <stdio.h> > + > +static int > +do_test (void) > +{ > + struct timeb prev, curr = {.time = 0, .millitm = 0}; > + int sec = 0; > + > + while (sec != 3) > + { > + prev = curr; > + > + if (ftime (&curr)) > + { > + printf ("ftime returned an error\n"); > + return 1; > + } > + > + if (curr.time < prev.time) > + { > + printf ("ftime's time flowed backwards\n"); > + return 1; > + } > + > + if (curr.time == prev.time > + && curr.millitm < prev.millitm) > + { > + printf ("ftime's millitm flowed backwards\n"); > + return 1; > + } > + > + if (curr.time > prev.time) > + sec ++; > + } > + return 0; > +} > + > +#define TIMEOUT 3 > +#define TEST_FUNCTION do_test () > +#include "../test-skeleton.c"
Attachment:
pgp288P55QhuT.pgp
Description: PGP signature
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |