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

View File

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

View File

@ -10,6 +10,7 @@ error. They are declared in these header files:
* support.h * support.h
* xsignal.h * xsignal.h
* xthread.h * xthread.h
* xtime.h
In general, new wrappers should be added to support.h if possible. In general, new wrappers should be added to support.h if possible.
However, support.h must remain fully compatible with C90 and therefore 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 */