awtk/tests/utils_test.cc
2018-06-17 12:03:18 +08:00

112 lines
2.5 KiB
C++

#include "base/utils.h"
#include "gtest/gtest.h"
TEST(Utils, basic) {
char str[32];
ASSERT_EQ(tk_atoi("100"), 100);
ASSERT_EQ(strcmp(tk_itoa(str, sizeof(str), tk_atoi("100")), "100"), 0);
}
static void check_buff16(uint16_t* buff, uint16_t val, uint32_t size) {
uint32_t i = 0;
for (i = 0; i < size; i++) {
ASSERT_EQ(buff[i], val);
}
}
TEST(Utils, tk_memset16) {
uint16_t buff[32];
uint16_t val = 0x1234;
memset(buff, 0x00, sizeof(buff));
tk_memset16(buff, val, 1);
check_buff16(buff, val, 1);
memset(buff, 0x00, sizeof(buff));
tk_memset16(buff, val, 7);
check_buff16(buff, val, 7);
memset(buff, 0x00, sizeof(buff));
tk_memset16(buff + 1, val, 10);
check_buff16(buff + 1, val, 10);
memset(buff, 0x00, sizeof(buff));
tk_memset16(buff + 1, val, 11);
check_buff16(buff + 1, val, 11);
memset(buff, 0x00, sizeof(buff));
tk_memset16(buff, val, 10);
check_buff16(buff, val, 10);
memset(buff, 0x00, sizeof(buff));
tk_memset16(buff, val, 11);
check_buff16(buff, val, 11);
}
static void check_buff32(uint32_t* buff, uint32_t val, uint32_t size) {
uint32_t i = 0;
for (i = 0; i < size; i++) {
ASSERT_EQ(buff[i], val);
}
}
TEST(Utils, tk_memset32) {
uint32_t buff[32];
uint32_t val = 0x1234;
memset(buff, 0x00, sizeof(buff));
tk_memset32(buff, val, 1);
check_buff32(buff, val, 1);
memset(buff, 0x00, sizeof(buff));
tk_memset32(buff, val, 7);
check_buff32(buff, val, 7);
memset(buff, 0x00, sizeof(buff));
tk_memset32(buff + 1, val, 10);
check_buff32(buff + 1, val, 10);
memset(buff, 0x00, sizeof(buff));
tk_memset32(buff + 1, val, 11);
check_buff32(buff + 1, val, 11);
memset(buff, 0x00, sizeof(buff));
tk_memset32(buff, val, 10);
check_buff32(buff, val, 10);
memset(buff, 0x00, sizeof(buff));
tk_memset32(buff, val, 11);
check_buff32(buff, val, 11);
}
TEST(Utils, tk_memcpy16) {
uint32_t i = 0;
uint16_t dst[100];
uint16_t src[100];
tk_memset16(src, 0x1234, ARRAY_SIZE(src));
for (i = 1; i < ARRAY_SIZE(src); i++) {
tk_memcpy16(dst, src, i);
ASSERT_EQ(memcmp(dst, src, i * 2), 0);
}
}
TEST(Utils, tk_memcpy32) {
uint32_t i = 0;
uint32_t dst[100];
uint32_t src[100];
tk_memset32(src, 0x12345678, ARRAY_SIZE(src));
for (i = 1; i < ARRAY_SIZE(src); i++) {
tk_memcpy32(dst, src, i);
ASSERT_EQ(memcmp(dst, src, i * 4), 0);
}
}
TEST(Utils, tk_skip_to_num) {
ASSERT_EQ(tk_atoi(tk_skip_to_num("123")), 123);
ASSERT_EQ(tk_atoi(tk_skip_to_num("abc123")), 123);
ASSERT_EQ(tk_atoi(tk_skip_to_num("abc:@#123")), 123);
}