/* * Copyright (c) 2021 Golioth, Inc. * * SPDX-License-Identifier: Apache-2.0 */ #include #include 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);