[1/5] support: Add xclock_gettime

Message ID effd524dc2717f61b6cc8e3d3b75cb0273586919.1556830454.git-series.mac@mcrowe.com
State Committed
Headers

Commit Message

Mike Crowe May 2, 2019, 8:54 p.m. UTC
  * support/xclock_gettime.c (xclock_gettime): New file. Provide
	clock_gettime wrapper for use in tests that fails the test rather
	than returning failure.

	* support/xtime.h: New file to declare xclock_gettime.

	* support/Makefile: Add xclock_gettime.c.

	* support/README: Mention xtime.h.
---
 ChangeLog                | 12 ++++++++++++
 support/Makefile         |  1 +
 support/README           |  1 +
 support/xclock_gettime.c | 31 +++++++++++++++++++++++++++++++
 support/xtime.h          | 33 +++++++++++++++++++++++++++++++++
 5 files changed, 78 insertions(+)
 create mode 100644 support/xclock_gettime.c
 create mode 100644 support/xtime.h
  

Comments

Florian Weimer May 8, 2019, 1:46 p.m. UTC | #1
* Mike Crowe:

> * support/xclock_gettime.c (xclock_gettime): New file. Provide
> 	clock_gettime wrapper for use in tests that fails the test rather
> 	than returning failure.
>
> 	* support/xtime.h: New file to declare xclock_gettime.
>
> 	* support/Makefile: Add xclock_gettime.c.
>
> 	* support/README: Mention xtime.h.

Patch looks good, but the commit message above looks a bit odd (I mean
the indentation).

Do you have an account on sourceware?  If yes, please push this
independently of the rest.

Thanks,
Florian
  
Mike Crowe May 8, 2019, 2:22 p.m. UTC | #2
On Wednesday 08 May 2019 at 15:46:48 +0200, Florian Weimer wrote:
> * Mike Crowe:
> > * support/xclock_gettime.c (xclock_gettime): New file. Provide
> > 	clock_gettime wrapper for use in tests that fails the test rather
> > 	than returning failure.
> >
> > 	* support/xtime.h: New file to declare xclock_gettime.
> >
> > 	* support/Makefile: Add xclock_gettime.c.
> >
> > 	* support/README: Mention xtime.h.
> 
> Patch looks good, but the commit message above looks a bit odd (I mean
> the indentation).

I just copied and pasted from the ChangeLog entry, so each line starts with
a tab. This seems to be quite common looking through the existing history
(e.g. 52faba65f84ee5a8d82ff813bcfa0ee5f4d480cf) but I can reformat it to
remove the tab if required. I could also add some explanatory text before
the ChangeLog entry if you think that would be better.

> Do you have an account on sourceware?  If yes, please push this
> independently of the rest.

No, I do not.

Thanks.

Mike.
  
Florian Weimer May 8, 2019, 3 p.m. UTC | #3
* Mike Crowe:

> On Wednesday 08 May 2019 at 15:46:48 +0200, Florian Weimer wrote:
>> * Mike Crowe:
>> > * support/xclock_gettime.c (xclock_gettime): New file. Provide
>> > 	clock_gettime wrapper for use in tests that fails the test rather
>> > 	than returning failure.
>> >
>> > 	* support/xtime.h: New file to declare xclock_gettime.
>> >
>> > 	* support/Makefile: Add xclock_gettime.c.
>> >
>> > 	* support/README: Mention xtime.h.
>> 
>> Patch looks good, but the commit message above looks a bit odd (I mean
>> the indentation).
>
> I just copied and pasted from the ChangeLog entry, so each line starts with
> a tab. This seems to be quite common looking through the existing history
> (e.g. 52faba65f84ee5a8d82ff813bcfa0ee5f4d480cf) but I can reformat it to
> remove the tab if required. I could also add some explanatory text before
> the ChangeLog entry if you think that would be better.

Something ate the first tab character, on the initial line.  I've fixed
it.  (I don't think it's Zimbra's fault, it's missing in the web
archives as well.)

>> Do you have an account on sourceware?  If yes, please push this
>> independently of the rest.
>
> No, I do not.

Okay, I've pushed it for you.

Thanks,
Florian
  
Adhemerval Zanella May 8, 2019, 3:11 p.m. UTC | #4
On 08/05/2019 10:46, Florian Weimer wrote:
> * Mike Crowe:
> 
>> * support/xclock_gettime.c (xclock_gettime): New file. Provide
>> 	clock_gettime wrapper for use in tests that fails the test rather
>> 	than returning failure.
>>
>> 	* support/xtime.h: New file to declare xclock_gettime.
>>
>> 	* support/Makefile: Add xclock_gettime.c.
>>
>> 	* support/README: Mention xtime.h.
> 
> Patch looks good, but the commit message above looks a bit odd (I mean
> the indentation).
> 
> Do you have an account on sourceware?  If yes, please push this
> independently of the rest.
> 

