mirror of
https://gitee.com/zlgopen/awtk.git
synced 2024-12-01 11:39:01 +08:00
134 lines
3.1 KiB
C++
134 lines
3.1 KiB
C++
#include <string>
|
|
#include "base/utils.h"
|
|
#include "gtest/gtest.h"
|
|
|
|
using std::string;
|
|
|
|
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_strncpy) {
|
|
char dst[32];
|
|
const char* str = "hello world";
|
|
|
|
ASSERT_EQ(string(tk_strncpy(dst, str, 1)), string("h"));
|
|
ASSERT_EQ(string(tk_strncpy(dst, str, strlen(str))), string(str));
|
|
ASSERT_EQ(string(tk_strncpy(dst, str, strlen(str) + 1)), string(str));
|
|
}
|
|
|
|
TEST(Utils, filename_to_name) {
|
|
char name[NAME_LEN + 1];
|
|
|
|
filename_to_name("test.png", name, NAME_LEN);
|
|
ASSERT_EQ(string(name), string("test"));
|
|
|
|
filename_to_name("/a/test.png", name, NAME_LEN);
|
|
ASSERT_EQ(string(name), string("test"));
|
|
}
|
|
|
|
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);
|
|
}
|