diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2019-12-20 10:55:36 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2019-12-20 11:06:13 +0100 |
commit | 77ac1519e863b7095f69c976353f7647c6f6f63b (patch) | |
tree | dae63260f998c0afcbced1394496d6d3df1547fb /cpukit | |
parent | libtest: Fix use of T_check_true() (diff) | |
download | rtems-77ac1519e863b7095f69c976353f7647c6f6f63b.tar.bz2 |
libtest: Use test configuration in T_now()
Use the user provided now handler of the test configuration to get the
time in T_now().
Diffstat (limited to 'cpukit')
-rw-r--r-- | cpukit/include/t.h | 16 | ||||
-rw-r--r-- | cpukit/libtest/t-test-time.c | 15 | ||||
-rw-r--r-- | cpukit/libtest/t-test.c | 11 |
3 files changed, 26 insertions, 16 deletions
diff --git a/cpukit/include/t.h b/cpukit/include/t.h index ec806a1f68..12a03b2a1c 100644 --- a/cpukit/include/t.h +++ b/cpukit/include/t.h @@ -2146,29 +2146,23 @@ T_time T_seconds_and_nanoseconds_to_time(uint32_t, uint32_t); void T_time_to_seconds_and_nanoseconds(T_time, uint32_t *, uint32_t *); -#ifdef __rtems__ -int64_t _Timecounter_Sbinuptime(void); - -static inline T_time -T_now(void) -{ - return (T_time)_Timecounter_Sbinuptime(); -} +T_time T_now(void); +#ifdef __rtems__ static inline T_ticks T_tick(void) { return _CPU_Counter_read(); } #else -T_time T_now(void); - T_ticks T_tick(void); #endif +T_time T_now_clock(void); + T_time T_now_dummy(void); -T_time T_now_via_tick(void); +T_time T_now_tick(void); T_time T_case_begin_time(void); diff --git a/cpukit/libtest/t-test-time.c b/cpukit/libtest/t-test-time.c index 02d729f580..94a9ca393b 100644 --- a/cpukit/libtest/t-test-time.c +++ b/cpukit/libtest/t-test-time.c @@ -201,16 +201,20 @@ T_time_to_seconds_and_nanoseconds(T_time time, uint32_t *s, uint32_t *ns) #endif } -#ifndef __rtems__ T_time -T_now(void) +T_now_clock(void) { +#ifndef __rtems__ struct timespec tp; (void)clock_gettime(CLOCK_MONOTONIC, &tp); return (T_time)tp.tv_sec * (T_time)1000000000 + (T_time)tp.tv_nsec; +#else /* __rtems__ */ + return (T_time)_Timecounter_Sbinuptime(); +#endif /* __rtems__ */ } +#ifndef __rtems__ T_ticks T_tick(void) { @@ -218,16 +222,17 @@ T_tick(void) } #endif -static atomic_uint dummy_time; +static atomic_uint T_dummy_time; T_time T_now_dummy(void) { - return atomic_fetch_add_explicit(&dummy_time, 1, memory_order_relaxed); + return atomic_fetch_add_explicit(&T_dummy_time, 1, + memory_order_relaxed); } T_time -T_now_via_tick(void) +T_now_tick(void) { return T_ticks_to_time(T_tick()); } diff --git a/cpukit/libtest/t-test.c b/cpukit/libtest/t-test.c index 5e9be54ed2..aedf9a49b1 100644 --- a/cpukit/libtest/t-test.c +++ b/cpukit/libtest/t-test.c @@ -994,3 +994,14 @@ T_set_putchar(T_putchar new_putchar, void *new_arg, T_putchar *old_putchar, ctx->putchar = new_putchar; ctx->putchar_arg = new_arg; } + +T_time +T_now(void) +{ + T_context *ctx; + const T_config *config; + + ctx = &T_instance; + config = ctx->config; + return (*config->now)(); +} |