I can push it for him, I was planning to following up these patches.
  
Mike Crowe May 8, 2019, 4:17 p.m. UTC | #5
On Wednesday 08 May 2019 at 17:00:36 +0200, Florian Weimer wrote:
> * Mike Crowe:
> 
> > On Wednesday 08 May 2019 at 15:46:48 +0200, Florian Weimer wrote:
> >> * Mike Crowe:
> >> > * support/xclock_gettime.c (xclock_gettime): New file. Provide
> >> > 	clock_gettime wrapper for use in tests that fails the test rather
> >> > 	than returning failure.
> >> >
> >> > 	* support/xtime.h: New file to declare xclock_gettime.
> >> >
> >> > 	* support/Makefile: Add xclock_gettime.c.
> >> >
> >> > 	* support/README: Mention xtime.h.
> >> 
> >> Patch looks good, but the commit message above looks a bit odd (I mean
> >> the indentation).
> >
> > I just copied and pasted from the ChangeLog entry, so each line starts with
> > a tab. This seems to be quite common looking through the existing history
> > (e.g. 52faba65f84ee5a8d82ff813bcfa0ee5f4d480cf) but I can reformat it to
> > remove the tab if required. I could also add some explanatory text before
> > the ChangeLog entry if you think that would be better.
> 
> Something ate the first tab character, on the initial line.  I've fixed
> it.  (I don't think it's Zimbra's fault, it's missing in the web
> archives as well.)

You're right. The initial tab is in the file that git series format
generated, but either git send-email or my MTA ate it. :( I shall remove
the tabs in future to avoid that problem.

> >> Do you have an account on sourceware?  If yes, please push this
> >> independently of the rest.
> >
> > No, I do not.
> 
> Okay, I've pushed it for you.

Thanks!

Mike.
  

Patch

diff --git a/ChangeLog b/ChangeLog
index 2d1907b..6008265 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@ 
+2019-05-02  Mike Crowe  <mac@mcrowe.com>
+
+	* support/xclock_gettime.c (xclock_gettime): New file. Provide
+	clock_gettime wrapper for use in tests that fails the test rather
+	than returning failure.
+
+	* support/xtime.h: New file to declare xclock_gettime.
+
+	* support/Makefile: Add xclock_gettime.c.
+
+	* support/README: Mention xtime.h.
+
 2019-05-02  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
 
 	[BZ #24506]
diff --git a/support/Makefile b/support/Makefile
index 574e34c..05865fe 100644
--- a/support/Makefile
+++ b/support/Makefile
@@ -78,6 +78,7 @@  libsupport-routines = \
   xbind \
   xcalloc \
   xchroot \
+  xclock_gettime \
   xclose \
   xconnect \
   xcopy_file_range \
diff --git a/support/README b/support/README
index 476cfcd..d82f472 100644
--- a/support/README
+++ b/support/README
@@ -10,6 +10,7 @@  error.  They are declared in these header files:
 * support.h
 * xsignal.h
 * xthread.h
+* xtime.h
 
 In general, new wrappers should be added to support.h if possible.
 However, support.h must remain fully compatible with C90 and therefore
diff --git a/support/xclock_gettime.c b/support/xclock_gettime.c
new file mode 100644
index 0000000..0961e75
--- /dev/null
+++ b/support/xclock_gettime.c
@@ -0,0 +1,31 @@ 
+/* clock_gettime with error checking.
+   Copyright (C) 2019 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 <support/check.h>
+#include <support/xtime.h>
+#include <support/xthread.h>
+
+void
+xclock_gettime (clockid_t clockid,
+                struct timespec *ts)
+{
+  const int ret = clock_gettime (clockid, ts);
+  if (ret < 0)
+    FAIL_EXIT1 ("clock_gettime (%d): %m",
+                clockid);
+}
diff --git a/support/xtime.h b/support/xtime.h
new file mode 100644
index 0000000..68af1a5
--- /dev/null
+++ b/support/xtime.h
@@ -0,0 +1,33 @@ 
+/* Support functionality for using time.
+   Copyright (C) 2019 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/>.  */
+
+#ifndef SUPPORT_TIME_H
+#define SUPPORT_TIME_H
+
+#include <time.h>
+
+__BEGIN_DECLS
+
+/* The following functions call the corresponding libc functions and
+   terminate the process on error.  */
+
+void xclock_gettime (clockid_t clock, struct timespec *ts);
+
+__END_DECLS
+
+#endif /* SUPPORT_TIME_H */