mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2025-12-20 12:03:52 +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");
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
EMB_UNIT_TESTFIXTURES(fixtures) {
|
||||
@ -965,6 +1057,8 @@ Test *tests_fmt_tests(void)
|
||||
new_TestFixture(test_scn_u32_hex),
|
||||
new_TestFixture(test_scn_buf_hex),
|
||||
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);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user