mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2025-12-20 20:13:50 +01:00
tests/unittests/tests-fmt: test ISO 8601 format functions
This commit is contained in:
parent
0f81f50e3a
commit
29b8af8a85
@ -931,6 +931,98 @@ static void test_fmt_lpad(void)
|
|||||||
TEST_ASSERT_EQUAL_STRING((char*)string, "xxxx3333");
|
TEST_ASSERT_EQUAL_STRING((char*)string, "xxxx3333");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void test_fmt_time_iso8601(void)
|
||||||
|
{
|
||||||
|
char out[20] = { 0 };
|
||||||
|
const char *expected = "2025-04-08T17:40:02";
|
||||||
|
|
||||||
|
struct tm time = {
|
||||||
|
.tm_year = 2025 - 1900,
|
||||||
|
.tm_mon = 4 - 1,
|
||||||
|
.tm_mday = 8,
|
||||||
|
.tm_hour = 17,
|
||||||
|
.tm_min = 40,
|
||||||
|
.tm_sec = 2
|
||||||
|
};
|
||||||
|
|
||||||
|
TEST_ASSERT_EQUAL_INT(19, fmt_time_tm_iso8601(out, &time, 'T'));
|
||||||
|
TEST_ASSERT_EQUAL_STRING(expected, out);
|
||||||
|
expected = "2025-04-08 17:40:02";
|
||||||
|
TEST_ASSERT_EQUAL_INT(19, fmt_time_tm_iso8601(out, &time, ' '));
|
||||||
|
TEST_ASSERT_EQUAL_STRING(expected, out);
|
||||||
|
|
||||||
|
time.tm_year = -1901;
|
||||||
|
TEST_ASSERT_EQUAL_INT(-EINVAL, fmt_time_tm_iso8601(out, &time, 'T'));
|
||||||
|
time.tm_year = 9999 - 1899;
|
||||||
|
TEST_ASSERT_EQUAL_INT(-EINVAL, fmt_time_tm_iso8601(out, &time, 'T'));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void test_scn_time_iso8601(void)
|
||||||
|
{
|
||||||
|
struct tm time;
|
||||||
|
|
||||||
|
memset(&time, 0, sizeof(time));
|
||||||
|
TEST_ASSERT_EQUAL_INT(19, scn_time_tm_iso8601(&time, "2025-04-08T17:40:02", 'T'));
|
||||||
|
TEST_ASSERT_EQUAL_INT(2025 - 1900, time.tm_year);
|
||||||
|
TEST_ASSERT_EQUAL_INT(4 - 1, time.tm_mon);
|
||||||
|
TEST_ASSERT_EQUAL_INT(8, time.tm_mday);
|
||||||
|
TEST_ASSERT_EQUAL_INT(17, time.tm_hour);
|
||||||
|
TEST_ASSERT_EQUAL_INT(40, time.tm_min);
|
||||||
|
TEST_ASSERT_EQUAL_INT(2, time.tm_sec);
|
||||||
|
|
||||||
|
memset(&time, 0, sizeof(time));
|
||||||
|
TEST_ASSERT_EQUAL_INT(19, scn_time_tm_iso8601(&time, "2025-04-08 17:40:02", ' '));
|
||||||
|
TEST_ASSERT_EQUAL_INT(2025 - 1900, time.tm_year);
|
||||||
|
TEST_ASSERT_EQUAL_INT(4 - 1, time.tm_mon);
|
||||||
|
TEST_ASSERT_EQUAL_INT(8, time.tm_mday);
|
||||||
|
TEST_ASSERT_EQUAL_INT(17, time.tm_hour);
|
||||||
|
TEST_ASSERT_EQUAL_INT(40, time.tm_min);
|
||||||
|
TEST_ASSERT_EQUAL_INT(2, time.tm_sec);
|
||||||
|
|
||||||
|
memset(&time, 0, sizeof(time));
|
||||||
|
TEST_ASSERT_EQUAL_INT(10, scn_time_tm_iso8601(&time, "2025-04-08", 'T'));
|
||||||
|
TEST_ASSERT_EQUAL_INT(2025 - 1900, time.tm_year);
|
||||||
|
TEST_ASSERT_EQUAL_INT(4 - 1, time.tm_mon);
|
||||||
|
TEST_ASSERT_EQUAL_INT(8, time.tm_mday);
|
||||||
|
|
||||||
|
memset(&time, 0, sizeof(time));
|
||||||
|
TEST_ASSERT_EQUAL_INT(19, scn_time_tm_iso8601(&time, "2025-13-08T17:40:02", 'T'));
|
||||||
|
TEST_ASSERT_EQUAL_INT(2025 - 1900, time.tm_year);
|
||||||
|
TEST_ASSERT_EQUAL_INT(13 - 1, time.tm_mon);
|
||||||
|
TEST_ASSERT_EQUAL_INT(8, time.tm_mday);
|
||||||
|
TEST_ASSERT_EQUAL_INT(17, time.tm_hour);
|
||||||
|
TEST_ASSERT_EQUAL_INT(40, time.tm_min);
|
||||||
|
TEST_ASSERT_EQUAL_INT(2, time.tm_sec);
|
||||||
|
|
||||||
|
memset(&time, 0, sizeof(time));
|
||||||
|
TEST_ASSERT_EQUAL_INT(19, scn_time_tm_iso8601(&time, "2025-04-08T17:60:02", 'T'));
|
||||||
|
TEST_ASSERT_EQUAL_INT(2025 - 1900, time.tm_year);
|
||||||
|
TEST_ASSERT_EQUAL_INT(4 - 1, time.tm_mon);
|
||||||
|
TEST_ASSERT_EQUAL_INT(8, time.tm_mday);
|
||||||
|
TEST_ASSERT_EQUAL_INT(17, time.tm_hour);
|
||||||
|
TEST_ASSERT_EQUAL_INT(60, time.tm_min);
|
||||||
|
TEST_ASSERT_EQUAL_INT(2, time.tm_sec);
|
||||||
|
|
||||||
|
memset(&time, 0, sizeof(time));
|
||||||
|
TEST_ASSERT_EQUAL_INT(19, scn_time_tm_iso8601(&time, "1899-04-08T17:40:02", 'T'));
|
||||||
|
TEST_ASSERT_EQUAL_INT(1899 - 1900, time.tm_year);
|
||||||
|
TEST_ASSERT_EQUAL_INT(4 - 1, time.tm_mon);
|
||||||
|
TEST_ASSERT_EQUAL_INT(8, time.tm_mday);
|
||||||
|
TEST_ASSERT_EQUAL_INT(17, time.tm_hour);
|
||||||
|
TEST_ASSERT_EQUAL_INT(40, time.tm_min);
|
||||||
|
TEST_ASSERT_EQUAL_INT(2, time.tm_sec);
|
||||||
|
|
||||||
|
memset(&time, 0, sizeof(time));
|
||||||
|
TEST_ASSERT_EQUAL_INT(-EBADF, scn_time_tm_iso8601(&time, "2025-04-08T", ' '));
|
||||||
|
TEST_ASSERT_EQUAL_INT(-EBADF, scn_time_tm_iso8601(&time, "2025-04-08 17:40:02", 'T'));
|
||||||
|
TEST_ASSERT_EQUAL_INT(-EINVAL, scn_time_tm_iso8601(&time, "2025-XX-08T17:40:02", 'T'));
|
||||||
|
TEST_ASSERT_EQUAL_INT(-EINVAL, scn_time_tm_iso8601(&time, "2025-4-08T17:40:02", 'T'));
|
||||||
|
TEST_ASSERT_EQUAL_INT(-EINVAL, scn_time_tm_iso8601(&time, "2025-04-8T17:40:02", 'T'));
|
||||||
|
TEST_ASSERT_EQUAL_INT(-EINVAL, scn_time_tm_iso8601(&time, "2025-04-08T17:40:2", 'T'));
|
||||||
|
TEST_ASSERT_EQUAL_INT(-EINVAL, scn_time_tm_iso8601(&time, "-2025-04-08T17:40:02", 'T'));
|
||||||
|
TEST_ASSERT_EQUAL_INT(-EINVAL, scn_time_tm_iso8601(&time, "10000-04-08T17:40:02", 'T'));
|
||||||
|
}
|
||||||
|
|
||||||
Test *tests_fmt_tests(void)
|
Test *tests_fmt_tests(void)
|
||||||
{
|
{
|
||||||
EMB_UNIT_TESTFIXTURES(fixtures) {
|
EMB_UNIT_TESTFIXTURES(fixtures) {
|
||||||
@ -965,6 +1057,8 @@ Test *tests_fmt_tests(void)
|
|||||||
new_TestFixture(test_scn_u32_hex),
|
new_TestFixture(test_scn_u32_hex),
|
||||||
new_TestFixture(test_scn_buf_hex),
|
new_TestFixture(test_scn_buf_hex),
|
||||||
new_TestFixture(test_fmt_lpad),
|
new_TestFixture(test_fmt_lpad),
|
||||||
|
new_TestFixture(test_fmt_time_iso8601),
|
||||||
|
new_TestFixture(test_scn_time_iso8601),
|
||||||
};
|
};
|
||||||
|
|
||||||
EMB_UNIT_TESTCALLER(fmt_tests, NULL, NULL, fixtures);
|
EMB_UNIT_TESTCALLER(fmt_tests, NULL, NULL, fixtures);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user