diff options
| author | “pengxuanzheng” <[email protected]> | 2022-06-01 10:23:29 +0000 |
|---|---|---|
| committer | “pengxuanzheng” <[email protected]> | 2022-06-01 10:59:33 +0000 |
| commit | d229dcfa923d4ff7013c825fc4d2f2c4dbdb850a (patch) | |
| tree | c7acba75bdce477a271f5e7f68e2a0c5e9877580 | |
| parent | 60d7653f8a813f91c40a342d2ca4260002638986 (diff) | |
✨ feat: 根据cppcheck 修改example, 增加lua 测试用例
| -rw-r--r-- | CMakeLists.txt | 1 | ||||
| -rw-r--r-- | example/CMakeLists.txt | 7 | ||||
| -rw-r--r-- | example/luatest/CMakeLists.txt | 5 | ||||
| -rw-r--r-- | example/luatest/luatest.cpp | 49 | ||||
| -rw-r--r-- | example/multithread.cpp | 17 | ||||
| -rw-r--r-- | example/single_thread.cpp | 32 | ||||
| -rw-r--r-- | gtest/CMakeLists.txt | 6 | ||||
| -rw-r--r-- | gtest/gtest_tsg_lua_cache_exec.cpp | 20 | ||||
| -rw-r--r-- | gtest/gtest_tsg_lua_cache_script.cpp | 12 | ||||
| -rw-r--r-- | gtest/gtest_tsg_lua_cache_script_bytecode_file.cpp | 4 | ||||
| -rw-r--r-- | gtest/gtest_tsg_lua_cache_script_file.cpp | 12 | ||||
| -rw-r--r-- | gtest/gtest_tsg_lua_exec.cpp | 19 | ||||
| -rw-r--r-- | gtest/gtest_tsg_lua_exec_bytecode.cpp | 19 | ||||
| -rw-r--r-- | gtest/gtest_tsg_lua_exec_bytecode_file.cpp | 19 | ||||
| -rw-r--r-- | gtest/gtest_tsg_lua_exec_file.cpp | 19 | ||||
| -rw-r--r-- | gtest/script/return_string_normal_sharp.lua | 4 | ||||
| -rw-r--r-- | gtest/script/return_string_normal_sharp.luajit | bin | 0 -> 66 bytes |
17 files changed, 184 insertions, 61 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 75dba50..513ee1c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -32,6 +32,7 @@ endif() add_subdirectory(support) add_subdirectory(src) +add_subdirectory(example) enable_testing() add_subdirectory(gtest) diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt index d31b4d4..e672a03 100644 --- a/example/CMakeLists.txt +++ b/example/CMakeLists.txt @@ -2,13 +2,14 @@ cmake_minimum_required(VERSION 3.5) project (single_thread) project (multithread) -link_directories("/opt/MESA/lib") +link_directories("${CMAKE_BINARY_DIR}/src") link_libraries(tsglua pthread) add_definitions(-g -W -Wall) add_executable(single_thread single_thread.cpp) add_executable(multithread multithread.cpp) -target_link_libraries(single_thread tsglua) -target_link_libraries(multithread tsglua) +add_dependencies(single_thread ${lib_name}_shared) +add_dependencies(multithread ${lib_name}_shared) +add_subdirectory(luatest)
\ No newline at end of file diff --git a/example/luatest/CMakeLists.txt b/example/luatest/CMakeLists.txt index 4b8186b..9d1ba33 100644 --- a/example/luatest/CMakeLists.txt +++ b/example/luatest/CMakeLists.txt @@ -1,11 +1,12 @@ cmake_minimum_required(VERSION 3.5) project (luatest) -include_directories("/opt/MESA/include") -link_directories("/opt/MESA/lib") +include_directories("../../include/") +link_directories("${CMAKE_BINARY_DIR}/src") link_libraries(tsglua pthread dl) add_definitions(-g -W -Wall -O0 -rdynamic) add_executable(luatest luatest.cpp) +add_dependencies(luatest ${lib_name}_shared) target_link_libraries(luatest pcap tsglua pthread dl) diff --git a/example/luatest/luatest.cpp b/example/luatest/luatest.cpp index af63394..686245b 100644 --- a/example/luatest/luatest.cpp +++ b/example/luatest/luatest.cpp @@ -189,7 +189,7 @@ static int init_conf(char *path, conf_t *conf) { break; } - if ((sscanf(buf, "thread_num %d", &conf->thread_num) == EOF) || (conf->thread_num == 0)) + if ((sscanf(buf, "thread_num %u", &conf->thread_num) == EOF) || (conf->thread_num == 0)) { printf("error: conf_file: thread_num error\n"); return -1; @@ -199,7 +199,7 @@ static int init_conf(char *path, conf_t *conf) case 'f': if (!(conf->complete & FILE_TYPE_COMPLETE)) { - ret = sscanf(buf, "file_type %hhd", &conf->file_type); + ret = sscanf(buf, "file_type %hhu", &conf->file_type); if ((ret !=0) && (ret != EOF)) { conf->complete |= FILE_TYPE_COMPLETE; @@ -209,7 +209,7 @@ static int init_conf(char *path, conf_t *conf) if (!(conf->complete & FEATURE_COMPLETE)) { - ret = sscanf(buf, "feature %s", conf->feature); + ret = sscanf(buf, "feature %1023s", conf->feature); if ((ret !=0 ) && (ret != EOF) && (strlen(conf->feature) != 0)) { conf->complete |= FEATURE_COMPLETE; @@ -222,7 +222,7 @@ static int init_conf(char *path, conf_t *conf) { break; } - if ((sscanf(buf, "input %s", conf->input) == EOF) || strlen(conf->input) == 0) + if ((sscanf(buf, "input %127s", conf->input) == EOF) || strlen(conf->input) == 0) { printf("error: conf_file: input error\n"); return -1; @@ -234,7 +234,7 @@ static int init_conf(char *path, conf_t *conf) { break; } - if ((sscanf(buf, "script %s", conf->script) == EOF) || (strlen(conf->script) == 0)) + if ((sscanf(buf, "script %127s", conf->script) == EOF) || (strlen(conf->script) == 0)) { printf("error: conf_file: script error\n"); return -1; @@ -246,7 +246,7 @@ static int init_conf(char *path, conf_t *conf) { break; } - if ((sscanf(buf, "lib %s", conf->lib) == EOF) || (strlen(conf->lib) == 0)) + if ((sscanf(buf, "lib %127s", conf->lib) == EOF) || (strlen(conf->lib) == 0)) { printf("error: conf_file: lib error\n"); return -1; @@ -339,7 +339,7 @@ void c_pcap_handle(u_char *userarg, const struct pcap_pkthdr *pkthdr, const u_ch debuginfo_len = strlen(pcap_info->debuginfo); if (debuginfo_len < 9500) { - sprintf((char *)&pcap_info->debuginfo[debuginfo_len], "%-10s%-10ld%-11d%-11d%-20s%-20s%-20ld%-20ld\n", + sprintf((char *)&pcap_info->debuginfo[debuginfo_len], "%-10s%-10zu%-11u%-11d%-20s%-20s%-20lu%-20lu\n", "C", pcap_info->thread_id, pcap_info->packet_num, pkthdr->caplen, pcap_info->feature, result, time, pcap_info->total_time); } return; @@ -398,17 +398,13 @@ static void c_text_handle(c_text_info_t *text_info, char *debuginfo) file_name++; } - sprintf(&debuginfo[strlen(debuginfo)], "%-10s%-10ld%-20s%-20s%-20s%-20ld%-20ld\n", + sprintf(&debuginfo[strlen(debuginfo)], "%-10s%-10zu%-20s%-20s%-20s%-20lu%-20lu\n", "C", text_info->thread_id, file_name, text_info->feature, result, time, text_info->total_time); return; } static void c_pcap_prefix_handle(c_thread_info_t *thread_info, char *debuginfo, c_handle_function c_handle ) { - char ebuf[PCAP_ERRBUF_SIZE]; - c_pcap_info_t pcap_info; - pcap_t *pcap_handle; - if ((thread_info == NULL) || (debuginfo == NULL) || (c_handle == NULL)) { return ; @@ -416,13 +412,15 @@ static void c_pcap_prefix_handle(c_thread_info_t *thread_info, char *debuginfo, /* pcap 文件处理 */ if (thread_info->file_type & pcap_type) { - pcap_handle = pcap_open_offline(thread_info->input, ebuf); + char ebuf[PCAP_ERRBUF_SIZE]; + pcap_t *pcap_handle = pcap_open_offline(thread_info->input, ebuf); if (pcap_handle == NULL) { printf("input is error\n"); return ; } + c_pcap_info_t pcap_info; pcap_info.feature = thread_info->feature; pcap_info.c_handle = c_handle; pcap_info.debuginfo = debuginfo; @@ -443,7 +441,6 @@ static void *c_file_handle(void *ptr) char *debuginfo; void *lib_handle = NULL; c_handle_function c_handle; - uint32_t i; struct stat s_buf; char file_name[100][256]; c_text_info_t text_info; @@ -486,7 +483,7 @@ static void *c_file_handle(void *ptr) if (thread_info->file_type & pcap_type) { - for ( i = 0; i < 100; i++) + for (uint32_t i = 0; i < 100; i++) { if(file_name[i][0] == '\0') break; @@ -495,7 +492,7 @@ static void *c_file_handle(void *ptr) } }else { - for ( i = 0; i < 100; i++) + for (uint32_t i = 0; i < 100; i++) { if(file_name[i][0] == '\0') break; @@ -585,7 +582,7 @@ void lua_pcap_handle(u_char *userarg, const struct pcap_pkthdr *pkthdr, const u_ sprintf(result, "%s", out[0] ? "true":"false"); break; case INTEGER: - sprintf(result, "%ld", *(uint64_t *)out); + sprintf(result, "%lu", *(uint64_t *)out); break; default: break; @@ -593,16 +590,13 @@ void lua_pcap_handle(u_char *userarg, const struct pcap_pkthdr *pkthdr, const u_ debuginfo_len = strlen(pcap_info->debuginfo); if (debuginfo_len < 9500) { - sprintf(&pcap_info->debuginfo[debuginfo_len], "%-10s%-10ld%-11d%-11d%-20s%-20s%-20ld%-20ld\n", + sprintf(&pcap_info->debuginfo[debuginfo_len], "%-10s%-10zu%-11u%-11d%-20s%-20s%-20lu%-20lu\n", "LUA", pcap_info->thread_id, pcap_info->packet_num, pkthdr->caplen, pcap_info->feature, result, time, pcap_info->total_time); } return ; } static void lua_pcap_prefix_handle(lua_thread_info_t *thread_info, char *debuginfo, tsg_lua_handle L, size_t script_id) { - char ebuf[PCAP_ERRBUF_SIZE]; - lua_pcap_info_t pcap_info; - pcap_t *pcap_handle; if ((thread_info == NULL) || (debuginfo == NULL) || (script_id < 1)) { @@ -611,13 +605,15 @@ static void lua_pcap_prefix_handle(lua_thread_info_t *thread_info, char *debugin /* pcap 文件处理 */ if (thread_info->file_type & pcap_type) { - pcap_handle = pcap_open_offline(thread_info->input, ebuf); + char ebuf[PCAP_ERRBUF_SIZE]; + pcap_t *pcap_handle = pcap_open_offline(thread_info->input, ebuf); if (pcap_handle == NULL) { printf("input is error\n"); return ; } + lua_pcap_info_t pcap_info; pcap_info.L = L; pcap_info.feature = thread_info->feature; pcap_info.script_id = script_id; @@ -694,7 +690,7 @@ static void lua_text_handle(lua_text_info_t *text_info, char *debuginfo, tsg_lua sprintf(result, "%s", out[0] ? "true":"false"); break; case INTEGER: - sprintf(result, "%ld", *(uint64_t *)out); + sprintf(result, "%lu", *(uint64_t *)out); break; default: break; @@ -708,7 +704,7 @@ static void lua_text_handle(lua_text_info_t *text_info, char *debuginfo, tsg_lua file_name++; } - sprintf(&debuginfo[strlen(debuginfo)], "%-10s%-10ld%-20s%-20s%-20s%-20ld%-20ld\n", + sprintf(&debuginfo[strlen(debuginfo)], "%-10s%-10zu%-20s%-20s%-20s%-20lu%-20lu\n", "lua", text_info->thread_id, file_name, text_info->feature, result, time, text_info->total_time); return ; @@ -722,7 +718,6 @@ static void *lua_file_handle(void *ptr) tsg_lua_handle lua; char *debuginfo = NULL; lua_thread_info_t * thread_info = (lua_thread_info_t *)ptr; - uint32_t i; char result[512]; lua_text_info_t text_info; struct stat s_buf; @@ -768,7 +763,7 @@ static void *lua_file_handle(void *ptr) if (thread_info->file_type & pcap_type) { - for ( i = 0; i < 100; i++) + for (uint32_t i = 0; i < 100; i++) { if(file_name[i][0] == '\0') break; @@ -777,7 +772,7 @@ static void *lua_file_handle(void *ptr) } }else { - for ( i = 0; i < 100; i++) + for (uint32_t i = 0; i < 100; i++) { if(file_name[i][0] == '\0') break; diff --git a/example/multithread.cpp b/example/multithread.cpp index dcda1d5..53777da 100644 --- a/example/multithread.cpp +++ b/example/multithread.cpp @@ -21,7 +21,7 @@ extern "C" typedef struct lua_script_info_s{ const char *script_data; - int script_len; + //int script_len; int script_id; }lua_script_info_t; @@ -79,9 +79,9 @@ void *lua_function(void *ptr) lua_script_info_t script_info[MAX_SCRIPT_NUM] = { - {SCRIPT_PROTOCOL_RECOGNITION, (int)strlen(SCRIPT_PROTOCOL_RECOGNITION), SCRIPT_NO_CACHE}, - {SCRIPT_COUNT_1, (int)strlen(SCRIPT_COUNT_1), SCRIPT_NO_CACHE}, - {SCRIPT_MATCH_12345, (int)strlen(SCRIPT_MATCH_12345), SCRIPT_NO_CACHE}, + {SCRIPT_PROTOCOL_RECOGNITION, SCRIPT_NO_CACHE}, + {SCRIPT_COUNT_1, SCRIPT_NO_CACHE}, + {SCRIPT_MATCH_12345, SCRIPT_NO_CACHE}, }; printf("[C][thread_id:%d]:tsg_lua_vm_create start...\n", thread_id); @@ -178,12 +178,12 @@ int main(int argc, char *argv[]) { int thread_num; pthread_t thread[MAX_THREAD_NUM] = {0}; - tsg_lua_handle lua[MAX_THREAD_NUM] = {0}; + //tsg_lua_handle lua[MAX_THREAD_NUM] = {0}; int thread_sum; int ch, i; char buf[1024]; int buf_len; - userdata_t userdata[MAX_THREAD_NUM] = {0}; + userdata_t userdata[MAX_THREAD_NUM]; lua_data_t *data = NULL; char *retval; @@ -192,6 +192,7 @@ int main(int argc, char *argv[]) #endif /* default */ + bzero(userdata, sizeof(userdata_t) * MAX_THREAD_NUM); thread_sum = 3; strcpy(buf, "this is tcp"); buf_len = strlen("this is tcp"); @@ -253,8 +254,8 @@ int main(int argc, char *argv[]) data->data_len = buf_len; data->data[buf_len] = thread_num; data->data_len++; - lua[i] = tsg_lua_vm_create(); - data->lua = lua[i]; + //lua[thread_num] = tsg_lua_vm_create(); + //data->lua = lua[i]; pthread_create(&thread[thread_num], NULL, lua_function, (void *)&userdata[thread_num]); } diff --git a/example/single_thread.cpp b/example/single_thread.cpp index 0aa1b11..93af151 100644 --- a/example/single_thread.cpp +++ b/example/single_thread.cpp @@ -64,8 +64,8 @@ int main() return -1; } printf("[C]:call tsg_lua_exec_file success.\n"); - printf("[C]:out_len:%ld\n", out_len); - printf("[C]:out_type:%ld\n", out_type); + printf("[C]:out_len:%zu\n", out_len); + printf("[C]:out_type:%zu\n", out_type); switch(out_type) { case STRING: @@ -88,8 +88,8 @@ int main() return -1; } printf("[C]:call tsg_lua_exec_file success.\n"); - printf("[C]:out_len:%ld\n", out_len); - printf("[C]:out_type:%ld\n", out_type); + printf("[C]:out_len:%zu\n", out_len); + printf("[C]:out_type:%zu\n", out_type); switch(out_type) { case STRING: @@ -124,8 +124,8 @@ int main() return -1; } printf("[C]: call tsg_lua_cache_exec success\n"); - printf("[C]:out_len:%ld\n", out_len); - printf("[C]:out_type:%ld\n", out_type); + printf("[C]:out_len:%zu\n", out_len); + printf("[C]:out_type:%zu\n", out_type); switch(out_type) { case STRING: @@ -159,8 +159,8 @@ int main() return -1; } printf("[C]: call tsg_lua_cache_exec success\n"); - printf("[C]:out_len:%ld\n", out_len); - printf("[C]:out_type:%ld\n", out_type); + printf("[C]:out_len:%zu\n", out_len); + printf("[C]:out_type:%zu\n", out_type); switch(out_type) { case STRING: @@ -186,8 +186,8 @@ int main() return -1; } printf("[C]: call tsg_lua_exec success ...\n"); - printf("[C]:out_len:%ld\n", out_len); - printf("[C]:out_type:%ld\n", out_type); + printf("[C]:out_len:%zu\n", out_len); + printf("[C]:out_type:%zu\n", out_type); switch(out_type) { case STRING: @@ -211,8 +211,8 @@ int main() return -1; } printf("[C]: call tsg_lua_exec success ...\n"); - printf("[C]:out_len:%ld\n", out_len); - printf("[C]:out_type:%ld\n", out_type); + printf("[C]:out_len:%zu\n", out_len); + printf("[C]:out_type:%zu\n", out_type); switch(out_type) { case STRING: @@ -245,8 +245,8 @@ int main() return -1; } printf("[C]: call tsg_lua_cache_exec success\n"); - printf("[C]:out_len:%ld\n", out_len); - printf("[C]:out_type:%ld\n", out_type); + printf("[C]:out_len:%zu\n", out_len); + printf("[C]:out_type:%zu\n", out_type); switch(out_type) { case STRING: @@ -279,8 +279,8 @@ int main() return -1; } printf("[C]: call tsg_lua_cache_exec success\n"); - printf("[C]:out_len:%ld\n", out_len); - printf("[C]:out_type:%ld\n", out_type); + printf("[C]:out_len:%zu\n", out_len); + printf("[C]:out_type:%zu\n", out_type); switch(out_type) { case STRING: diff --git a/gtest/CMakeLists.txt b/gtest/CMakeLists.txt index b1b37bb..69b9d3f 100644 --- a/gtest/CMakeLists.txt +++ b/gtest/CMakeLists.txt @@ -2,18 +2,18 @@ cmake_minimum_required(VERSION 2.6) project(gtest_tsg_lua) aux_source_directory(. SRCS) -include_directories("/opt/MESA/include") include_directories("../src") link_directories("/opt/MESA/lib") link_directories("${CMAKE_BINARY_DIR}/support/GoogleTest/include/") link_directories("${CMAKE_BINARY_DIR}/src/") link_directories("${CMAKE_BINARY_DIR}/support/GoogleTest/lib/") -#link_libraries(tsglua gtest gtest_main pthread) +link_libraries(tsglua gtest gtest_main pthread) add_definitions(-g -W -Wall) add_executable(gtest_tsg_lua ${SRCS}) +#add_executable(gtest_tsg_lua_cache_script ./gtest_tsg_lua_cache_script.cpp) add_dependencies(gtest_tsg_lua ${lib_name}_shared gtest) -target_link_libraries(gtest_tsg_lua tsglua gtest gtest_main pthread) +#target_link_libraries(gtest_tsg_lua tsglua gtest gtest_main pthread) add_test(NAME SOFT_LINK COMMAND sh -c "ln -sf ${CMAKE_CURRENT_SOURCE_DIR}/script" "${CMAKE_CURRENT_BINARY_DIR}/script") add_test(NAME LUA_TEST COMMAND gtest_tsg_lua) diff --git a/gtest/gtest_tsg_lua_cache_exec.cpp b/gtest/gtest_tsg_lua_cache_exec.cpp index dc3a07b..7fc2e1e 100644 --- a/gtest/gtest_tsg_lua_cache_exec.cpp +++ b/gtest/gtest_tsg_lua_cache_exec.cpp @@ -306,3 +306,23 @@ TEST(tsg_lua_cache_exec, string_expected_but_table) EXPECT_EQ(0, out_type); EXPECT_STREQ("", out); } + +TEST(tsg_lua_cache_exec, normal_return_string_sharp) +{ + tsg_lua_handle L = NULL; + char out[255]; + size_t out_len = 0; + size_t out_type = 0; + + L = tsg_lua_vm_create(); + const char *script = "./script/return_string_normal_sharp.lua"; + memset(out, 0, 255); + int script_id = tsg_lua_cache_script_file(L, script); + int ret = tsg_lua_cache_exec(L, script_id, data, strlen(data), out, &out_len, &out_type); + + /* check */ + EXPECT_EQ(0, ret); + EXPECT_EQ(11, out_len); + EXPECT_EQ(STRING, out_type); + EXPECT_STREQ("hello world", out); +}
\ No newline at end of file diff --git a/gtest/gtest_tsg_lua_cache_script.cpp b/gtest/gtest_tsg_lua_cache_script.cpp index 1623a31..ae3590e 100644 --- a/gtest/gtest_tsg_lua_cache_script.cpp +++ b/gtest/gtest_tsg_lua_cache_script.cpp @@ -167,3 +167,15 @@ TEST(tsg_lua_cache_script, right_curly_bracket_expected) /* check */ EXPECT_EQ(ERR_SCRIPT_RIGHT_CURLY_BRACKET_EXPECTED, ret); } + +TEST(tsg_lua_cache_script, return_string_normal_sharp) +{ + tsg_lua_handle L = NULL; + + L = tsg_lua_vm_create(); + const char *script = get_script_buffer("./script/return_string_normal_sharp.lua"); + int script_id = tsg_lua_cache_script(L, script, script_len); + + /* check */ + EXPECT_EQ(1, script_id); +}
\ No newline at end of file diff --git a/gtest/gtest_tsg_lua_cache_script_bytecode_file.cpp b/gtest/gtest_tsg_lua_cache_script_bytecode_file.cpp index 9079e61..0abf7a3 100644 --- a/gtest/gtest_tsg_lua_cache_script_bytecode_file.cpp +++ b/gtest/gtest_tsg_lua_cache_script_bytecode_file.cpp @@ -12,7 +12,7 @@ TEST(tsg_lua_cache_script_bytecode_file, normal) tsg_lua_handle L = NULL; L = tsg_lua_vm_create(); - const char *script = "./script/return_string_normal.lua"; + const char *script = "./script/return_string_normal.luajit"; int script_id = tsg_lua_cache_script_file(L, script); /* check */ @@ -23,7 +23,7 @@ TEST(tsg_lua_cache_script_bytecode_file, lua_vm_isnull) { tsg_lua_handle L = NULL; - const char *script = "./script/return_string_normal.lua"; + const char *script = "./script/return_string_normal.luajit"; int script_id = tsg_lua_cache_script_file(L, script); /* check */ diff --git a/gtest/gtest_tsg_lua_cache_script_file.cpp b/gtest/gtest_tsg_lua_cache_script_file.cpp index 0529f45..4b57b98 100644 --- a/gtest/gtest_tsg_lua_cache_script_file.cpp +++ b/gtest/gtest_tsg_lua_cache_script_file.cpp @@ -161,3 +161,15 @@ TEST(tsg_lua_cache_script_file, right_curly_bracket_expected) /* check */ EXPECT_EQ(ERR_SCRIPT_RIGHT_CURLY_BRACKET_EXPECTED, ret); } + +TEST(tsg_lua_cache_script_file, sharp) +{ + tsg_lua_handle L = NULL; + + L = tsg_lua_vm_create(); + const char *script = "./script/return_string_normal_sharp.lua"; + int script_id = tsg_lua_cache_script_file(L, script); + + /* check */ + EXPECT_EQ(1, script_id); +}
\ No newline at end of file diff --git a/gtest/gtest_tsg_lua_exec.cpp b/gtest/gtest_tsg_lua_exec.cpp index 8f52ce8..1be5bcc 100644 --- a/gtest/gtest_tsg_lua_exec.cpp +++ b/gtest/gtest_tsg_lua_exec.cpp @@ -499,3 +499,22 @@ TEST(tsg_lua_exec, function_invaild) EXPECT_STREQ("", out); } #endif + +TEST(tsg_lua_exec, sharp) +{ + tsg_lua_handle L = NULL; + char out[255]; + size_t out_len = 0; + size_t out_type = 0; + + L = tsg_lua_vm_create(); + memset(out, 0, 255); + const char *script = get_script_buffer("./script/return_string_normal_sharp.lua"); + int ret = tsg_lua_exec(L, script, strlen(script), data, strlen(data), out, &out_len, &out_type); + + /* check */ + EXPECT_EQ(0, ret); + EXPECT_EQ(11, out_len); + EXPECT_EQ(STRING, out_type); + EXPECT_STREQ("hello world", out); +} diff --git a/gtest/gtest_tsg_lua_exec_bytecode.cpp b/gtest/gtest_tsg_lua_exec_bytecode.cpp index 3fa8ac0..0d12b96 100644 --- a/gtest/gtest_tsg_lua_exec_bytecode.cpp +++ b/gtest/gtest_tsg_lua_exec_bytecode.cpp @@ -310,3 +310,22 @@ TEST(tsg_lua_exec_bytecode, return_length_iszero) EXPECT_EQ(0, out_type); EXPECT_STREQ("", out); } + +TEST(tsg_lua_exec_bytecode, normal_return_string_sharp) +{ + tsg_lua_handle L = NULL; + char out[255]; + size_t out_len = 0; + size_t out_type = 0; + + L = tsg_lua_vm_create(); + memset(out, 0, 255); + const char *script = get_script_buffer("./script/return_string_normal_sharp.luajit"); + int ret = tsg_lua_exec(L, script, script_len, data, strlen(data), out, &out_len, &out_type); + + /* check */ + EXPECT_EQ(0, ret); + EXPECT_EQ(11, out_len); + EXPECT_EQ(STRING, out_type); + EXPECT_STREQ("hello world", out); +}
\ No newline at end of file diff --git a/gtest/gtest_tsg_lua_exec_bytecode_file.cpp b/gtest/gtest_tsg_lua_exec_bytecode_file.cpp index 72d2065..18ae428 100644 --- a/gtest/gtest_tsg_lua_exec_bytecode_file.cpp +++ b/gtest/gtest_tsg_lua_exec_bytecode_file.cpp @@ -290,3 +290,22 @@ TEST(tsg_lua_exec_bytecode_file, return_length_iszero) EXPECT_EQ(0, out_type); EXPECT_STREQ("", out); } + +TEST(tsg_lua_exec_bytecode_file, normal_return_string_sharp) +{ + tsg_lua_handle L = NULL; + char out[255]; + size_t out_len = 0; + size_t out_type = 0; + + L = tsg_lua_vm_create(); + const char *script = "./script/return_string_normal_sharp.luajit"; + memset(out, 0, 255); + int ret = tsg_lua_exec_file(L, script, data, strlen(data), out, &out_len, &out_type); + + /* check */ + EXPECT_EQ(0, ret); + EXPECT_EQ(11, out_len); + EXPECT_EQ(STRING, out_type); + EXPECT_STREQ("hello world", out); +} diff --git a/gtest/gtest_tsg_lua_exec_file.cpp b/gtest/gtest_tsg_lua_exec_file.cpp index 4b36443..81fbe5c 100644 --- a/gtest/gtest_tsg_lua_exec_file.cpp +++ b/gtest/gtest_tsg_lua_exec_file.cpp @@ -482,3 +482,22 @@ TEST(tsg_lua_exec_file, function_invaild) EXPECT_STREQ("", out); } #endif + +TEST(tsg_lua_exec_file, normal_return_string_sharp) +{ + tsg_lua_handle L = NULL; + char out[255]; + size_t out_len = 0; + size_t out_type = 0; + + L = tsg_lua_vm_create(); + const char *script = "./script/return_string_normal_sharp.lua"; + memset(out, 0, 255); + int ret = tsg_lua_exec_file(L, script, data, strlen(data), out, &out_len, &out_type); + + /* check */ + EXPECT_EQ(0, ret); + EXPECT_EQ(11, out_len); + EXPECT_EQ(STRING, out_type); + EXPECT_STREQ("hello world", out); +}
\ No newline at end of file diff --git a/gtest/script/return_string_normal_sharp.lua b/gtest/script/return_string_normal_sharp.lua new file mode 100644 index 0000000..fd5c3e8 --- /dev/null +++ b/gtest/script/return_string_normal_sharp.lua @@ -0,0 +1,4 @@ +#!/usr/local/bin/luajit + +local str = TSG.data +return string.len(str), str diff --git a/gtest/script/return_string_normal_sharp.luajit b/gtest/script/return_string_normal_sharp.luajit Binary files differnew file mode 100644 index 0000000..e32af68 --- /dev/null +++ b/gtest/script/return_string_normal_sharp.luajit |
