support: Add xclock_gettime

* 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.
This commit is contained in:
Mike Crowe 2019-05-08 16:58:17 +02:00 committed by Florian Weimer
parent b2f601ba9a
commit 33647a7294
5 changed files with 78 additions and 0 deletions

View file

@ -1,3 +1,15 @@
2019-05-08 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-08 Florian Weimer <fweimer@redhat.com>
malloc/tst-mallocfork2: Use process-shared barriers.

View file

@ -78,6 +78,7 @@ libsupport-routines = \
xbind \
xcalloc \
xchroot \
xclock_gettime \
xclose \
xconnect \
xcopy_file_range \

View file

@ -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

31
support/xclock_gettime.c Normal file
View file

@ -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);
}

33
support/xtime.h Normal file
View file

@ -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 */