fix unit tests

This commit is contained in:
lixianjing 2021-12-24 13:35:28 +08:00
parent d86646e61c
commit ec3550a098
5 changed files with 37 additions and 15 deletions

View File

@ -4,6 +4,7 @@
* 修复mingw编译说明文档感谢智明提供补丁
* 修复SDL释放的时候内存泄露的问题感谢智明提供补丁
* 增加状态机(感谢林福提供补丁)
* 修复单元测试兼容非utf8编码的编译器VS2015(感谢雨欣提供补丁)
2021/12/23
* 增加aworkslp平台支持(感谢林福提供补丁)

View File

@ -1,8 +1,12 @@
#include "charset/encoding.h"
#include "tkc/utf8.h"
#include "charset/encoding.h"
#include "gtest/gtest.h"
TEST(Encoding, basic) {
const char* str = "中文";
char str[16];
const wchar_t* wstr = L"中文";
tk_utf8_from_utf16(wstr, str, sizeof(str));
char gbk[32];
char utf8[32];
ASSERT_EQ(encoding_utf8_to_gbk(str, strlen(str), gbk, sizeof(gbk)), RET_OK);

View File

@ -1,4 +1,5 @@
#include "tkc/fscript.h"
#include "tkc/utf8.h"
#include "tkc/fscript.h"
#include "tkc/object_default.h"
#include "gtest/gtest.h"
@ -1326,9 +1327,13 @@ TEST(FExr, get_last_error) {
TEST(FExr, chinese_var) {
value_t v;
char code[128];
const wchar_t* wcode = L"set(变量,100);(变量+100)*2";
tk_object_t* obj = object_default_create();
fscript_eval(obj, "set(变量,100);(变量+100)*2", &v);
tk_utf8_from_utf16(wcode, code, sizeof(code));
fscript_eval(obj, code, &v);
ASSERT_EQ(value_int(&v), 400);
value_reset(&v);
@ -1337,9 +1342,13 @@ TEST(FExr, chinese_var) {
TEST(FScript, chinese_func) {
value_t v;
char code[128];
tk_object_t* obj = object_default_create();
const wchar_t* wcode = L"function 求和(数1,数2) {return 数1+数2;}; 求和(100, 23)";
tk_utf8_from_utf16(wcode, code, sizeof(code));
fscript_eval(obj, code, &v);
fscript_eval(obj, "function 求和(数1,数2) {return 数1+数2;}; 求和(100, 23)", &v);
ASSERT_EQ(value_int(&v), 123);
value_reset(&v);

View File

@ -34,7 +34,8 @@ static void dump_unicode(const wchar_t* str) {
}
TEST(Utf8, chinese) {
const char* str = "中文";
/* 兼容非utf8编码的编译器采用utf8编码初始化str编码内容"中文" */
char str[7] = {(char)0xe4, (char)0xb8, (char)0xad, (char)0xe6, (char)0x96, (char)0x87, 0};
const wchar_t* wstr = L"中文";
char res_str[128];
wchar_t res_wstr[128];
@ -49,7 +50,8 @@ TEST(Utf8, chinese) {
}
TEST(Utf8, dup) {
const char* str = "中文";
/* 兼容非utf8编码的编译器采用utf8编码初始化str编码内容"中文" */
char str[7] = {(char)0xe4, (char)0xb8, (char)0xad, (char)0xe6, (char)0x96, (char)0x87, 0};
const wchar_t* wstr = L"中文";
char* text = tk_utf8_dup_utf16(wstr, -1);
@ -59,7 +61,9 @@ TEST(Utf8, dup) {
TEST(Utf8, trim_invalid) {
char text[32] = {0};
const char* str = "中文";
/* 兼容非utf8编码的编译器采用utf8编码初始化str编码内容"中"、"中文" */
char s[4] = {(char)0xe4, (char)0xb8, (char)0xad, 0};
char str[7] = {(char)0xe4, (char)0xb8, (char)0xad, (char)0xe6, (char)0x96, (char)0x87, 0};
memset(text, 0x00, sizeof(text));
@ -70,19 +74,19 @@ TEST(Utf8, trim_invalid) {
ASSERT_STREQ(tk_utf8_trim_invalid_char(text), "");
strncpy(text, str, 3);
ASSERT_STREQ(tk_utf8_trim_invalid_char(text), "");
ASSERT_STREQ(tk_utf8_trim_invalid_char(text), s);
strncpy(text, str, 4);
ASSERT_STREQ(tk_utf8_trim_invalid_char(text), "");
ASSERT_STREQ(tk_utf8_trim_invalid_char(text), s);
strncpy(text, str, 5);
ASSERT_STREQ(tk_utf8_trim_invalid_char(text), "");
ASSERT_STREQ(tk_utf8_trim_invalid_char(text), s);
strncpy(text, str, 6);
ASSERT_STREQ(tk_utf8_trim_invalid_char(text), "中文");
ASSERT_STREQ(tk_utf8_trim_invalid_char(text), str);
strncpy(text, str, 7);
ASSERT_STREQ(tk_utf8_trim_invalid_char(text), "中文");
ASSERT_STREQ(tk_utf8_trim_invalid_char(text), str);
strncpy(text, "abc", 4);
ASSERT_STREQ(tk_utf8_trim_invalid_char(text), "abc");

View File

@ -29,8 +29,10 @@ TEST(WStr, demo) {
}
TEST(WStr, basic) {
/* 兼容非utf8编码的编译器采用utf8编码初始化str编码内容"中文" */
char str[7] = {(char)0xe4, (char)0xb8, (char)0xad, (char)0xe6, (char)0x96, (char)0x87, 0};
testSetWStr("Hello", L"Hello");
testSetWStr("中文", L"中文");
testSetWStr(str, L"中文");
}
static void testSetUtf8(const char* utf8, const wchar_t* cstr) {
@ -50,8 +52,10 @@ static void testSetUtf8(const char* utf8, const wchar_t* cstr) {
}
TEST(WStr, utf8) {
/* 兼容非utf8编码的编译器采用utf8编码初始化str编码内容"中文" */
char str[7] = {(char)0xe4, (char)0xb8, (char)0xad, (char)0xe6, (char)0x96, (char)0x87, 0};
testSetUtf8("Hello", L"Hello");
testSetUtf8("中文", L"中文");
testSetUtf8(str, L"中文");
}
static void testRemove(const wchar_t* cstr, uint16_t offset, uint16_t nr, ret_t ret,