blob: e815ba11dbbb6a310d0df7ef573275c91da1bb4c [file] [log] [blame]
/*
* Copyright (c) 2021 Golioth, Inc.
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <zephyr/ztest.h>
#include <time.h>
ZTEST(libc_time, test_time_passing)
{
time_t time_initial_unaligned;
time_t time_initial;
time_t time_current;
int i;
time_initial_unaligned = time(NULL);
zassert_true(time_initial_unaligned >= 0, "Fail to get time");
/* Wait until time() will return new value, which should be aligned */
for (i = 0; i < 100; i++) {
k_sleep(K_MSEC(10));
if (time(NULL) != time_initial_unaligned) {
break;
}
}
time_initial = time(NULL);
zassert_equal(time_initial, time_initial_unaligned + 1,
"Time (%d) should be one second larger than initially (%d)",
time_initial, time_initial_unaligned);
for (i = 1; i <= 10; i++) {
k_sleep(K_SECONDS(1));
time_current = time(NULL);
zassert_equal(time_current, time_initial + i,
"Current time (%d) does not match expected time (%d)",
(int) time_current, (int) (time_initial + i));
}
}
ZTEST(libc_time, test_time_param)
{
time_t time_result;
time_t time_param;
int i;
time_result = time(&time_param);
zassert_equal(time_result, time_param,
"time() result does not match param value");
for (i = 0; i < 10; i++) {
k_sleep(K_SECONDS(1));
zassert_equal(time_result, time_param,
"time() result does not match param value");
}
}
ZTEST_SUITE(libc_time, NULL, NULL, NULL, NULL, NULL);