diff options
author | Lucas De Marchi <lucas.de.marchi@gmail.com> | 2022-06-03 14:50:43 -0700 |
---|---|---|
committer | Lucas De Marchi <lucas.de.marchi@gmail.com> | 2022-06-26 23:23:46 -0700 |
commit | 5622f1dae10cf393bc1b142573ce5bf446334816 (patch) | |
tree | 94ad17a8f4b10f4f6f12262ea4e1c6916f9f976f | |
parent | 2ab4fbcb77aec709261a07d51c3175153c2a4dca (diff) | |
download | kmod-5622f1dae10cf393bc1b142573ce5bf446334816.tar.gz kmod-5622f1dae10cf393bc1b142573ce5bf446334816.tar.bz2 kmod-5622f1dae10cf393bc1b142573ce5bf446334816.zip |
util: Add time-related functions from testsuite
This will be useful in future not only to testsuite, but also to tools
and library.
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
-rw-r--r-- | shared/util.c | 10 | ||||
-rw-r--r-- | shared/util.h | 8 | ||||
-rw-r--r-- | testsuite/testsuite.c | 14 |
3 files changed, 19 insertions, 13 deletions
diff --git a/shared/util.c b/shared/util.c index b487b5f..aeb171f 100644 --- a/shared/util.c +++ b/shared/util.c @@ -466,6 +466,16 @@ unsigned long long ts_usec(const struct timespec *ts) (unsigned long long) ts->tv_nsec / NSEC_PER_USEC; } +unsigned long long now_usec(void) +{ + struct timespec ts; + + if (clock_gettime(CLOCK_MONOTONIC, &ts) != 0) + return 0; + + return ts_usec(&ts); +} + unsigned long long stat_mstamp(const struct stat *st) { #ifdef HAVE_STRUCT_STAT_ST_MTIM diff --git a/shared/util.h b/shared/util.h index c6a31df..734a523 100644 --- a/shared/util.h +++ b/shared/util.h @@ -7,6 +7,7 @@ #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> +#include <time.h> #include <shared/macro.h> @@ -42,7 +43,14 @@ char *path_make_absolute_cwd(const char *p) _must_check_ __attribute__((nonnull( int mkdir_p(const char *path, int len, mode_t mode); int mkdir_parents(const char *path, mode_t mode); unsigned long long stat_mstamp(const struct stat *st); + +/* time-related functions + * ************************************************************************ */ +#define USEC_PER_SEC 1000000ULL +#define USEC_PER_MSEC 1000ULL + unsigned long long ts_usec(const struct timespec *ts); +unsigned long long now_usec(void); /* endianess and alignments */ /* ************************************************************************ */ diff --git a/testsuite/testsuite.c b/testsuite/testsuite.c index 05df553..6a2d296 100644 --- a/testsuite/testsuite.c +++ b/testsuite/testsuite.c @@ -51,6 +51,7 @@ static const struct option options[] = { }; #define OVERRIDE_LIBDIR ABS_TOP_BUILDDIR "/testsuite/.libs/" +#define TEST_TIMEOUT_USEC 2 * USEC_PER_SEC struct _env_config { const char *key; @@ -62,19 +63,6 @@ struct _env_config { [TC_DELETE_MODULE_RETCODES] = { S_TC_DELETE_MODULE_RETCODES, OVERRIDE_LIBDIR "delete_module.so" }, }; -#define USEC_PER_SEC 1000000ULL -#define USEC_PER_MSEC 1000ULL -#define TEST_TIMEOUT_USEC 2 * USEC_PER_SEC -static unsigned long long now_usec(void) -{ - struct timespec ts; - - if (clock_gettime(CLOCK_MONOTONIC, &ts) != 0) - return 0; - - return ts_usec(&ts); -} - static void help(void) { const struct option *itr; |