summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author彭宣正 <[email protected]>2022-09-05 19:03:03 +0800
committer彭宣正 <[email protected]>2022-09-05 19:03:03 +0800
commit2a0f0af98db078dc159a138ef8d25048807222ea (patch)
treee92eb30a921a28e8fa50bfa23f78510e7ae50629
parentfb53526b29c8092aed85ec73f17b470df379e95a (diff)
✨ feat(TSG-11870): 修改测试用例
-rw-r--r--example/CMakeLists.txt2
-rw-r--r--example/luatest/luatest.cpp50
-rw-r--r--example/luatest/tags18
-rw-r--r--example/multithread.cpp109
-rw-r--r--example/single_thread.cpp309
-rw-r--r--gtest/CMakeLists.txt34
-rw-r--r--gtest/gtest_get_weixinnum.cpp100
-rw-r--r--gtest/gtest_lua_remove_cmd.cpp23
-rw-r--r--gtest/gtest_lua_timeout.cpp105
-rw-r--r--gtest/gtest_tsg_destory_lua.cpp23
-rw-r--r--gtest/gtest_tsg_lua_cache_exec.cpp412
-rw-r--r--gtest/gtest_tsg_lua_cache_script.cpp146
-rw-r--r--gtest/gtest_tsg_lua_cache_script_bytecode_file.cpp36
-rw-r--r--gtest/gtest_tsg_lua_cache_script_file.cpp157
-rw-r--r--gtest/gtest_tsg_lua_exec.cpp520
-rw-r--r--gtest/gtest_tsg_lua_exec_bytecode.cpp331
-rw-r--r--gtest/gtest_tsg_lua_exec_bytecode_file.cpp311
-rw-r--r--gtest/gtest_tsg_lua_exec_file.cpp503
-rw-r--r--gtest/gtest_tsg_lua_exec_with_context.cpp172
-rw-r--r--gtest/gtest_tsg_lua_register_function.cpp347
-rw-r--r--gtest/gtest_tsg_lua_uncache_script.cpp28
-rw-r--r--gtest/gtest_tsg_lua_vm_create.cpp12
-rw-r--r--gtest/script/call_cfunction_get_value.lua15
-rw-r--r--gtest/script/call_cfunction_invalid_args.lua6
-rw-r--r--gtest/script/call_set_repeat.lua8
-rw-r--r--gtest/script/elua_time_out.lua (renamed from gtest/script/lua_time_out.lua)0
-rw-r--r--gtest/script/get_header.lua2
27 files changed, 1067 insertions, 2712 deletions
diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt
index b46502e..40573e5 100644
--- a/example/CMakeLists.txt
+++ b/example/CMakeLists.txt
@@ -21,4 +21,4 @@ else()
target_link_libraries(multithread ${lib_name}_shared pthread)
endif()
-add_subdirectory(luatest) \ No newline at end of file
+# add_subdirectory(luatest) \ No newline at end of file
diff --git a/example/luatest/luatest.cpp b/example/luatest/luatest.cpp
index 686245b..f3e7552 100644
--- a/example/luatest/luatest.cpp
+++ b/example/luatest/luatest.cpp
@@ -19,7 +19,7 @@ extern "C"
#include<sys/stat.h>
#include<dirent.h>
}
-#include"tsg_lua_interface.h"
+#include"elua.h"
#define MAC_FRAME_HEADER_LEN 14
@@ -34,7 +34,7 @@ extern "C"
#define MIN(a, b) ((a) > (b) ?(b):(a))
#endif
-#define TSG_LUA_LOOP_TIMES 10000
+#define elua_LOOP_TIMES 10000
int c_pcap_flag[MAX_THREAD_NUM];
int c_text_flag[MAX_THREAD_NUM];
@@ -82,7 +82,7 @@ typedef struct lua_thread_info_s{
typedef struct lua_pacp_info_s
{
- tsg_lua_handle L;
+ elua_vm *L;
size_t script_id;
size_t thread_id;
uint32_t packet_num;
@@ -93,7 +93,7 @@ typedef struct lua_pacp_info_s
typedef struct lua_text_info_s
{
- tsg_lua_handle L;
+ elua_vm *L;
size_t script_id;
size_t thread_id;
uint64_t total_time;
@@ -318,7 +318,7 @@ void c_pcap_handle(u_char *userarg, const struct pcap_pkthdr *pkthdr, const u_ch
while(c_pcap_flag[pcap_info->thread_id] != 3)
{
memset(result, 0, sizeof(result));
- for(i = 0; i < TSG_LUA_LOOP_TIMES; i++)
+ for(i = 0; i < elua_LOOP_TIMES; i++)
{
pcap_info->c_handle(tcp_payload, tcp_payload_len, pcap_info->feature, result);
}
@@ -327,13 +327,13 @@ void c_pcap_handle(u_char *userarg, const struct pcap_pkthdr *pkthdr, const u_ch
memset(result, 0, sizeof(result));
clock_gettime(CLOCK_MONOTONIC, &time_start);
- for(i = 0; i < TSG_LUA_LOOP_TIMES; i++)
+ for(i = 0; i < elua_LOOP_TIMES; i++)
{
pcap_info->c_handle(tcp_payload, tcp_payload_len, pcap_info->feature, result);
}
clock_gettime(CLOCK_MONOTONIC, &time_end);
time += calc_time(time_start, time_end);
- time /= TSG_LUA_LOOP_TIMES;
+ time /= elua_LOOP_TIMES;
pcap_info->total_time += time;
debuginfo_len = strlen(pcap_info->debuginfo);
@@ -369,7 +369,7 @@ static void c_text_handle(c_text_info_t *text_info, char *debuginfo)
while(c_text_flag[text_info->thread_id] != 3)
{
memset(result, 0, sizeof(result));
- for(i = 0; i < TSG_LUA_LOOP_TIMES; i++)
+ for(i = 0; i < elua_LOOP_TIMES; i++)
{
text_info->c_handle((const u_char *)buffer, buffer_len, text_info->feature, result);
}
@@ -377,7 +377,7 @@ static void c_text_handle(c_text_info_t *text_info, char *debuginfo)
}
clock_gettime(CLOCK_MONOTONIC, &time_start);
- for (i = 0; i < TSG_LUA_LOOP_TIMES; i ++)
+ for (i = 0; i < elua_LOOP_TIMES; i ++)
{
if (text_info->c_handle((const u_char *)buffer, buffer_len, text_info->feature, result))
{
@@ -386,7 +386,7 @@ static void c_text_handle(c_text_info_t *text_info, char *debuginfo)
}
clock_gettime(CLOCK_MONOTONIC, &time_end);
time = calc_time(time_start, time_end);
- time /= TSG_LUA_LOOP_TIMES;
+ time /= elua_LOOP_TIMES;
text_info->total_time += time;
file_name = (const char *)memrchr(text_info->file_name, '/', strlen(text_info->file_name));
@@ -546,9 +546,9 @@ void lua_pcap_handle(u_char *userarg, const struct pcap_pkthdr *pkthdr, const u_
while (lua_pcap_flag[pcap_info->thread_id] != 3)
{
- for (i = 0; i < TSG_LUA_LOOP_TIMES; i++)
+ for (i = 0; i < elua_LOOP_TIMES; i++)
{
- ret = tsg_lua_cache_exec(pcap_info->L, pcap_info->script_id, (const char *)tcp_payload, tcp_payload_len, out, &out_len, &out_type);
+ ret = elua_execute_script(pcap_info->L, pcap_info->script_id, (const char *)tcp_payload, tcp_payload_len, out, &out_len, &out_type);
if (ret < 0)
{
sprintf(result, "failed");
@@ -559,9 +559,9 @@ void lua_pcap_handle(u_char *userarg, const struct pcap_pkthdr *pkthdr, const u_
}
clock_gettime(CLOCK_MONOTONIC, &time_start);
- for (i = 0; i < TSG_LUA_LOOP_TIMES; i++)
+ for (i = 0; i < elua_LOOP_TIMES; i++)
{
- ret = tsg_lua_cache_exec(pcap_info->L, pcap_info->script_id, (const char *)tcp_payload, tcp_payload_len, out, &out_len, &out_type);
+ ret = elua_execute_script(pcap_info->L, pcap_info->script_id, (const char *)tcp_payload, tcp_payload_len, out, &out_len, &out_type);
if (ret < 0)
{
sprintf(result, "failed");
@@ -570,7 +570,7 @@ void lua_pcap_handle(u_char *userarg, const struct pcap_pkthdr *pkthdr, const u_
}
clock_gettime(CLOCK_MONOTONIC, &time_end);
time += calc_time(time_start, time_end);
- time /= TSG_LUA_LOOP_TIMES;
+ time /= elua_LOOP_TIMES;
pcap_info->total_time += time;
switch(out_type)
@@ -595,7 +595,7 @@ void lua_pcap_handle(u_char *userarg, const struct pcap_pkthdr *pkthdr, const u_
}
return ;
}
-static void lua_pcap_prefix_handle(lua_thread_info_t *thread_info, char *debuginfo, tsg_lua_handle L, size_t script_id)
+static void lua_pcap_prefix_handle(lua_thread_info_t *thread_info, char *debuginfo, elua_vm *L, size_t script_id)
{
if ((thread_info == NULL) || (debuginfo == NULL) || (script_id < 1))
@@ -629,7 +629,7 @@ static void lua_pcap_prefix_handle(lua_thread_info_t *thread_info, char *debugin
return ;
}
-static void lua_text_handle(lua_text_info_t *text_info, char *debuginfo, tsg_lua_handle lua)
+static void lua_text_handle(lua_text_info_t *text_info, char *debuginfo, elua_vm *Lua)
{
char buffer[1024 * 1024];
size_t buffer_len;
@@ -656,9 +656,9 @@ static void lua_text_handle(lua_text_info_t *text_info, char *debuginfo, tsg_lua
while (lua_text_flag[text_info->thread_id] != 3)
{
- for (i = 0; i < TSG_LUA_LOOP_TIMES; i++)
+ for (i = 0; i < elua_LOOP_TIMES; i++)
{
- ret = tsg_lua_cache_exec(lua, text_info->script_id, (const char *)buffer, buffer_len, out, &out_len, &out_type);
+ ret = elua_execute_script(lua, text_info->script_id, (const char *)buffer, buffer_len, out, &out_len, &out_type);
if (ret < 0)
{
return;
@@ -668,9 +668,9 @@ static void lua_text_handle(lua_text_info_t *text_info, char *debuginfo, tsg_lua
}
clock_gettime(CLOCK_MONOTONIC, &time_start);
- for (i = 0; i < TSG_LUA_LOOP_TIMES; i ++)
+ for (i = 0; i < elua_LOOP_TIMES; i ++)
{
- ret = tsg_lua_cache_exec(lua, text_info->script_id, (const char *)buffer, buffer_len, out, &out_len, &out_type);
+ ret = elua_execute_script(lua, text_info->script_id, (const char *)buffer, buffer_len, out, &out_len, &out_type);
if (ret < 0)
{
return;
@@ -678,7 +678,7 @@ static void lua_text_handle(lua_text_info_t *text_info, char *debuginfo, tsg_lua
}
clock_gettime(CLOCK_MONOTONIC, &time_end);
time = calc_time(time_start, time_end);
- time /= TSG_LUA_LOOP_TIMES;
+ time /= elua_LOOP_TIMES;
text_info->total_time += time;
switch(out_type)
@@ -715,7 +715,7 @@ static void *lua_file_handle(void *ptr)
size_t script_id;
char script[4096];
size_t script_len;
- tsg_lua_handle lua;
+ elua_vm *Lua;
char *debuginfo = NULL;
lua_thread_info_t * thread_info = (lua_thread_info_t *)ptr;
char result[512];
@@ -732,7 +732,7 @@ static void *lua_file_handle(void *ptr)
memset(debuginfo, 0, 10240);
memset(result, 0, sizeof(result));
- lua = tsg_lua_vm_create();
+ lua = elua_create_vm(NULL);
if (lua == NULL)
{
pthread_exit(debuginfo);
@@ -741,7 +741,7 @@ static void *lua_file_handle(void *ptr)
{
pthread_exit(debuginfo);
}
- script_id = tsg_lua_cache_script(lua, script, script_len);
+ script_id = elua_cache_script(lua, script, script_len);
if (script_id < 1)
{
pthread_exit(debuginfo);
diff --git a/example/luatest/tags b/example/luatest/tags
index 5fd17d1..909dae5 100644
--- a/example/luatest/tags
+++ b/example/luatest/tags
@@ -58,12 +58,12 @@ ARCHITECTURE_ID lib/build/CMakeFiles/3.9.2/CompilerIdCXX/CMakeCXXCompilerId.cpp
ARCHITECTURE_ID lib/build/CMakeFiles/3.9.2/CompilerIdCXX/CMakeCXXCompilerId.cpp 427;" d file:
ARCHITECTURE_ID lib/build/CMakeFiles/3.9.2/CompilerIdCXX/CMakeCXXCompilerId.cpp 430;" d file:
ARCHITECTURE_ID lib/build/CMakeFiles/3.9.2/CompilerIdCXX/CMakeCXXCompilerId.cpp 434;" d file:
-CMAKE_BINARY_DIR build/Makefile /^CMAKE_BINARY_DIR = \/root\/workspace\/tsg_lua_0.99\/example\/demo_winxinhao\/build$/;" m
-CMAKE_BINARY_DIR lib/build/Makefile /^CMAKE_BINARY_DIR = \/root\/workspace\/tsg_lua_0.99\/example\/demo_winxinhao\/lib\/build$/;" m
+CMAKE_BINARY_DIR build/Makefile /^CMAKE_BINARY_DIR = \/root\/workspace\/elua_0.99\/example\/demo_winxinhao\/build$/;" m
+CMAKE_BINARY_DIR lib/build/Makefile /^CMAKE_BINARY_DIR = \/root\/workspace\/elua_0.99\/example\/demo_winxinhao\/lib\/build$/;" m
CMAKE_COMMAND build/Makefile /^CMAKE_COMMAND = \/usr\/local\/bin\/cmake$/;" m
CMAKE_COMMAND lib/build/Makefile /^CMAKE_COMMAND = \/usr\/local\/bin\/cmake$/;" m
-CMAKE_SOURCE_DIR build/Makefile /^CMAKE_SOURCE_DIR = \/root\/workspace\/tsg_lua_0.99\/example\/demo_winxinhao$/;" m
-CMAKE_SOURCE_DIR lib/build/Makefile /^CMAKE_SOURCE_DIR = \/root\/workspace\/tsg_lua_0.99\/example\/demo_winxinhao\/lib$/;" m
+CMAKE_SOURCE_DIR build/Makefile /^CMAKE_SOURCE_DIR = \/root\/workspace\/elua_0.99\/example\/demo_winxinhao$/;" m
+CMAKE_SOURCE_DIR lib/build/Makefile /^CMAKE_SOURCE_DIR = \/root\/workspace\/elua_0.99\/example\/demo_winxinhao\/lib$/;" m
COMPILER_ID build/CMakeFiles/3.9.2/CompilerIdC/CMakeCCompilerId.c 101;" d file:
COMPILER_ID build/CMakeFiles/3.9.2/CompilerIdC/CMakeCCompilerId.c 108;" d file:
COMPILER_ID build/CMakeFiles/3.9.2/CompilerIdC/CMakeCCompilerId.c 115;" d file:
@@ -543,9 +543,9 @@ INPUT_COMPLETE luatest.cpp 110;" d file:
INPUT_COMPLETE luatest_old.cpp 80;" d file:
IP_HEADER_LEN luatest.cpp 27;" d file:
IP_HEADER_LEN luatest_old.cpp 23;" d file:
-L luatest.cpp /^ tsg_lua_handle L;$/;" m struct:lua_pacp_info_s file:
-L luatest.cpp /^ tsg_lua_handle L;$/;" m struct:lua_text_info_s file:
-L luatest_old.cpp /^ tsg_lua_handle L;$/;" m struct:lua_info_s file:
+L luatest.cpp /^ elua_vm *L;$/;" m struct:lua_pacp_info_s file:
+L luatest.cpp /^ elua_vm *L;$/;" m struct:lua_text_info_s file:
+L luatest_old.cpp /^ elua_vm *L;$/;" m struct:lua_info_s file:
LIB_COMPLETE luatest.cpp 112;" d file:
LIB_COMPLETE luatest_old.cpp 82;" d file:
MAC_FRAME_HEADER_LEN luatest.cpp 26;" d file:
@@ -853,8 +853,8 @@ lua_pcap_handle luatest.cpp /^void lua_pcap_handle(u_char *userarg, const struct
lua_pcap_handle luatest_old.cpp /^void lua_pcap_handle(u_char *userarg, const struct pcap_pkthdr *pkthdr, const u_char *packet)$/;" f
lua_pcap_info_t luatest.cpp /^}lua_pcap_info_t;$/;" t typeref:struct:lua_pacp_info_s file:
lua_pcap_info_t luatest_old.cpp /^}lua_pcap_info_t;$/;" t typeref:struct:lua_info_s file:
-lua_pcap_prefix_handle luatest.cpp /^static void lua_pcap_prefix_handle(lua_thread_info_t *thread_info, char *debuginfo, tsg_lua_handle L, size_t script_id)$/;" f file:
-lua_text_handle luatest.cpp /^static void lua_text_handle(lua_text_info_t *text_info, char *debuginfo, tsg_lua_handle lua)$/;" f file:
+lua_pcap_prefix_handle luatest.cpp /^static void lua_pcap_prefix_handle(lua_thread_info_t *thread_info, char *debuginfo, elua_vm *L, size_t script_id)$/;" f file:
+lua_text_handle luatest.cpp /^static void lua_text_handle(lua_text_info_t *text_info, char *debuginfo, elua_vm *Lua)$/;" f file:
lua_text_info_s luatest.cpp /^typedef struct lua_text_info_s$/;" s file:
lua_text_info_t luatest.cpp /^}lua_text_info_t;$/;" t typeref:struct:lua_text_info_s file:
lua_thread_info_s luatest.cpp /^typedef struct lua_thread_info_s{$/;" s file:
diff --git a/example/multithread.cpp b/example/multithread.cpp
index a5a2119..a26d656 100644
--- a/example/multithread.cpp
+++ b/example/multithread.cpp
@@ -12,7 +12,7 @@ extern "C"
#include<unistd.h>
#include<time.h>
}
-#include"../src/tsg_lua_interface.h"
+#include"../src/elua.h"
#ifndef MAX_THREAD_NUM
#define MAX_THREAD_NUM 9
#endif
@@ -22,7 +22,7 @@ extern "C"
typedef struct lua_script_info_s{
const char *script_data;
//int script_len;
- int script_id;
+ struct elua_script *escript;
}lua_script_info_t;
typedef struct lua_data_s{
@@ -33,7 +33,7 @@ typedef struct lua_data_s{
typedef struct{
lua_test_data_t data;
int thread_id;
- tsg_lua_handle lua;
+ elua_vm *Lua;
}userdata_t;
@@ -67,11 +67,14 @@ void debuginfo(int thread_id, char *out, int out_len, int out_type)
void *lua_function(void *ptr)
{
int ret;
- char out[255];
- size_t out_len = 0;
- size_t out_type = 0;
- memset(out, 0, 255);
- tsg_lua_handle L = NULL;
+
+ elua_vm *L = NULL;
+
+ char buff[1024];
+ struct elua_data output;
+ output.len = 1024;
+ output.string = buff;
+ output.type = STRING;
userdata_t *userdata = (userdata_t *)ptr;
lua_test_data_t *data = &userdata->data;
@@ -79,97 +82,85 @@ void *lua_function(void *ptr)
lua_script_info_t script_info[MAX_SCRIPT_NUM] =
{
- {SCRIPT_PROTOCOL_RECOGNITION, SCRIPT_NO_CACHE},
- {SCRIPT_COUNT_1, SCRIPT_NO_CACHE},
- {SCRIPT_MATCH_12345, SCRIPT_NO_CACHE},
+ {SCRIPT_PROTOCOL_RECOGNITION, NULL},
+ {SCRIPT_COUNT_1, NULL},
+ {SCRIPT_MATCH_12345, NULL},
};
- printf("[C][thread_id:%d]:tsg_lua_vm_create start...\n", thread_id);
- L = tsg_lua_vm_create();
+ printf("[C][thread_id:%d]:elua_create_vm start...\n", thread_id);
+ L = elua_create_vm(NULL);
if (L == NULL)
{
- printf("[C][thread_id:%d]:tsg_lua_vm_create failed...\n", thread_id);
+ printf("[C][thread_id:%d]:elua_create_vm failed...\n", thread_id);
return (void *)"lua vm create failed";
}
printf("[C][thread_id:%d]:lua:%p ...\n", thread_id, L);
- printf("[C][thread_id:%d]:tsg_lua_vm_create success...\n", thread_id);
-
- printf("[C][thread_id:%d]:tsg_lua_exec_file start...\n", thread_id);
- ret = tsg_lua_exec_file(L, script_info[0].script_data, data->data, data->data_len, out, &out_len, &out_type);
- if(ret < 0)
- {
- printf("[C][thread_id:%d]:tsg_lua_exec_file failed...\n", thread_id);
- return (void *)"exec failed";
- }
- debuginfo(thread_id, out, out_len, out_type);
- printf("[C][thread_id:%d]:tsg_lua_exec_file success...\n", thread_id);
+ printf("[C][thread_id:%d]:elua_create_vm success...\n", thread_id);
- printf("[C][thread_id:%d]:tsg_lua_cache_script_file start...\n", thread_id);
- script_info[1].script_id = tsg_lua_cache_script_file(L, script_info[1].script_data);
- if (script_info[1].script_id < 0)
+ printf("[C][thread_id:%d]:elua_cache_script_file start...\n", thread_id);
+ script_info[1].escript = elua_cache_script_file(L, script_info[1].script_data, 0);
+ if (script_info[1].escript == NULL)
{
- printf("[C][thread_id:%d]:tsg_lua_cache_script_file failed...\n", thread_id);
+ printf("[C][thread_id:%d]:elua_cache_script_file failed...\n", thread_id);
return (void *)"cache script failed";
}
- printf("[C][thread_id:%d]:script_id:%d ...\n", thread_id, script_info[1].script_id);
- printf("[C][thread_id:%d]:tsg_lua_cache_script_file success...\n", thread_id);
+ printf("[C][thread_id:%d]:elua_cache_script_file success...\n", thread_id);
- printf("[C][thread_id:%d]:tsg_lua_cache_exec start...\n", thread_id);
- ret = tsg_lua_cache_exec(L, script_info[1].script_id, data->data, data->data_len, out, &out_len, &out_type);
+ printf("[C][thread_id:%d]:elua_execute_script start...\n", thread_id);
+ ret = elua_execute_script(script_info[1].escript, data->data, data->data_len, NULL, NULL, &output);
if(ret < 0)
{
- printf("[C][thread_id:%d]:tsg_lua_cache_exec failed...\n", thread_id);
+ printf("[C][thread_id:%d]:elua_execute_script failed...\n", thread_id);
return (void *)"cache exec failed";
}
- debuginfo(thread_id, out, out_len, out_type);
- printf("[C][thread_id:%d]:tsg_lua_cache_exec success...\n", thread_id);
+ debuginfo(thread_id, output.string, output.len, output.type);
+ printf("[C][thread_id:%d]:elua_execute_script success...\n", thread_id);
- printf("[C][thread_id:%d]:tsg_lua_cache_script_file start...\n", thread_id);
- script_info[2].script_id = tsg_lua_cache_script_file(L, script_info[2].script_data);
- if (script_info[2].script_id < 0)
+ printf("[C][thread_id:%d]:elua_cache_script_file start...\n", thread_id);
+ script_info[2].escript = elua_cache_script_file(L, script_info[2].script_data, 0);
+ if (script_info[2].escript == NULL)
{
- printf("[C][thread_id:%d]:tsg_lua_cache_script_file failed...\n", thread_id);
+ printf("[C][thread_id:%d]:elua_cache_script_file failed...\n", thread_id);
return (void *)"cache script failed";
}
- printf("[C][thread_id:%d]:script_id:%d ...\n", thread_id, script_info[2].script_id);
- printf("[C][thread_id:%d]:tsg_lua_cache_script_file success...\n", thread_id);
+ printf("[C][thread_id:%d]:elua_cache_script_file success...\n", thread_id);
- printf("[C][thread_id:%d]:tsg_lua_cache_exec start...\n", thread_id);
- ret = tsg_lua_cache_exec(L, script_info[2].script_id, data->data, data->data_len, out, &out_len, &out_type);
+ printf("[C][thread_id:%d]:elua_execute_script start...\n", thread_id);
+ ret = elua_execute_script(script_info[2].escript, data->data, data->data_len, NULL, NULL, &output);
if(ret < 0)
{
- printf("[C][thread_id:%d]:tsg_lua_cache_exec failed...\n", thread_id);
+ printf("[C][thread_id:%d]:elua_execute_script failed...\n", thread_id);
return (void *)"cache exec failed";
}
- debuginfo(thread_id, out, out_len, out_type);
- printf("[C][thread_id:%d]:tsg_lua_cache_exec success...\n", thread_id);
+ debuginfo(thread_id, output.string, output.len, output.type);
+ printf("[C][thread_id:%d]:elua_execute_script success...\n", thread_id);
- printf("[C][thread_id:%d]:tsg_lua_uncache_script start...\n", thread_id);
- ret = tsg_lua_uncache_script(L, script_info[1].script_id);
+ printf("[C][thread_id:%d]:elua_cleanup_script start...\n", thread_id);
+ ret = elua_cleanup_script(script_info[1].escript);
if(ret < 0)
{
- printf("[C][thread_id:%d]:tsg_lua_uncache_script failed...\n", thread_id);
+ printf("[C][thread_id:%d]:elua_cleanup_script failed...\n", thread_id);
return (void *)"uncache script failed";
}
printf("[C][thread_id:%d]:tsg_uncache_script success...\n", thread_id);
- printf("[C][thread_id:%d]:tsg_lua_uncache_script start...\n", thread_id);
- ret = tsg_lua_uncache_script(L, script_info[2].script_id);
+ printf("[C][thread_id:%d]:elua_cleanup_script start...\n", thread_id);
+ ret = elua_cleanup_script(script_info[2].escript);
if(ret < 0)
{
- printf("[C][thread_id:%d]:tsg_lua_uncache_script failed...\n", thread_id);
+ printf("[C][thread_id:%d]:elua_cleanup_script failed...\n", thread_id);
return (void *)"uncache script failed";
}
printf("[C][thread_id:%d]:tsg_uncache_script success...\n", thread_id);
- printf("[C][thread_id:%d]:tsg_destory_lua start...\n", thread_id);
- ret = tsg_destory_lua(L);
+ printf("[C][thread_id:%d]:elua_destroy_vm start...\n", thread_id);
+ ret = elua_destroy_vm(L);
if(ret < 0)
{
- printf("[C][thread_id:%d]:tsg_destory_lua failed...\n", thread_id);
+ printf("[C][thread_id:%d]:elua_destroy_vm failed...\n", thread_id);
return (void *)"uncache script failed";
}
- printf("[C][thread_id:%d]:tsg_destory_lua success...\n", thread_id);
+ printf("[C][thread_id:%d]:elua_destroy_vm success...\n", thread_id);
pthread_exit((void *)"OK");
}
@@ -178,7 +169,7 @@ int main(int argc, char *argv[])
{
int thread_num;
pthread_t thread[MAX_THREAD_NUM] = {0};
- //tsg_lua_handle lua[MAX_THREAD_NUM] = {0};
+ //elua_vm *Lua[MAX_THREAD_NUM] = {0};
int thread_sum;
int ch, i;
char buf[1024];
@@ -254,7 +245,7 @@ int main(int argc, char *argv[])
data->data_len = buf_len;
data->data[buf_len] = thread_num;
data->data_len++;
- //lua[thread_num] = tsg_lua_vm_create();
+ //lua[thread_num] = elua_create_vm(NULL);
//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 d188c0f..3778156 100644
--- a/example/single_thread.cpp
+++ b/example/single_thread.cpp
@@ -8,7 +8,7 @@ extern "C"
#include<stdio.h>
#include<string.h>
}
-#include"../src/tsg_lua_interface.h"
+#include"../src/elua.h"
char *content0 = (char *)"HanMeimei said \"hello\" to LiLei";
char content1[255];
@@ -19,6 +19,7 @@ int main()
{
const char *script = "./script/find_hello.lua";
const char *script1 = "./script/find_1.luajit";
+ #if 0
const char *script2 = "local str = tsg.data print(str) return string.len(str), str";
const char *script3 = "\x1B\x4C\x4A\x02\x0A\x75\x02\x00"\
"\x04\x00\x07\x00\x11\x36\x00\x00"\
@@ -36,307 +37,123 @@ int main()
"\x2D\x2D\x2D\x2D\x0A\x70\x72\x69"\
"\x6E\x74\x09\x64\x61\x74\x61\x08"\
"\x74\x73\x67\x00";
- tsg_lua_handle L = NULL;
+ #endif
+ elua_vm *L = NULL;
content1[128] = 1;
//memset(content1, 1, sizeof(content1));
/* 初始化1个虚拟机 */
- printf("\n*********************tsg_lua_vm_create************************\n");
- printf("[C]:call tsg_lua_vm_create...\n");
- L = tsg_lua_vm_create();
+ printf("\n*********************elua_create_vm************************\n");
+ printf("[C]:call elua_create_vm...\n");
+ L = elua_create_vm(NULL);
if (L == NULL)
{
- printf("[C]:call tsg_lua_vm_create failed.\n");
+ printf("[C]:call elua_create_vm failed.\n");
return -1;
}
- printf("[C]:call tsg_lua_vm_create success.\t lua:%p\n", L);
+ printf("[C]:call elua_create_vm success.\t lua:%p\n", L);
- char out[255];
- memset(out, 0, sizeof(out));
- size_t out_len;
- size_t out_type;
- printf("\n=============================file==================================\n");
- printf("\n*********************tsg_lua_exec_file************************\n");
- printf("[C]:call tsg_lua_exec_file, exec %s ...\n", script);
- int ret = tsg_lua_exec_file(L, script, content0, strlen(content0), out, &out_len, &out_type);
- if (ret < 0)
- {
- printf("[C]:call tsg_lua_exec_file failed.\n");
- return -1;
- }
- printf("[C]:call tsg_lua_exec_file success.\n");
- printf("[C]:out_len:%zu\n", out_len);
- printf("[C]:out_type:%zu\n", out_type);
- switch(out_type)
- {
- case STRING:
- printf("[C]:out_data:%s\n", out);
- break;
- case INTEGER:
- printf("[C]:out_data:%ld\n", *(long int *)out);
- break;
- case BOOLEAN:
- printf("[C]:out_data:%d\n", out[0]);
- break;
- }
-
- printf("\n*********************tsg_lua_exec_file************************\n");
- printf("[C]:call tsg_lua_exec_file, exec %s ...\n", script1);
- ret = tsg_lua_exec_file(L, script1, content0, strlen(content0), out, &out_len, &out_type);
- if (ret < 0)
- {
- printf("[C]:call tsg_lua_exec_file failed.\n");
- return -1;
- }
- printf("[C]:call tsg_lua_exec_file success.\n");
- printf("[C]:out_len:%zu\n", out_len);
- printf("[C]:out_type:%zu\n", out_type);
- switch(out_type)
- {
- case STRING:
- printf("[C]:out_data:%s\n", out);
- break;
- case INTEGER:
- printf("[C]:out_data:%ld\n", *(long int *)out);
- break;
- case BOOLEAN:
- printf("[C]:out_data:%d\n", out[0]);
- break;
- }
+ struct elua_data output;
+ output.type = STRING;
+ output.len = 1024;
+ char buff[1024];
+ memset(buff, 0, 1024);
+ output.string = buff;
/* lua 缓存脚本, 再运行 */
- memset(out, 0, sizeof(out));
- printf("\n*********************tsg_lua_cache_script_file************************\n");
- printf("[C]: call tsg_lua_cache_script_file, script:%s ...\n", script);
- int script_id = tsg_lua_cache_script_file(L, script);
- if (script_id < 0)
+ printf("\n*********************elua_cache_script_file************************\n");
+ printf("[C]: call elua_cache_script_file, script:%s ...\n", script);
+ struct elua_script *escript = elua_cache_script_file(L, script, 0);
+ if (escript == NULL)
{
- printf("[C]: call tsg_lua_cache_script_file failed.\n");
+ printf("[C]: call elua_cache_script_file failed.\n");
return -1;
}
- printf("[C]: call tsg_lua_cache_script_file success.\t script_id:%d\n", script_id);
+ printf("[C]: call elua_cache_script_file success.\n");
- printf("\n*********************tsg_lua_cache_exec************************\n");
- printf("[C]: call tsg_lua_cache_exec ...\n");
- ret = tsg_lua_cache_exec(L, script_id, content1, 255, out, &out_len, &out_type);
+ printf("\n*********************elua_execute_script************************\n");
+ printf("[C]: call elua_execute_script ...\n");
+ int ret = elua_execute_script(escript, content1, 255, NULL, NULL, &output);
if (ret < 0)
{
- printf("[C]: call tsg_lua_cache_exec failed.\n");
+ printf("[C]: call elua_execute_script failed.\n");
return -1;
}
- printf("[C]: call tsg_lua_cache_exec success\n");
- printf("[C]:out_len:%zu\n", out_len);
- printf("[C]:out_type:%zu\n", out_type);
- switch(out_type)
+ printf("[C]: call elua_execute_script success\n");
+ printf("[C]:out_len:%zu\n", output.len);
+ printf("[C]:out_type:%d\n", output.type);
+ switch(output.type)
{
case STRING:
- printf("[C]:out_data:%s\n", out);
+ printf("[C]:out_data:%s\n", output.string);
break;
case BOOLEAN:
- printf("[C]:out_data:%d\n", out[0]);
+ printf("[C]:out_data:%d\n", output.true_or_false);
break;
case INTEGER:
- printf("[C]:out_data:%ld\n", *(long int *)out);
+ printf("[C]:out_data:%ld\n", *(long int *)output.integer);
+ break;
+ default:
break;
}
- memset(out, 0, sizeof(out));
- printf("\n*********************tsg_lua_cache_script_file************************\n");
- printf("[C]: call tsg_lua_cache_script_file, script:%s ...\n", script1);
- int script_id1 = tsg_lua_cache_script_file(L, script1);
- if (script_id1 < 0)
+ printf("\n*********************elua_cache_script_file************************\n");
+ printf("[C]: call elua_cache_script_file, script:%s ...\n", script1);
+ struct elua_script *escript1 = elua_cache_script_file(L, script1, 0);
+ if (escript1 == NULL)
{
- printf("[C]: call tsg_lua_cache_script_file failed.\n");
+ printf("[C]: call elua_cache_script_file failed.\n");
return -1;
}
- printf("[C]: call tsg_lua_cache_script_file success.\t script_id:%d\n", script_id1);
+ printf("[C]: call elua_cache_script_file success.\n");
- printf("\n*********************tsg_lua_cache_exec************************\n");
- printf("[C]: call tsg_lua_cache_exec ...\n");
- ret = tsg_lua_cache_exec(L, script_id1, content1, 255, out, &out_len, &out_type);
+ printf("\n*********************elua_execute_script************************\n");
+ printf("[C]: call elua_execute_script ...\n");
+ ret = elua_execute_script(escript1, content1, 255, NULL, NULL, &output);
if (ret < 0)
{
- printf("[C]: call tsg_lua_cache_exec failed.\n");
+ printf("[C]: call elua_execute_script failed.\n");
return -1;
}
- printf("[C]: call tsg_lua_cache_exec success\n");
- printf("[C]:out_len:%zu\n", out_len);
- printf("[C]:out_type:%zu\n", out_type);
- switch(out_type)
+ printf("[C]: call elua_execute_script success\n");
+ printf("[C]:out_len:%zu\n", output.len);
+ printf("[C]:out_type:%d\n", output.type);
+ switch(output.type)
{
case STRING:
- printf("[C]:out_data:%s\n", out);
+ printf("[C]:out_data:%s\n", output.string);
break;
case BOOLEAN:
- printf("[C]:out_data:%d\n", out[0]);
+ printf("[C]:out_data:%d\n", output.true_or_false);
break;
case INTEGER:
- printf("[C]:out_data:%ld\n", *(long int *)out);
+ printf("[C]:out_data:%ld\n", output.integer);
break;
- }
-
- /****************************************************************************************/
- printf("\n=============================string==================================\n");
- memset(out, 0, sizeof(out));
- printf("\n*********************tsg_lua_exec************************\n");
- printf("[C]: call tsg_lua_exec, text-script ...\n");
- ret = tsg_lua_exec(L, script2, strlen(script2), "hello wrold", 11, out, &out_len, &out_type);
- if (ret < 0)
- {
- printf("[C]: call tsg_lua_exec failed ...\n");
- return -1;
- }
- printf("[C]: call tsg_lua_exec success ...\n");
- printf("[C]:out_len:%zu\n", out_len);
- printf("[C]:out_type:%zu\n", out_type);
- switch(out_type)
- {
- case STRING:
- printf("[C]:out_data:%s\n", out);
- break;
- case BOOLEAN:
- printf("[C]:out_data:%d\n", out[0]);
- break;
- case INTEGER:
- printf("[C]:out_data:%ld\n", *(long int *)out);
+ default:
break;
}
- memset(out, 0, sizeof(out));
- printf("\n*********************tsg_lua_exec************************\n");
- printf("[C]: call tsg_lua_exec, bytecode-script ...\n");
- ret = tsg_lua_exec(L, script3, 124, "hello wrold", 11, out, &out_len, &out_type);
- if (ret < 0)
- {
- printf("[C]: call tsg_lua_exec failed ...\n");
- return -1;
- }
- printf("[C]: call tsg_lua_exec success ...\n");
- printf("[C]:out_len:%zu\n", out_len);
- printf("[C]:out_type:%zu\n", out_type);
- switch(out_type)
- {
- case STRING:
- printf("[C]:out_data:%s\n", out);
- break;
- case BOOLEAN:
- printf("[C]:out_data:%d\n", out[0]);
- break;
- case INTEGER:
- printf("[C]:out_data:%ld\n", *(long int *)out);
- break;
- }
- memset(out, 0, sizeof(out));
- printf("\n*********************tsg_lua_cache_script************************\n");
- printf("[C]: call tsg_lua_cache_script, text-script ...\n");
- int script_id2 = tsg_lua_cache_script(L, script2, strlen(script2));
- if (script_id2 < 0)
- {
- printf("[C]: call tsg_lua_cache_script failed.\n");
- return -1;
- }
- printf("[C]: call tsg_lua_cache_script success.\t script_id:%d\n", script_id2);
-
- printf("\n*********************tsg_lua_cache_exec************************\n");
- printf("[C]: call tsg_lua_cache_exec ...\n");
- ret = tsg_lua_cache_exec(L, script_id2, "hello wrold", 11, out, &out_len, &out_type);
- if (ret < 0)
- {
- printf("[C]: call tsg_lua_cache_exec failed.\n");
- return -1;
- }
- printf("[C]: call tsg_lua_cache_exec success\n");
- printf("[C]:out_len:%zu\n", out_len);
- printf("[C]:out_type:%zu\n", out_type);
- switch(out_type)
- {
- case STRING:
- printf("[C]:out_data:%s\n", out);
- break;
- case BOOLEAN:
- printf("[C]:out_data:%d\n", out[0]);
- break;
- case INTEGER:
- printf("[C]:out_data:%ld\n", *(long int *)out);
- break;
- }
- memset(out, 0, sizeof(out));
- printf("\n*********************tsg_lua_cache_script************************\n");
- printf("[C]: call tsg_lua_cache_script, text-script ...\n");
- int script_id3 = tsg_lua_cache_script(L, script3, 124);
- if (script_id3 < 0)
- {
- printf("[C]: call tsg_lua_cache_script failed.\n");
- return -1;
- }
- printf("[C]: call tsg_lua_cache_script success.\t script_id:%d\n", script_id3);
-
- printf("\n*********************tsg_lua_cache_exec************************\n");
- printf("[C]: call tsg_lua_cache_exec ...\n");
- ret = tsg_lua_cache_exec(L, script_id3, "hello world", 11, out, &out_len, &out_type);
- if (ret < 0)
- {
- printf("[C]: call tsg_lua_cache_exec failed.\n");
- return -1;
- }
- printf("[C]: call tsg_lua_cache_exec success\n");
- printf("[C]:out_len:%zu\n", out_len);
- printf("[C]:out_type:%zu\n", out_type);
- switch(out_type)
- {
- case STRING:
- printf("[C]:out_data:%s\n", out);
- break;
- case BOOLEAN:
- printf("[C]:out_data:%d\n", out[0]);
- break;
- case INTEGER:
- printf("[C]:out_data:%ld\n", *(long int *)out);
- break;
- }
/* lua 注销脚本 */
- memset(out, 0, sizeof(out));
- printf("\n*********************tsg_lua_uncache_script************************\n");
- printf("[C]: call tsg_lua_uncache_script, script_id:%d ...\n", script_id);
- ret = tsg_lua_uncache_script(L, script_id);
- if (ret < 0)
- {
- printf("[C]: call tsg_lua_uncache_script failed.\n");
- return -1;
- }
- printf("[C]: call tsg_lua_uncache_script success\n");
- printf("\n*********************tsg_lua_uncache_script************************\n");
- printf("[C]: call tsg_lua_uncache_script, script_id:%d ...\n", script_id1);
- ret = tsg_lua_uncache_script(L, script_id1);
+ printf("\n*********************elua_cleanup_script************************\n");
+ printf("[C]: call elua_cleanup_script...\n");
+ ret = elua_cleanup_script(escript);
if (ret < 0)
{
- printf("[C]: call tsg_lua_uncache_script failed.\n");
+ printf("[C]: call elua_cleanup_script failed.\n");
return -1;
}
- printf("[C]: call tsg_lua_uncache_script success\n");
- printf("\n*********************tsg_lua_uncache_script************************\n");
- printf("[C]: call tsg_lua_uncache_script, script_id:%d ...\n", script_id2);
- ret = tsg_lua_uncache_script(L, script_id2);
+ printf("[C]: call elua_cleanup_script success\n");
+ printf("\n*********************elua_cleanup_script************************\n");
+ printf("[C]: call elua_cleanup_script...\n");
+ ret = elua_cleanup_script(escript1);
if (ret < 0)
{
- printf("[C]: call tsg_lua_uncache_script failed.\n");
+ printf("[C]: call elua_cleanup_script failed.\n");
return -1;
}
- printf("[C]: call tsg_lua_uncache_script success\n");
- printf("\n*********************tsg_lua_uncache_script************************\n");
- printf("[C]: call tsg_lua_uncache_script, script_id:%d ...\n", script_id3);
- ret = tsg_lua_uncache_script(L, script_id3);
- if (ret < 0)
- {
- printf("[C]: call tsg_lua_uncache_script failed.\n");
- return -1;
- }
- printf("[C]: call tsg_lua_uncache_script success\n");
-
- tsg_lua_cache_exec(L, script_id, content1, 255, out, &out_len, &out_type);
-
+ printf("[C]: call elua_cleanup_script success\n");
/* 关闭lua */
- tsg_destory_lua(L);
+ elua_destroy_vm(L);
printf("[C]:Every day is good day!\n");
return 0;
diff --git a/gtest/CMakeLists.txt b/gtest/CMakeLists.txt
index 2a1aad1..466ad53 100644
--- a/gtest/CMakeLists.txt
+++ b/gtest/CMakeLists.txt
@@ -1,10 +1,24 @@
cmake_minimum_required(VERSION 2.6)
-project(gtest_tsg_lua)
-aux_source_directory(. SRCS)
+project(gtest_elua)
+# aux_source_directory(. SRCS)
+file(GLOB SRCS
+ "gtest_lua_remove_cmd.cpp"
+ "gtest_lua_timeout.cpp"
+ "gtest_tsg_destroy_lua.cpp"
+ "gtest_tsg_lua_cache_exec.cpp"
+ "gtest_tsg_lua_cache_script_bytecode_file.cpp"
+ "gtest_tsg_lua_cache_script_file.cpp"
+ "gtest_tsg_lua_cache_script.cpp"
+ "gtest_tsg_lua_register_function.cpp"
+ "gtest_tsg_lua_uncache_script.cpp"
+ "gtest_tsg_lua_vm_create.cpp"
+ "gtest_tsg_lua_exec_with_context.cpp"
+ "gtest_get_weixinnum.cpp"
+)
+
include_directories("../src")
include_directories("${CMAKE_BINARY_DIR}/support/GoogleTest/include/")
-#link_directories("/opt/MESA/lib")
link_directories("${CMAKE_BINARY_DIR}/src/")
link_directories("${CMAKE_BINARY_DIR}/support/GoogleTest/lib/")
link_directories("${CMAKE_BINARY_DIR}/support/luajit2/src/luajit2/src/")
@@ -12,16 +26,16 @@ link_directories("${CMAKE_BINARY_DIR}/support/luajit2/src/luajit2/src/")
#link_libraries(libluajit.a tsglua gtest gtest_main pthread)
add_definitions(-g -W -Wall)
-add_executable(gtest_tsg_lua ${SRCS})
+add_executable(gtest_elua ${SRCS})
if (BUILD_STATIC_LIB)
- add_dependencies(gtest_tsg_lua ${lib_name}_static gtest)
- target_link_libraries(gtest_tsg_lua ${lib_name}_static gtest gtest_main pthread)
+ add_dependencies(gtest_elua ${lib_name}_static gtest)
+ target_link_libraries(gtest_elua ${lib_name}_static gtest gtest_main pthread)
else()
- add_dependencies(gtest_tsg_lua ${lib_name}_shared gtest)
- target_link_libraries(gtest_tsg_lua ${lib_name}_shared gtest gtest_main pthread)
+ add_dependencies(gtest_elua ${lib_name}_shared gtest)
+ target_link_libraries(gtest_elua ${lib_name}_shared gtest gtest_main pthread)
endif()
-#target_link_libraries(gtest_tsg_lua tsglua gtest gtest_main pthread)
+#target_link_libraries(gtest_elua 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)
+add_test(NAME LUA_TEST COMMAND gtest_elua)
diff --git a/gtest/gtest_get_weixinnum.cpp b/gtest/gtest_get_weixinnum.cpp
index 1be9be2..630fa78 100644
--- a/gtest/gtest_get_weixinnum.cpp
+++ b/gtest/gtest_get_weixinnum.cpp
@@ -1,5 +1,5 @@
#include <gtest/gtest.h>
-#include "tsg_lua_interface.h"
+#include "elua.h"
static char *get_file_to_buffer(const char *file, int *len)
{
@@ -29,91 +29,51 @@ static char *get_file_to_buffer(const char *file, int *len)
return NULL;
}
-TEST(tsg_lua_get_weixinnum, exec_cache_script)
+TEST(elua_get_weixinnum, exec_cache_script)
{
- tsg_lua_handle L = NULL;
+ elua_vm *L = NULL;
int script_len;
int data_len;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
- memset(out, 0, 255);
+
+ char buff[1024];
+ struct elua_data output;
+ output.len = 1024;
+ output.type = STRING;
+ output.string = buff;
- L = tsg_lua_vm_create();
+ L = elua_create_vm(NULL);
const char *script = get_file_to_buffer("./script/handle_weixinnum.lua", &script_len);
- int script_id = tsg_lua_cache_script(L, script, script_len);
+ struct elua_script *escript = elua_cache_script(L, script, script_len, 0);
const char *data = get_file_to_buffer("./script/weixin_id_ios_20200423_004.pcap", &data_len);
- int ret = tsg_lua_cache_exec(L, script_id, data, data_len, out, &out_len, &out_type);
+ int ret = elua_execute_script(escript, data, data_len, NULL, NULL, &output);
free((void *)data);
free((void *)script);
EXPECT_EQ(0, ret);
- EXPECT_EQ(10, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("1955740780", out);
+ EXPECT_EQ(10, output.len);
+ EXPECT_EQ(STRING, output.type);
+ EXPECT_STREQ("1955740780", output.string);
}
-TEST(tsg_lua_get_weixinnum, exec_cache_file)
+TEST(elua_get_weixinnum, exec_cache_script_file)
{
- tsg_lua_handle L = NULL;
+ elua_vm *L = NULL;
int data_len;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- memset(out, 0, 255);
- L = tsg_lua_vm_create();
- int script_id = tsg_lua_cache_script_file(L, "./script/handle_weixinnum.lua");
- const char *data = get_file_to_buffer("./script/weixin_id_ios_20200423_004.pcap", &data_len);
- int ret = tsg_lua_cache_exec(L, script_id, data, data_len, out, &out_len, &out_type);
- free((void *)data);
-
- EXPECT_EQ(0, ret);
- EXPECT_EQ(10, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("1955740780", out);
-}
-
-TEST(tsg_lua_get_weixinnum, exec_script)
-{
- tsg_lua_handle L = NULL;
- int script_len;
- int data_len;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- memset(out, 0, 255);
- L = tsg_lua_vm_create();
- const char *script = get_file_to_buffer("./script/handle_weixinnum.lua", &script_len);
- const char *data = get_file_to_buffer("./script/weixin_id_ios_20200423_004.pcap", &data_len);
- int ret = tsg_lua_exec(L, script, script_len, data, data_len, out, &out_len, &out_type);
- free((void *)data);
- free((void *)script);
-
- EXPECT_EQ(0, ret);
- EXPECT_EQ(10, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("1955740780", out);
-}
-
-TEST(tsg_lua_get_weixinnum, exec_file)
-{
- tsg_lua_handle L = NULL;
- int data_len;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- memset(out, 0, 255);
- L = tsg_lua_vm_create();
- const char *script = "./script/handle_weixinnum.lua";
+
+ char buff[1024];
+ memset(buff, 0, 255);
+ struct elua_data output;
+ output.len = 1024;
+ output.type = STRING;
+ output.string = buff;
+ L = elua_create_vm(NULL);
+ struct elua_script *escript = elua_cache_script_file(L, "./script/handle_weixinnum.lua", 0);
const char *data = get_file_to_buffer("./script/weixin_id_ios_20200423_004.pcap", &data_len);
- int ret = tsg_lua_exec_file(L, script, data, data_len, out, &out_len, &out_type);
+ int ret = elua_execute_script(escript, data, data_len, NULL, NULL, &output);
free((void *)data);
EXPECT_EQ(0, ret);
- EXPECT_EQ(10, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("1955740780", out);
+ EXPECT_EQ(10, output.len);
+ EXPECT_EQ(STRING, output.type);
+ EXPECT_STREQ("1955740780", output.string);
} \ No newline at end of file
diff --git a/gtest/gtest_lua_remove_cmd.cpp b/gtest/gtest_lua_remove_cmd.cpp
index df0c5f1..2cc28df 100644
--- a/gtest/gtest_lua_remove_cmd.cpp
+++ b/gtest/gtest_lua_remove_cmd.cpp
@@ -1,17 +1,22 @@
#include <gtest/gtest.h>
-#include "tsg_lua_interface.h"
+#include "elua.h"
TEST(lua_remove_cmd, normal)
{
- tsg_lua_handle L = tsg_lua_vm_create_with_name("TEST");
+ elua_vm *L = elua_create_vm(NULL);
ASSERT_TRUE(L);
+ char buff[1024];
+ elua_data out;
+ out.type = STRING;
+ out.integer = 1024;
+ out.string = buff;
- lua_remove_cmd(L, "print");
+ elua_remove_function(L, "print");
- char out[1204];
- size_t len = 1024;
- size_t type = STRING;
- int ret = tsg_lua_exec_file(L, "./script/remove_print.lua", "remove print", strlen("remove print"), out, &len, &type);
- EXPECT_EQ(ret, ERR_SCRIPT_EXEC_ERROR);
-
+ struct elua_script *escript = elua_cache_script_file(L, "./script/remove_print.lua", 0);
+ int ret = elua_execute_script(escript, "remove print", strlen("remove print"), NULL, NULL, &out);
+ EXPECT_EQ(ret, -1);
+
+ const char *errmsg = "[elua_call_script:1074] [string \"./script/remove_print.lua\"]:3: attempt to call global \'print\' (a nil value).";
+ EXPECT_STREQ(elua_get_last_error_string(L), errmsg);
} \ No newline at end of file
diff --git a/gtest/gtest_lua_timeout.cpp b/gtest/gtest_lua_timeout.cpp
index 88dcd78..a5ecf9c 100644
--- a/gtest/gtest_lua_timeout.cpp
+++ b/gtest/gtest_lua_timeout.cpp
@@ -1,6 +1,6 @@
#include <gtest/gtest.h>
#include <time.h>
-#include "tsg_lua_interface.h"
+#include "elua.h"
static long mstime()
{
@@ -9,7 +9,7 @@ static long mstime()
return now.tv_sec * 1000 + now.tv_nsec/1000000;
}
-static int count_set(tsg_lua_handle L)
+static int count_set(elua_vm *L)
{
int num = 0;
for (int i = 0; i < 10000; i++)
@@ -19,91 +19,106 @@ static int count_set(tsg_lua_handle L)
num++;
}
}
- int *count = (int *)lua_get_userdata(L);
+ int *count = (int *)elua_get_execute_userdata(L);
*count = num;
return 0;
}
-TEST(lua_time_out, lua)
+TEST(elua_time_out, lua)
{
- tsg_lua_handle L = tsg_lua_vm_create_with_name("TEST");
+ elua_vm *L = elua_create_vm("TEST");
const char *ud = "hello world.";
- const char *script = "./script/lua_time_out.lua";
- lua_data_t in;
- in.data = (char *)"This is a test";
- in.len = strlen(in.data);
- lua_arg_t out;
+ const char *script = "./script/elua_time_out.lua";
+
+ char *buff= (char *)"This is a test";
+ int len = strlen(buff);
+ elua_data out;
out.type = STRING;
- out.len = 1024;
- out.str = (char *)calloc(1, 1024);
+ out.integer = 1024;
+ out.string = (char *)calloc(1, 1024);
long tt, elapsed;
+ int ret = 0;
+
+ struct elua_script *escript = elua_cache_script_file(L, script, 10);
- int ret = lua_exec_file(L, script, in, (void *)ud, NULL, 10, &out);
- EXPECT_EQ(ERR_SCRIPT_TIMEOUT, ret);
- bzero(out.str, 1024);
+ ret = elua_execute_script(escript, buff, len, (void *)ud, NULL, &out);
+ EXPECT_EQ(ret, -1);
+ EXPECT_STREQ(elua_get_last_error_string(L), "[elua_call_script:1074] Lua script killed by time out..");
+ bzero(out.string, 1024);
+ struct elua_script *escript0 = elua_cache_script_file(L, script, 0);
tt = mstime();
- ret = lua_exec_file(L, script, in, (void *)ud, NULL, 0, &out);
+ ret = elua_execute_script(escript0, buff, len, (void *)ud, NULL, &out);
elapsed = mstime() - tt;
EXPECT_EQ(0, ret);
EXPECT_LE(10, elapsed);
- EXPECT_EQ(in.len, out.len);
+ EXPECT_EQ(len, out.len);
EXPECT_EQ(STRING, out.type);
- EXPECT_STREQ(in.data, out.str);
- bzero(out.str, 1024);
+ EXPECT_STREQ(buff, out.string);
+ bzero(out.string, 1024);
- ret = lua_exec_file(L, script, in, (void *)ud, NULL, 10, &out);
- EXPECT_EQ(ERR_SCRIPT_TIMEOUT, ret);
- bzero(out.str, 1024);
+ ret = elua_execute_script(escript, buff, len, (void *)ud, NULL, &out);
+ EXPECT_EQ(ret, -1);
+ EXPECT_STREQ(elua_get_last_error_string(L), "[elua_call_script:1074] Lua script killed by time out..");
+ bzero(out.string, 1024);
- tsg_destory_lua(L);
- free(out.str);
+ elua_cleanup_script(escript);
+ elua_cleanup_script(escript0);
+ elua_destroy_vm(L);
+ free(out.string);
}
-TEST(lua_time_out, c)
+TEST(elua_time_out, c)
{
- tsg_lua_handle L = tsg_lua_vm_create_with_name("TEST");
+ elua_vm *L = elua_create_vm("TEST");
int count = 10;
const char *script = "./script/c_time_out.lua";
- lua_data_t in;
- in.data = (char *)"This is a test";
- in.len = strlen(in.data);
- lua_arg_t out;
+
+ char *buff= (char *)"This is a test";
+ int len = strlen(buff);
+
+ struct elua_data out;
out.type = STRING;
- out.len = 1024;
- out.str = (char *)calloc(1, 1024);
+ out.integer = 1024;
+ out.string = (char *)calloc(1, 1024);
long tt, elapsed;
- lua_register_function(L, NULL, "set_count", count_set);
+ elua_register_cbinding(L, NULL, "set_count", count_set);
+ struct elua_script *escript = elua_cache_script_file(L, script, 10);
tt = mstime();
- int ret = lua_exec_file(L, script, in, (void *)&count, NULL, 10, &out);
+ int ret = elua_execute_script(escript, buff, len, (void *)&count, NULL, &out);
elapsed = mstime() - tt;
- EXPECT_EQ(ERR_SCRIPT_TIMEOUT, ret);
+ EXPECT_EQ(-1, ret);
+ EXPECT_STREQ(elua_get_last_error_string(L), "[elua_call_script:1074] Lua script killed by time out..");
EXPECT_LE(10, elapsed);
EXPECT_EQ(10000000, count);
- bzero(out.str, 1024);
+ bzero(out.string, 1024);
+ struct elua_script *escript0 = elua_cache_script_file(L, script, 0);
tt = mstime();
- ret = lua_exec_file(L, script, in, (void *)&count, NULL, 0, &out);
+ ret = elua_execute_script(escript0, buff, len, (void *)&count, NULL, &out);
elapsed = mstime() - tt;
EXPECT_EQ(0, ret);
EXPECT_LE(10, elapsed);
- EXPECT_EQ(in.len, out.len);
+ EXPECT_EQ(len, out.len);
EXPECT_EQ(STRING, out.type);
- EXPECT_STREQ(in.data, out.str);
+ EXPECT_STREQ(buff, out.string);
EXPECT_EQ(10000000, count);
- bzero(out.str, 1024);
+ bzero(out.string, 1024);
tt = mstime();
- ret = lua_exec_file(L, script, in, (void *)&count, NULL, 10, &out);
+ ret = elua_execute_script(escript, buff, len, (void *)&count, NULL, &out);
elapsed = mstime() - tt;
- EXPECT_EQ(ERR_SCRIPT_TIMEOUT, ret);
+ EXPECT_EQ(-1, ret);
+ EXPECT_STREQ(elua_get_last_error_string(L), "[elua_call_script:1074] Lua script killed by time out..");
EXPECT_LE(10, elapsed);
EXPECT_EQ(10000000, count);
- bzero(out.str, 1024);
+ bzero(out.string, 1024);
- tsg_destory_lua(L);
- free(out.str);
+ elua_cleanup_script(escript0);
+ elua_cleanup_script(escript);
+ elua_destroy_vm(L);
+ free(out.string);
} \ No newline at end of file
diff --git a/gtest/gtest_tsg_destory_lua.cpp b/gtest/gtest_tsg_destory_lua.cpp
index 026e497..027cfa0 100644
--- a/gtest/gtest_tsg_destory_lua.cpp
+++ b/gtest/gtest_tsg_destory_lua.cpp
@@ -1,26 +1,27 @@
/*************************************************************************
- > File Name: gtest_tsg_lua_vm_create.cpp
+ > File Name: gtest_elua_create_vm.cpp
> Author: pxz
> Created Time: Sun 19 Jul 2020 01:27:13 PM CST
************************************************************************/
#include <gtest/gtest.h>
-#include "tsg_lua_interface.h"
+#include "elua.h"
-/* tsg_destory_lua */
-TEST(tsg_destory_lua, normal)
+/* elua_destroy_vm */
+TEST(elua_destroy_vm, normal)
{
- tsg_lua_handle L = NULL;
- L = tsg_lua_vm_create();
- int ret = tsg_destory_lua(L);
+ elua_vm *L = NULL;
+ L = elua_create_vm(NULL);
+ int ret = elua_destroy_vm(L);
EXPECT_EQ(0, ret);
}
-TEST(tsg_destory_lua, lua_vm_isnull)
+TEST(elua_destroy_vm, lua_vm_isnull)
{
- tsg_lua_handle L = NULL;
+ elua_vm *L = NULL;
- int ret = tsg_destory_lua(L);
+ int ret = elua_destroy_vm(L);
- EXPECT_EQ(ERR_LUAVM_ISNULL, ret);
+ EXPECT_EQ(-1, ret);
+ EXPECT_STREQ(elua_get_last_error_string(L), "The vm is invalid.");
}
diff --git a/gtest/gtest_tsg_lua_cache_exec.cpp b/gtest/gtest_tsg_lua_cache_exec.cpp
index 9907fc5..ed1099c 100644
--- a/gtest/gtest_tsg_lua_cache_exec.cpp
+++ b/gtest/gtest_tsg_lua_cache_exec.cpp
@@ -1,328 +1,298 @@
/*************************************************************************
- > File Name: gtest_tsg_lua_cache_exec.cpp
+ > File Name: gtest_elua_execute_script.cpp
> Author: pxz
> Created Time: Sun 19 Jul 2020 01:28:20 PM CST
************************************************************************/
#include <gtest/gtest.h>
-#include "tsg_lua_interface.h"
+#include "elua.h"
static const char *data = "hello world";
-/* tsg_lua_cache_exec */
-TEST(tsg_lua_cache_exec, normal_return_string)
+/* elua_execute_script */
+TEST(elua_execute_script, normal_return_string)
{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
+ elua_vm *L = NULL;
- L = tsg_lua_vm_create();
+ L = elua_create_vm(NULL);
const char *script = "./script/return_string_normal.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);
+
+ int len = strlen(data);
+ struct elua_data out;
+ char buff[1024];
+ out.type = STRING;
+ out.integer = 1204;
+ out.string = buff;
+
+ struct elua_script *escript = elua_cache_script_file(L, script, 0);
+ int ret = elua_execute_script(escript, data, len, NULL, NULL, &out);
/* check */
EXPECT_EQ(0, ret);
- EXPECT_EQ(11, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("hello world", out);
+ EXPECT_EQ(11, out.len);
+ EXPECT_EQ(STRING, out.type);
+ EXPECT_STREQ("hello world", out.string);
}
-TEST(tsg_lua_cache_exec, normal_return_boolean)
+TEST(elua_execute_script, normal_return_boolean)
{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = BOOLEAN;
- L = tsg_lua_vm_create();
+ elua_vm *L = NULL;
+ L = elua_create_vm(NULL);
const char *script = "./script/return_boolean_normal.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);
+
+ struct elua_data out;
+
+ char *buff = (char *)data;
+ int len = strlen(data);
+ out.type = BOOLEAN;
+
+ struct elua_script *escript = elua_cache_script_file(L, script, 0);
+ int ret = elua_execute_script(escript, buff, len, NULL, NULL, &out);
/* check */
EXPECT_EQ(0, ret);
- EXPECT_EQ(1, out_len);
- EXPECT_EQ(BOOLEAN, out_type);
- EXPECT_EQ(true, out[0]);
+ EXPECT_EQ(4, out.len);
+ EXPECT_EQ(BOOLEAN, out.type);
+ EXPECT_EQ(true, out.true_or_false);
}
-TEST(tsg_lua_cache_exec, normal_return_integer)
+TEST(elua_execute_script, normal_return_integer)
{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = INTEGER;
- L = tsg_lua_vm_create();
+ elua_vm *L = NULL;
+ L = elua_create_vm(NULL);
const char *script = "./script/return_integer_normal.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);
+
+ struct elua_data out;
+
+ char *buff = (char *)data;
+ int len = strlen(data);
+ out.type = INTEGER;
+
+ struct elua_script *escript = elua_cache_script_file(L, script, 0);
+ int ret = elua_execute_script(escript, buff, len, NULL, NULL, &out);
/* check */
EXPECT_EQ(0, ret);
- EXPECT_EQ(8, out_len);
- EXPECT_EQ(INTEGER, out_type);
- EXPECT_EQ(7, *(long int *)out);
+ EXPECT_EQ(8, out.len);
+ EXPECT_EQ(INTEGER, out.type);
+ EXPECT_EQ(7, out.integer);
}
-TEST(tsg_lua_cache_exec, lua_vm_isnull)
+TEST(elua_execute_script, lua_vm_isnull)
{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
+ elua_vm *L = NULL;
- L = tsg_lua_vm_create();
+ L = elua_create_vm(NULL);
const char *script = "./script/return_string_normal.lua";
- memset(out, 0, sizeof(out));
- int script_id = tsg_lua_cache_script_file(L, script);
+ struct elua_script *escript = elua_cache_script_file(L, script, 0);
L = NULL;
- int ret = tsg_lua_cache_exec(L, script_id, data, strlen(data), out, &out_len, &out_type);
+
+ struct elua_data out;
+
+ char *buff = (char *)data;
+ int len = strlen(data);
+ out.type = INTEGER;
+ int ret = elua_execute_script(escript, buff, len, NULL, NULL, &out);
/* check */
- EXPECT_EQ(ERR_LUAVM_ISNULL, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
+ EXPECT_EQ(-1, ret);
+ EXPECT_STREQ("The vm is invalid.", elua_get_last_error_string(L));
}
-TEST(tsg_lua_cache_exec, script_id_invaild)
+TEST(elua_execute_script, script_id_invaild)
{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
- L = tsg_lua_vm_create();
- memset(out, 0, 255);
- int script_id = 0;
- int ret = tsg_lua_cache_exec(L, script_id, data, strlen(data), out, &out_len, &out_type);
+ elua_vm *L = NULL;
+ L = elua_create_vm(NULL);
+ struct elua_script *escript = 0;
+
+ struct elua_data out;
+
+ char *buff = (char *)data;
+ int len = strlen(data);
+ out.type = INTEGER;
+ int ret = elua_execute_script(escript, buff, len, NULL, NULL, &out);
/* check */
- EXPECT_EQ(ERR_SCRIPT_ID_INVAILD, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
+ EXPECT_EQ(-1, ret);
+ EXPECT_STREQ(elua_get_last_error_string(L), "");
}
-TEST(tsg_lua_cache_exec, input_isnull)
+TEST(elua_execute_script, input_isnull)
{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
- char *input = NULL;
+ elua_vm *L = NULL;
- L = tsg_lua_vm_create();
+ L = elua_create_vm(NULL);
const char *script = "./script/return_string_normal.lua";
- memset(out, 0, 255);
- int script_id = tsg_lua_cache_script_file(L, script);
- int ret = tsg_lua_cache_exec(L, script_id, input, strlen(data), out, &out_len, &out_type);
+ struct elua_script *escript = elua_cache_script_file(L, script, 0);
+ struct elua_data out;
+ out.type = INTEGER;
+ int ret = elua_execute_script(escript, NULL, strlen(data), NULL, NULL, &out);
/* check */
- EXPECT_EQ(ERR_INPUT_ISNULL, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
+ EXPECT_EQ(-1, ret);
+ EXPECT_STREQ(elua_get_last_error_string(L), "[elua_execute_script:1168] input or input_len is invaild.");
}
-TEST(tsg_lua_cache_exec, in_len_invaild)
+TEST(elua_execute_script, in_len_invaild)
{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
+ elua_vm *L = NULL;
- L = tsg_lua_vm_create();
+ L = elua_create_vm(NULL);
const char *script = "./script/return_string_normal.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, 0, out, &out_len, &out_type);
+ struct elua_script *escript = elua_cache_script_file(L, script, 0);
+
+
+ struct elua_data out;
+
+ char *buff = (char *)data;
+ int len = 0;
+ out.type = INTEGER;
+ int ret = elua_execute_script(escript, buff, len, NULL, NULL, &out);
/* check */
- EXPECT_EQ(ERR_IN_LEN_INVAILD, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
+ EXPECT_EQ(-1, ret);
+ EXPECT_STREQ(elua_get_last_error_string(L), "[elua_execute_script:1168] input or input_len is invaild.");
}
-TEST(tsg_lua_cache_exec, string_expected_but_nil)
+TEST(elua_execute_script, string_expected_but_nil)
{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
+ elua_vm *L = NULL;
- L = tsg_lua_vm_create();
+ L = elua_create_vm(NULL);
const char *script = "./script/string_expected_but_nil.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);
+ struct elua_script *escript = elua_cache_script_file(L, script, 0);
+
+
+ struct elua_data out;
+
+ char *buff = (char *)data;
+ int len = strlen(data);
+ out.type = INTEGER;
+ int ret = elua_execute_script(escript, buff, len, NULL, NULL, &out);
/* check */
- EXPECT_EQ(ERR_SCRIPT_STRING_EXPECTED_BUT_NIL, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
+ EXPECT_EQ(-1, ret);
+ EXPECT_STREQ(elua_get_last_error_string(L), "[elua_call_script:1074] [string \"./script/string_expected_but_nil.lua\"]:1: bad argument #1 to 'len' (string expected, got nil).");
}
-TEST(tsg_lua_cache_exec, string_expected_but_boolean)
+TEST(elua_execute_script, string_expected_but_boolean)
{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
+ elua_vm *L = NULL;
- L = tsg_lua_vm_create();
+ L = elua_create_vm(NULL);
const char *script = "./script/string_expected_but_boolean.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);
+ struct elua_script *escript = elua_cache_script_file(L, script, 0);
+
+ struct elua_data out;
+
+ char *buff = (char *)data;
+ int len = strlen(data);
+ out.type = INTEGER;
+ int ret = elua_execute_script(escript, buff, len, NULL, NULL, &out);
/* check */
- EXPECT_EQ(ERR_SCRIPT_STRING_EXPECTED_BUT_BOOL, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
+ EXPECT_EQ(-1, ret);
+ EXPECT_STREQ(elua_get_last_error_string(L), "[elua_call_script:1074] [string \"./script/string_expected_but_boolean.lua\"]:2: bad argument #1 to 'len' (string expected, got boolean).");
}
-TEST(tsg_lua_cache_exec, call_global_but_nil)
+TEST(elua_execute_script, call_global_but_nil)
{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
+ elua_vm *L = NULL;
- L = tsg_lua_vm_create();
+ L = elua_create_vm(NULL);
const char *script = "./script/call_global_but_nil.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);
+ struct elua_script *escript = elua_cache_script_file(L, script, 0);
+
+ struct elua_data out;
+
+ char *buff = (char *)data;
+ int len = strlen(data);
+ out.type = INTEGER;
+ int ret = elua_execute_script(escript, buff, len, NULL, NULL, &out);
/* check */
- EXPECT_EQ(ERR_SCRIPT_CALL_GLOBAL_BUT_NIL, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
+ EXPECT_EQ(-1, ret);
+ EXPECT_STREQ(elua_get_last_error_string(L), "[elua_call_script:1074] [string \"./script/call_global_but_nil.lua\"]:1: attempt to call global 'tablefunc' (a nil value).");
}
-// TEST(tsg_lua_cache_exec, return_too_few)
-// {
-// tsg_lua_handle L = NULL;
-// char out[255];
-// size_t out_len = 0;
-// size_t out_type = STRING;
-
-// L = tsg_lua_vm_create();
-// const char *script = "./script/return_too_few.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(ERR_SCRIPT_RETURN_TOO_FEW, ret);
-// EXPECT_EQ(0, out_len);
-// EXPECT_EQ(STRING, out_type);
-// EXPECT_STREQ("", out);
-// }
-
-TEST(tsg_lua_cache_exec, return_too_much)
+TEST(elua_execute_script, return_too_much)
{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
+ elua_vm *L = NULL;
- L = tsg_lua_vm_create();
+ L = elua_create_vm(NULL);
const char *script = "./script/return_too_much.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(ERR_SCRIPT_RETURN_TOO_MUCH, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
+ struct elua_script *escript = elua_cache_script_file(L, script, 0);
+
+ struct elua_data out;
-TEST(tsg_lua_cache_exec, return_type_nil)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = "./script/return_type_invaild.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);
+ char *buff = (char *)data;
+ int len = strlen(data);
+ out.type = INTEGER;
+ int ret = elua_execute_script(escript, buff, len, NULL, NULL, &out);
/* check */
- EXPECT_EQ(ERR_RETUNR_NIL, ret);
- EXPECT_EQ(5, out_len);
- EXPECT_EQ(NIL, out_type);
- EXPECT_STREQ("", out);
+ EXPECT_EQ(-1, ret);
+ EXPECT_STREQ(elua_get_last_error_string(L), "[elua_vm_return_value:1107] the script return too many values, the num of value is 3, 5.");
}
-TEST(tsg_lua_cache_exec, return_length_iszero)
+TEST(elua_execute_script, return_length_iszero)
{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
+ elua_vm *L = NULL;
- L = tsg_lua_vm_create();
+ L = elua_create_vm(NULL);
const char *script = "./script/return_length_iszero.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);
+ struct elua_script *escript = elua_cache_script_file(L, script, 0);
+
+ struct elua_data out;
+
+ char *buff = (char *)data;
+ int len = strlen(data);
+ out.type = INTEGER;
+ int ret = elua_execute_script(escript, buff, len, NULL, NULL, &out);
/* check */
- EXPECT_EQ(ERR_SCRIPT_RETURN_LEN_INVAILD, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
+ EXPECT_EQ(-1, ret);
+ EXPECT_STREQ(elua_get_last_error_string(L), "[elua_vm_return_value:1101] script out_len is 0.");
}
-TEST(tsg_lua_cache_exec, string_expected_but_table)
+TEST(elua_execute_script, string_expected_but_table)
{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
+ elua_vm *L = NULL;
- L = tsg_lua_vm_create();
+ L = elua_create_vm(NULL);
const char *script = "./script/string_expected_but_table.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);
+ struct elua_script *escript = elua_cache_script_file(L, script, 0);
+
+ struct elua_data out;
+
+ char *buff = (char *)data;
+ int len = strlen(data);
+ out.type = INTEGER;
+ int ret = elua_execute_script(escript, buff, len, NULL, NULL, &out);
/* check */
- EXPECT_EQ(ERR_SCRIPT_STRING_EXPECTED_BUT_TABLE, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
+ EXPECT_EQ(-1, ret);
+ EXPECT_STREQ(elua_get_last_error_string(L), "[elua_call_script:1074] [string \"./script/string_expected_but_table.lua\"]:2: bad argument #1 to 'len' (string expected, got table).");
}
-TEST(tsg_lua_cache_exec, normal_return_string_sharp)
+TEST(elua_execute_script, normal_return_string_sharp)
{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
+ elua_vm *L = NULL;
- L = tsg_lua_vm_create();
+ L = elua_create_vm(NULL);
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);
+ struct elua_script *escript = elua_cache_script_file(L, script, 0);
+
+ struct elua_data out;
+ out.type = STRING;
+ out.len = 1024;
+ char buff[1024];
+ out.string = buff;
+
+ int len = strlen(data);
+ int ret = elua_execute_script(escript, data, len, NULL, NULL, &out);
/* check */
EXPECT_EQ(0, ret);
- EXPECT_EQ(11, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("hello world", out);
+ EXPECT_EQ(len, out.len);
+ EXPECT_STREQ(data, out.string);
} \ 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 ae3590e..d8b7204 100644
--- a/gtest/gtest_tsg_lua_cache_script.cpp
+++ b/gtest/gtest_tsg_lua_cache_script.cpp
@@ -1,10 +1,10 @@
/*************************************************************************
- > File Name: gtest_tsg_lua_cache_script.cpp
+ > File Name: gtest_elua_cache_script.cpp
> Author: pxz
> Created Time: Sun 19 Jul 2020 01:28:20 PM CST
************************************************************************/
#include <gtest/gtest.h>
-#include "tsg_lua_interface.h"
+#include "elua.h"
static size_t script_len;
static char buffer[4096];
@@ -25,157 +25,169 @@ static char *get_script_buffer(const char *script)
}
return NULL;
}
-/* tsg_lua_cache_script */
-TEST(tsg_lua_cache_script, normal)
+/* elua_cache_script */
+TEST(elua_cache_script, normal)
{
- tsg_lua_handle L = NULL;
+ elua_vm *L = NULL;
- L = tsg_lua_vm_create();
+ L = elua_create_vm(NULL);
const char *script = get_script_buffer("./script/return_string_normal.lua");
- int script_id = tsg_lua_cache_script(L, script, script_len);
+ struct elua_script *escript = elua_cache_script(L, script, script_len, 0);
/* check */
- EXPECT_EQ(1, script_id);
+ EXPECT_NE((void *)NULL, escript);
}
-TEST(tsg_lua_cache_script, lua_vm_isnull)
+TEST(elua_cache_script, lua_vm_isnull)
{
- tsg_lua_handle L = NULL;
+ elua_vm *L = NULL;
const char *script = get_script_buffer("./script/return_string_normal.lua");
- int script_id = tsg_lua_cache_script(L, script, script_len);
+ struct elua_script *escript = elua_cache_script(L, script, script_len, 0);
/* check */
- EXPECT_EQ(ERR_LUAVM_ISNULL, script_id);
+ EXPECT_EQ((void *)NULL, escript);
+ EXPECT_STREQ(elua_get_last_error_string(L), "The vm is invalid.");
}
-TEST(tsg_lua_cache_script, script_isnull)
+TEST(elua_cache_script, script_isnull)
{
- tsg_lua_handle L = NULL;
+ elua_vm *L = NULL;
- L = tsg_lua_vm_create();
+ L = elua_create_vm(NULL);
const char *script = NULL;
- int script_id = tsg_lua_cache_script(L, script, script_len);
+ struct elua_script *escript = elua_cache_script(L, script, script_len, 0);
/* check */
- EXPECT_EQ(ERR_SCRIPT_ISNULL, script_id);
+ EXPECT_EQ((void *)NULL, escript);
+ EXPECT_STREQ(elua_get_last_error_string(L), "[elua_cache_script:703] Parameter error.");
}
-TEST(tsg_lua_cache_script, do_expected)
+TEST(elua_cache_script, do_expected)
{
- tsg_lua_handle L = NULL;
+ elua_vm *L = NULL;
- L = tsg_lua_vm_create();
+ L = elua_create_vm(NULL);
const char *script = get_script_buffer("./script/do_expected.lua");
- int script_id = tsg_lua_cache_script(L, script, script_len);
+ struct elua_script *escript = elua_cache_script(L, script, script_len, 0);
/* check */
- EXPECT_EQ(ERR_SCRIPT_DO_EXPECTED, script_id);
+ EXPECT_EQ((void *)NULL, escript);
+ EXPECT_STREQ(elua_get_last_error_string(L), "[elua_load_buff:667] [string \"string\"]:3: 'do' expected near 'return'.");
}
-TEST(tsg_lua_cache_script, then_expected)
+TEST(elua_cache_script, then_expected)
{
- tsg_lua_handle L = NULL;
+ elua_vm *L = NULL;
- L = tsg_lua_vm_create();
+ L = elua_create_vm(NULL);
const char *script = get_script_buffer("./script/then_expected.lua");
- int script_id = tsg_lua_cache_script(L, script, script_len);
+ struct elua_script *escript = elua_cache_script(L, script, script_len, 0);
/* check */
- EXPECT_EQ(ERR_SCRIPT_THEN_EXPECTED, script_id);
+ EXPECT_EQ((void *)NULL, escript);
+ EXPECT_STREQ(elua_get_last_error_string(L), "[elua_load_buff:667] [string \"string\"]:2: 'then' expected near 'str'.");
}
-TEST(tsg_lua_cache_script, end_expected)
+TEST(elua_cache_script, end_expected)
{
- tsg_lua_handle L = NULL;
+ elua_vm *L = NULL;
- L = tsg_lua_vm_create();
+ L = elua_create_vm(NULL);
const char *script = get_script_buffer("./script/end_expected.lua");
- int script_id = tsg_lua_cache_script(L, script, script_len);
+ struct elua_script *escript = elua_cache_script(L, script, script_len, 0);
/* check */
- EXPECT_EQ(ERR_SCRIPT_END_EXPECTED, script_id);
+ EXPECT_EQ((void *)NULL, escript);
+ EXPECT_STREQ(elua_get_last_error_string(L), "[elua_load_buff:667] [string \"string\"]:4: 'end' expected (to close 'function' at line 1) near '<eof>'.");
}
-TEST(tsg_lua_cache_script, eof_expected)
+TEST(elua_cache_script, eof_expected)
{
- tsg_lua_handle L = NULL;
+ elua_vm *L = NULL;
- L = tsg_lua_vm_create();
+ L = elua_create_vm(NULL);
const char *script = get_script_buffer("./script/eof_expected.lua");
- int script_id = tsg_lua_cache_script(L, script, script_len);
+ struct elua_script *escript = elua_cache_script(L, script, script_len, 0);
/* check */
- EXPECT_EQ(ERR_SCRIPT_EOF_EXPECTED, script_id);
+ EXPECT_EQ((void *)NULL, escript);
+ EXPECT_STREQ(elua_get_last_error_string(L), "[elua_load_buff:667] [string \"string\"]:5: '<eof>' expected near 'end'.");
}
-TEST(tsg_lua_cache_script, equal_in_expected)
+TEST(elua_cache_script, equal_in_expected)
{
- tsg_lua_handle L = NULL;
+ elua_vm *L = NULL;
- L = tsg_lua_vm_create();
+ L = elua_create_vm(NULL);
const char *script = get_script_buffer("./script/equal_in_expected.lua");
- int script_id = tsg_lua_cache_script(L, script, script_len);
+ struct elua_script *escript = elua_cache_script(L, script, script_len, 0);
/* check */
- EXPECT_EQ(ERR_SCRIPT_EQUAL_IN_EXPECTED, script_id);
+ EXPECT_EQ((void *)NULL, escript);
+ EXPECT_STREQ(elua_get_last_error_string(L), "[elua_load_buff:667] [string \"string\"]:3: '=' or 'in' expected near 'return'.");
}
-TEST(tsg_lua_cache_script, unexpected_symbol)
+TEST(elua_cache_script, unexpected_symbol)
{
- tsg_lua_handle L = NULL;
+ elua_vm *L = NULL;
- L = tsg_lua_vm_create();
+ L = elua_create_vm(NULL);
const char *script = get_script_buffer("./script/unexpected_symbol.lua");
- int script_id = tsg_lua_cache_script(L, script, script_len);
+ struct elua_script *escript = elua_cache_script(L, script, script_len, 0);
/* check */
- EXPECT_EQ(ERR_SCRIPT_UNEXPECTED_SYMBOL, script_id);
+ EXPECT_EQ((void *)NULL, escript);
+ EXPECT_STREQ(elua_get_last_error_string(L), "[elua_load_buff:667] [string \"string\"]:1: unexpected symbol near '-'.");
}
-TEST(tsg_lua_cache_script, name_expected)
+TEST(elua_cache_script, name_expected)
{
- tsg_lua_handle L = NULL;
+ elua_vm *L = NULL;
- L = tsg_lua_vm_create();
+ L = elua_create_vm(NULL);
const char *script = get_script_buffer("./script/name_expected.lua");
- int ret = tsg_lua_cache_script(L, script, script_len);
+ struct elua_script *escript = elua_cache_script(L, script, script_len, 0);
/* check */
- EXPECT_EQ(ERR_SCRIPT_NAME_EXPECTED, ret);
+ EXPECT_EQ((void *)NULL, escript);
+ EXPECT_STREQ(elua_get_last_error_string(L), "[elua_load_buff:667] [string \"string\"]:2: '<name>' expected near 'do'.");
}
-TEST(tsg_lua_cache_script, right_curves_bracket_expected)
+TEST(elua_cache_script, right_curves_bracket_expected)
{
- tsg_lua_handle L = NULL;
+ elua_vm *L = NULL;
- L = tsg_lua_vm_create();
+ L = elua_create_vm(NULL);
const char *script = get_script_buffer("./script/right_curves_bracket_expected.lua");
- int ret = tsg_lua_cache_script(L, script, script_len);
+ struct elua_script *escript = elua_cache_script(L, script, script_len, 0);
/* check */
- EXPECT_EQ(ERR_SCRIPT_RIGHT_CURVES_BRACKET_EXPECTED, ret);
+ EXPECT_EQ((void *)NULL, escript);
+ EXPECT_STREQ(elua_get_last_error_string(L), "[elua_load_buff:667] [string \"string\"]:2: ')' expected (to close '(' at line 1) near 'return'.");
}
-TEST(tsg_lua_cache_script, right_curly_bracket_expected)
+TEST(elua_cache_script, right_curly_bracket_expected)
{
- tsg_lua_handle L = NULL;
+ elua_vm *L = NULL;
- L = tsg_lua_vm_create();
+ L = elua_create_vm(NULL);
const char *script = get_script_buffer("./script/right_curly_bracket_expected.lua");
- int ret = tsg_lua_cache_script(L, script, script_len);
+ struct elua_script *escript = elua_cache_script(L, script, script_len, 0);
/* check */
- EXPECT_EQ(ERR_SCRIPT_RIGHT_CURLY_BRACKET_EXPECTED, ret);
+ EXPECT_EQ((void *)NULL, escript);
+ EXPECT_STREQ(elua_get_last_error_string(L), "[elua_load_buff:667] [string \"string\"]:3: '}' expected near ')'.");
}
-TEST(tsg_lua_cache_script, return_string_normal_sharp)
+TEST(elua_cache_script, return_string_normal_sharp)
{
- tsg_lua_handle L = NULL;
+ elua_vm *L = NULL;
- L = tsg_lua_vm_create();
+ L = elua_create_vm(NULL);
const char *script = get_script_buffer("./script/return_string_normal_sharp.lua");
- int script_id = tsg_lua_cache_script(L, script, script_len);
+ struct elua_script *escript = elua_cache_script(L, script, script_len, 0);
/* check */
- EXPECT_EQ(1, script_id);
+ EXPECT_NE((void *)NULL, escript);
+ EXPECT_STREQ(elua_get_last_error_string(L), "");
} \ 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 0abf7a3..b09487d 100644
--- a/gtest/gtest_tsg_lua_cache_script_bytecode_file.cpp
+++ b/gtest/gtest_tsg_lua_cache_script_bytecode_file.cpp
@@ -1,43 +1,45 @@
/*************************************************************************
- > File Name: gtest_tsg_lua_cache_script_file.cpp
+ > File Name: gtest_elua_cache_script_file.cpp
> Author: pxz
> Created Time: Sun 19 Jul 2020 01:28:20 PM CST
************************************************************************/
#include <gtest/gtest.h>
-#include "tsg_lua_interface.h"
+#include "elua.h"
-/* tsg_lua_cache_script_file */
-TEST(tsg_lua_cache_script_bytecode_file, normal)
+/* elua_cache_script_file */
+TEST(elua_cache_script_bytecode_file, normal)
{
- tsg_lua_handle L = NULL;
+ elua_vm *L = NULL;
- L = tsg_lua_vm_create();
+ L = elua_create_vm(NULL);
const char *script = "./script/return_string_normal.luajit";
- int script_id = tsg_lua_cache_script_file(L, script);
+ struct elua_script *escript = elua_cache_script_file(L, script, 0);
/* check */
- EXPECT_EQ(1, script_id);
+ EXPECT_NE((void *)NULL, escript);
}
-TEST(tsg_lua_cache_script_bytecode_file, lua_vm_isnull)
+TEST(elua_cache_script_bytecode_file, lua_vm_isnull)
{
- tsg_lua_handle L = NULL;
+ elua_vm *L = NULL;
const char *script = "./script/return_string_normal.luajit";
- int script_id = tsg_lua_cache_script_file(L, script);
+ struct elua_script *escript = elua_cache_script_file(L, script, 0);
/* check */
- EXPECT_EQ(ERR_LUAVM_ISNULL, script_id);
+ EXPECT_EQ(NULL, escript);
+ EXPECT_STREQ(elua_get_last_error_string(L), "The vm is invalid.");
}
-TEST(tsg_lua_cache_script_bytecode_file, script_isnull)
+TEST(elua_cache_script_bytecode_file, script_isnull)
{
- tsg_lua_handle L = NULL;
+ elua_vm *L = NULL;
- L = tsg_lua_vm_create();
+ L = elua_create_vm(NULL);
const char *script = NULL;
- int script_id = tsg_lua_cache_script_file(L, script);
+ struct elua_script *escript = elua_cache_script_file(L, script, 0);
/* check */
- EXPECT_EQ(ERR_SCRIPT_ISNULL, script_id);
+ EXPECT_EQ(NULL, escript);
+ EXPECT_STREQ(elua_get_last_error_string(L), "[elua_cache_script_file:765] Parameter error.");
}
diff --git a/gtest/gtest_tsg_lua_cache_script_file.cpp b/gtest/gtest_tsg_lua_cache_script_file.cpp
index 4b57b98..24b4d99 100644
--- a/gtest/gtest_tsg_lua_cache_script_file.cpp
+++ b/gtest/gtest_tsg_lua_cache_script_file.cpp
@@ -1,175 +1,174 @@
/*************************************************************************
- > File Name: gtest_tsg_lua_cache_script_file.cpp
+ > File Name: gtest_elua_cache_script_file.cpp
> Author: pxz
> Created Time: Sun 19 Jul 2020 01:28:20 PM CST
************************************************************************/
#include <gtest/gtest.h>
-#include "tsg_lua_interface.h"
+#include "elua.h"
-/* tsg_lua_cache_script_file */
-TEST(tsg_lua_cache_script_file, normal)
+/* elua_cache_script_file */
+TEST(elua_cache_script_file, normal)
{
- tsg_lua_handle L = NULL;
+ elua_vm *L = NULL;
- L = tsg_lua_vm_create();
+ L = elua_create_vm(NULL);
const char *script = "./script/return_string_normal.lua";
- int script_id = tsg_lua_cache_script_file(L, script);
+ struct elua_script *escript = elua_cache_script_file(L, script, 0);
/* check */
- EXPECT_EQ(1, script_id);
+ EXPECT_NE((void *)NULL, escript);
}
-TEST(tsg_lua_cache_script_file, lua_vm_isnull)
+TEST(elua_cache_script_file, lua_vm_isnull)
{
- tsg_lua_handle L = NULL;
+ elua_vm *L = NULL;
const char *script = "./script/return_string_normal.lua";
- int script_id = tsg_lua_cache_script_file(L, script);
+ struct elua_script *escript = elua_cache_script_file(L, script, 0);
/* check */
- EXPECT_EQ(ERR_LUAVM_ISNULL, script_id);
+ EXPECT_EQ((void *)NULL, escript);
+ EXPECT_STREQ(elua_get_last_error_string(L), "The vm is invalid.");
}
-TEST(tsg_lua_cache_script_file, script_isnull)
+TEST(elua_cache_script_file, script_isnull)
{
- tsg_lua_handle L = NULL;
+ elua_vm *L = NULL;
- L = tsg_lua_vm_create();
+ L = elua_create_vm(NULL);
const char *script = NULL;
- int script_id = tsg_lua_cache_script_file(L, script);
+ struct elua_script *escript = elua_cache_script_file(L, script, 0);
/* check */
- EXPECT_EQ(ERR_SCRIPT_ISNULL, script_id);
+ EXPECT_EQ((void *)NULL, escript);
+ EXPECT_STREQ(elua_get_last_error_string(L), "[elua_cache_script_file:765] Parameter error.");
}
-#if 0
-TEST(tsg_lua_cache_script_file, function_invaild)
-{
- tsg_lua_handle L = NULL;
- L = tsg_lua_vm_create();
- const char *script = "./script/function_invaild.lua";
- int script_id = tsg_lua_cache_script_file(L, script);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_FUNCTION_INVAILD, script_id);
-}
-#endif
-TEST(tsg_lua_cache_script_file, do_expected)
+TEST(elua_cache_script_file, do_expected)
{
- tsg_lua_handle L = NULL;
+ elua_vm *L = NULL;
- L = tsg_lua_vm_create();
+ L = elua_create_vm(NULL);
const char *script = "./script/do_expected.lua";
- int script_id = tsg_lua_cache_script_file(L, script);
+ struct elua_script *escript = elua_cache_script_file(L, script, 0);
/* check */
- EXPECT_EQ(ERR_SCRIPT_DO_EXPECTED, script_id);
+ EXPECT_EQ((void *)NULL, escript);
+ EXPECT_STREQ(elua_get_last_error_string(L), "[elua_cache_script_file:844] [string \"./script/do_expected.lua\"]:3: 'do' expected near 'return'.");
}
-TEST(tsg_lua_cache_script_file, then_expected)
+TEST(elua_cache_script_file, then_expected)
{
- tsg_lua_handle L = NULL;
+ elua_vm *L = NULL;
- L = tsg_lua_vm_create();
+ L = elua_create_vm(NULL);
const char *script = "./script/then_expected.lua";
- int script_id = tsg_lua_cache_script_file(L, script);
+ struct elua_script *escript = elua_cache_script_file(L, script, 0);
/* check */
- EXPECT_EQ(ERR_SCRIPT_THEN_EXPECTED, script_id);
+ EXPECT_EQ((void *)NULL, escript);
+ EXPECT_STREQ(elua_get_last_error_string(L), "[elua_cache_script_file:844] [string \"./script/then_expected.lua\"]:2: 'then' expected near 'str'.");
}
-TEST(tsg_lua_cache_script_file, end_expected)
+TEST(elua_cache_script_file, end_expected)
{
- tsg_lua_handle L = NULL;
+ elua_vm *L = NULL;
- L = tsg_lua_vm_create();
+ L = elua_create_vm(NULL);
const char *script = "./script/end_expected.lua";
- int script_id = tsg_lua_cache_script_file(L, script);
+ struct elua_script *escript = elua_cache_script_file(L, script, 0);
/* check */
- EXPECT_EQ(ERR_SCRIPT_END_EXPECTED, script_id);
+ EXPECT_EQ((void *)NULL, escript);
+ EXPECT_STREQ(elua_get_last_error_string(L), "[elua_cache_script_file:844] [string \"./script/end_expected.lua\"]:5: 'end' expected (to close 'function' at line 1) near '<eof>'.");
}
-TEST(tsg_lua_cache_script_file, eof_expected)
+TEST(elua_cache_script_file, eof_expected)
{
- tsg_lua_handle L = NULL;
+ elua_vm *L = NULL;
- L = tsg_lua_vm_create();
+ L = elua_create_vm(NULL);
const char *script = "./script/eof_expected.lua";
- int script_id = tsg_lua_cache_script_file(L, script);
+ struct elua_script *escript = elua_cache_script_file(L, script, 0);
/* check */
- EXPECT_EQ(ERR_SCRIPT_EOF_EXPECTED, script_id);
+ EXPECT_EQ((void *)NULL, escript);
+ EXPECT_STREQ(elua_get_last_error_string(L), "[elua_cache_script_file:844] [string \"./script/eof_expected.lua\"]:6: '<eof>' expected near 'end'.");
}
-TEST(tsg_lua_cache_script_file, equal_in_expected)
+TEST(elua_cache_script_file, equal_in_expected)
{
- tsg_lua_handle L = NULL;
+ elua_vm *L = NULL;
- L = tsg_lua_vm_create();
+ L = elua_create_vm(NULL);
const char *script = "./script/equal_in_expected.lua";
- int script_id = tsg_lua_cache_script_file(L, script);
+ struct elua_script *escript = elua_cache_script_file(L, script, 0);
/* check */
- EXPECT_EQ(ERR_SCRIPT_EQUAL_IN_EXPECTED, script_id);
+ EXPECT_EQ((void *)NULL, escript);
+ EXPECT_STREQ(elua_get_last_error_string(L), "[elua_cache_script_file:844] [string \"./script/equal_in_expected.lua\"]:3: '=' or 'in' expected near 'return'.");
}
-TEST(tsg_lua_cache_script_file, unexpected_symbol)
+TEST(elua_cache_script_file, unexpected_symbol)
{
- tsg_lua_handle L = NULL;
+ elua_vm *L = NULL;
- L = tsg_lua_vm_create();
+ L = elua_create_vm(NULL);
const char *script = "./script/unexpected_symbol.lua";
- int script_id = tsg_lua_cache_script_file(L, script);
+ struct elua_script *escript = elua_cache_script_file(L, script, 0);
/* check */
- EXPECT_EQ(ERR_SCRIPT_UNEXPECTED_SYMBOL, script_id);
+ EXPECT_EQ((void *)NULL, escript);
+ EXPECT_STREQ(elua_get_last_error_string(L), "[elua_cache_script_file:844] [string \"./script/unexpected_symbol.lua\"]:1: unexpected symbol near '-'.");
}
-TEST(tsg_lua_cache_script_file, name_expected)
+TEST(elua_cache_script_file, name_expected)
{
- tsg_lua_handle L = NULL;
+ elua_vm *L = NULL;
- L = tsg_lua_vm_create();
+ L = elua_create_vm(NULL);
const char *script = "./script/name_expected.lua";
- int ret = tsg_lua_cache_script_file(L, script);
+ struct elua_script *escript = elua_cache_script_file(L, script, 0);
/* check */
- EXPECT_EQ(ERR_SCRIPT_NAME_EXPECTED, ret);
+ EXPECT_EQ((void *)NULL, escript);
+ EXPECT_STREQ(elua_get_last_error_string(L), "[elua_cache_script_file:844] [string \"./script/name_expected.lua\"]:2: '<name>' expected near 'do'.");
}
-TEST(tsg_lua_cache_script_file, right_curves_bracket_expected)
+TEST(elua_cache_script_file, right_curves_bracket_expected)
{
- tsg_lua_handle L = NULL;
+ elua_vm *L = NULL;
- L = tsg_lua_vm_create();
+ L = elua_create_vm(NULL);
const char *script = "./script/right_curves_bracket_expected.lua";
- int ret = tsg_lua_cache_script_file(L, script);
+ struct elua_script *escript = elua_cache_script_file(L, script, 0);
/* check */
- EXPECT_EQ(ERR_SCRIPT_RIGHT_CURVES_BRACKET_EXPECTED, ret);
+ EXPECT_EQ((void *)NULL, escript);
+ EXPECT_STREQ(elua_get_last_error_string(L), "[elua_cache_script_file:844] [string \"./script/right_curves_bracket_expected.lua\"]:2: ')' expected (to close '(' at line 1) near 'return'.");
}
-TEST(tsg_lua_cache_script_file, right_curly_bracket_expected)
+TEST(elua_cache_script_file, right_curly_bracket_expected)
{
- tsg_lua_handle L = NULL;
+ elua_vm *L = NULL;
- L = tsg_lua_vm_create();
+ L = elua_create_vm(NULL);
const char *script = "./script/right_curly_bracket_expected.lua";
- int ret = tsg_lua_cache_script_file(L, script);
+ struct elua_script *escript = elua_cache_script_file(L, script, 0);
/* check */
- EXPECT_EQ(ERR_SCRIPT_RIGHT_CURLY_BRACKET_EXPECTED, ret);
+ EXPECT_EQ((void *)NULL, escript);
+ EXPECT_STREQ(elua_get_last_error_string(L), "[elua_cache_script_file:844] [string \"./script/right_curly_bracket_expected.lua\"]:3: '}' expected near ')'.");
}
-TEST(tsg_lua_cache_script_file, sharp)
+TEST(elua_cache_script_file, sharp)
{
- tsg_lua_handle L = NULL;
+ elua_vm *L = NULL;
- L = tsg_lua_vm_create();
+ L = elua_create_vm(NULL);
const char *script = "./script/return_string_normal_sharp.lua";
- int script_id = tsg_lua_cache_script_file(L, script);
+ struct elua_script *escript = elua_cache_script_file(L, script, 0);
/* check */
- EXPECT_EQ(1, script_id);
+ EXPECT_NE((void *)NULL, escript);
} \ No newline at end of file
diff --git a/gtest/gtest_tsg_lua_exec.cpp b/gtest/gtest_tsg_lua_exec.cpp
deleted file mode 100644
index d69366e..0000000
--- a/gtest/gtest_tsg_lua_exec.cpp
+++ /dev/null
@@ -1,520 +0,0 @@
-/*************************************************************************
- > File Name: gtest_tsg_lua_exec.cpp
- > Author: pxz
- > Created Time: Sun 19 Jul 2020 01:28:20 PM CST
- ************************************************************************/
-#include <gtest/gtest.h>
-#include "tsg_lua_interface.h"
-static const char *data = "hello world";
-
-static char buffer[4096];
-static char *get_script_buffer(const char *script)
-{
- FILE *fp = fopen(script, "r");
- if (fp)
- {
- int num = fread(buffer, 1, 4096, fp);
- if (num != 0)
- {
- buffer[num] = 0;
- fclose(fp);
- return buffer;
- }
- fclose(fp);
- }
- return NULL;
-}
-
-/* tsg_lua_exec */
-TEST(tsg_lua_exec, normal_return_string)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- memset(out, 0, 255);
- const char *script = get_script_buffer("./script/return_string_normal.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);
-}
-
-TEST(tsg_lua_exec, normal_return_boolean)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = BOOLEAN;
- L = tsg_lua_vm_create();
- const char *script = get_script_buffer("./script/return_boolean_normal.lua");
- memset(out, 0, 255);
- int ret = tsg_lua_exec(L, script, strlen(script), data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(0, ret);
- EXPECT_EQ(1, out_len);
- EXPECT_EQ(BOOLEAN, out_type);
- EXPECT_EQ(true, out[0]);
-}
-
-TEST(tsg_lua_exec, normal_return_integer)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = INTEGER;
- L = tsg_lua_vm_create();
- const char *script = get_script_buffer("./script/return_integer_normal.lua");
- memset(out, 0, 255);
- int ret = tsg_lua_exec(L, script, strlen(script), data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(0, ret);
- EXPECT_EQ(8, out_len);
- EXPECT_EQ(INTEGER, out_type);
- EXPECT_EQ(7, *(long int *)out);
-}
-
-TEST(tsg_lua_exec, lua_vm_isnull)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- const char *script = get_script_buffer("./script/return_string_normal.lua");
- memset(out, 0, sizeof(out));
- int ret = tsg_lua_exec(L, script, strlen(script), data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_LUAVM_ISNULL, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec, script_isnull)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
- L = tsg_lua_vm_create();
- const char *script = NULL;
- memset(out, 0, 255);
- int ret = tsg_lua_exec(L, script, 0, data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_ISNULL, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec, input_isnull)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
- char *input = NULL;
-
- L = tsg_lua_vm_create();
- const char *script = get_script_buffer("./script/return_string_normal.lua");
- memset(out, 0, 255);
- int ret = tsg_lua_exec(L, script, strlen(script), input, 0, out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_INPUT_ISNULL, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec, in_len_invaild)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = get_script_buffer("./script/return_string_normal.lua");
- memset(out, 0, 255);
- int ret = tsg_lua_exec(L, script, strlen(script), data, 0, out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_IN_LEN_INVAILD, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec, end_expected)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = get_script_buffer("./script/end_expected.lua");
- memset(out, 0, 255);
- int ret = tsg_lua_exec(L, script, strlen(script), data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_END_EXPECTED, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec, then_expected)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = get_script_buffer("./script/then_expected.lua");
- memset(out, 0, 255);
- int ret = tsg_lua_exec(L, script, strlen(script), data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_THEN_EXPECTED, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec, do_expected)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = get_script_buffer("./script/do_expected.lua");
- memset(out, 0, 255);
- int ret = tsg_lua_exec(L, script, strlen(script), data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_DO_EXPECTED, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec, eof_expected)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = get_script_buffer("./script/eof_expected.lua");
- memset(out, 0, 255);
- int ret = tsg_lua_exec(L, script, strlen(script), data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_EOF_EXPECTED, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec, equal_in_expected)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = get_script_buffer("./script/equal_in_expected.lua");
- memset(out, 0, 255);
- int ret = tsg_lua_exec(L, script, strlen(script), data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_EQUAL_IN_EXPECTED, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec, unexpected_symbol)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = get_script_buffer("./script/unexpected_symbol.lua");
- memset(out, 0, 255);
- int ret = tsg_lua_exec(L, script, strlen(script), data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_UNEXPECTED_SYMBOL, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec, name_expected)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = get_script_buffer("./script/name_expected.lua");
- memset(out, 0, 255);
- int ret = tsg_lua_exec(L, script, strlen(script), data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_NAME_EXPECTED, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec, right_curves_bracket_expected)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = get_script_buffer("./script/right_curves_bracket_expected.lua");
- memset(out, 0, 255);
- int ret = tsg_lua_exec(L, script, strlen(script), data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_RIGHT_CURVES_BRACKET_EXPECTED, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec, right_curly_bracket_expected)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = get_script_buffer("./script/right_curly_bracket_expected.lua");
- memset(out, 0, 255);
- int ret = tsg_lua_exec(L, script, strlen(script), data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_RIGHT_CURLY_BRACKET_EXPECTED, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec, string_expected_but_nil)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = get_script_buffer("./script/string_expected_but_nil.lua");
- memset(out, 0, 255);
- int ret = tsg_lua_exec(L, script, strlen(script), data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_STRING_EXPECTED_BUT_NIL, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec, string_expected_but_boolean)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = get_script_buffer("./script/string_expected_but_boolean.lua");
- memset(out, 0, 255);
- int ret = tsg_lua_exec(L, script, strlen(script), data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_STRING_EXPECTED_BUT_BOOL, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec, string_expected_but_table)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = get_script_buffer("./script/string_expected_but_table.lua");
- memset(out, 0, 255);
- int ret = tsg_lua_exec(L, script, strlen(script), data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_STRING_EXPECTED_BUT_TABLE, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec, call_global_but_nil)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = get_script_buffer("./script/call_global_but_nil.lua");
- memset(out, 0, 255);
- int ret = tsg_lua_exec(L, script, strlen(script), data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_CALL_GLOBAL_BUT_NIL, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-
-// TEST(tsg_lua_exec, return_too_few)
-// {
-// tsg_lua_handle L = NULL;
-// char out[255];
-// size_t out_len = 0;
-// size_t out_type = STRING;
-
-// L = tsg_lua_vm_create();
-// const char *script = get_script_buffer("./script/return_too_few.lua");
-// memset(out, 0, 255);
-// int ret = tsg_lua_exec(L, script, strlen(script), data, strlen(data), out, &out_len, &out_type);
-
-// /* check */
-// EXPECT_EQ(ERR_SCRIPT_RETURN_TOO_FEW, ret);
-// EXPECT_EQ(0, out_len);
-// EXPECT_EQ(STRING, out_type);
-// EXPECT_STREQ("", out);
-// }
-
-TEST(tsg_lua_exec, return_too_much)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = get_script_buffer("./script/return_too_much.lua");
- memset(out, 0, 255);
- int ret = tsg_lua_exec(L, script, strlen(script), data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_RETURN_TOO_MUCH, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec, return_type_nil)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = get_script_buffer("./script/return_type_invaild.lua");
- memset(out, 0, 255);
- int ret = tsg_lua_exec(L, script, strlen(script), data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_RETUNR_NIL, ret);
- EXPECT_EQ(5, out_len);
- EXPECT_EQ(NIL, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec, return_length_iszero)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = get_script_buffer("./script/return_length_iszero.lua");
- memset(out, 0, 255);
- int ret = tsg_lua_exec(L, script, strlen(script), data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_RETURN_LEN_INVAILD, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-#if 0
-TEST(tsg_lua_exec, function_invaild)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = get_script_buffer("./script/function_invaild.lua");
- memset(out, 0, 255);
- int ret = tsg_lua_exec(L, script, strlen(script), data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_FUNCTION_INVAILD, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- 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 = STRING;
-
- 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
deleted file mode 100644
index 2975753..0000000
--- a/gtest/gtest_tsg_lua_exec_bytecode.cpp
+++ /dev/null
@@ -1,331 +0,0 @@
-/*************************************************************************
- > File Name: gtest_tsg_lua_exec.cpp
- > Author: pxz
- > Created Time: Sun 19 Jul 2020 01:28:20 PM CST
- ************************************************************************/
-#include <gtest/gtest.h>
-#include "tsg_lua_interface.h"
-
-static const char *data = "hello world";
-static size_t script_len;
-static char buffer[4096];
-static char *get_script_buffer(const char *script)
-{
- FILE *fp = fopen(script, "r");
- if (fp)
- {
- int num = fread(buffer, 1, 4096, fp);
- if (num != 0)
- {
- buffer[num] = 0;
- script_len = num;
- fclose(fp);
- return buffer;
- }
- fclose(fp);
- }
- return NULL;
-}
-
-/* tsg_lua_exec */
-TEST(tsg_lua_exec_bytecode, normal_return_string)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- memset(out, 0, 255);
- const char *script = get_script_buffer("./script/return_string_normal.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);
-}
-
-TEST(tsg_lua_exec_bytecode, normal_return_boolean)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = BOOLEAN;
- L = tsg_lua_vm_create();
- const char *script = get_script_buffer("./script/return_boolean_normal.luajit");
- memset(out, 0, 255);
- int ret = tsg_lua_exec(L, script, script_len, data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(0, ret);
- EXPECT_EQ(1, out_len);
- EXPECT_EQ(BOOLEAN, out_type);
- EXPECT_EQ(true, out[0]);
-}
-
-TEST(tsg_lua_exec_bytecode, normal_return_integer)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = INTEGER;
- L = tsg_lua_vm_create();
- const char *script = get_script_buffer("./script/return_integer_normal.luajit");
- memset(out, 0, 255);
- int ret = tsg_lua_exec(L, script, script_len, data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(0, ret);
- EXPECT_EQ(8, out_len);
- EXPECT_EQ(INTEGER, out_type);
- EXPECT_EQ(7, *(long int *)out);
-}
-
-TEST(tsg_lua_exec_bytecode, lua_vm_isnull)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- const char *script = get_script_buffer("./script/return_string_normal.luajit");
- memset(out, 0, sizeof(out));
- int ret = tsg_lua_exec(L, script, script_len, data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_LUAVM_ISNULL, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec_bytecode, script_isnull)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
- L = tsg_lua_vm_create();
- const char *script = NULL;
- memset(out, 0, 255);
- int ret = tsg_lua_exec(L, script, 0, data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_ISNULL, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec_bytecode, input_isnull)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
- char *input = NULL;
-
- L = tsg_lua_vm_create();
- const char *script = get_script_buffer("./script/return_string_normal.luajit");
- memset(out, 0, 255);
- int ret = tsg_lua_exec(L, script, script_len, input, 0, out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_INPUT_ISNULL, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec_bytecode, in_len_invaild)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = get_script_buffer("./script/return_string_normal.luajit");
- memset(out, 0, 255);
- int ret = tsg_lua_exec(L, script, script_len, data, 0, out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_IN_LEN_INVAILD, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec_bytecode, string_expected_but_nil)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = get_script_buffer("./script/string_expected_but_nil.luajit");
- memset(out, 0, 255);
- int ret = tsg_lua_exec(L, script, script_len, data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_STRING_EXPECTED_BUT_NIL, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec_bytecode, string_expected_but_boolean)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = get_script_buffer("./script/string_expected_but_boolean.luajit");
- memset(out, 0, 255);
- int ret = tsg_lua_exec(L, script, script_len, data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_STRING_EXPECTED_BUT_BOOL, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec_bytecode, string_expected_but_table)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = get_script_buffer("./script/string_expected_but_table.luajit");
- memset(out, 0, 255);
- int ret = tsg_lua_exec(L, script, script_len, data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_STRING_EXPECTED_BUT_TABLE, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec_bytecode, call_global_but_nil)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = get_script_buffer("./script/call_global_but_nil.luajit");
- memset(out, 0, 255);
- int ret = tsg_lua_exec(L, script, script_len, data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_CALL_GLOBAL_BUT_NIL, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-
-// TEST(tsg_lua_exec_bytecode, return_too_few)
-// {
-// tsg_lua_handle L = NULL;
-// char out[255];
-// size_t out_len = 0;
-// size_t out_type = STRING;
-
-// L = tsg_lua_vm_create();
-// const char *script = get_script_buffer("./script/return_too_few.luajit");
-// memset(out, 0, 255);
-// int ret = tsg_lua_exec(L, script, script_len, data, strlen(data), out, &out_len, &out_type);
-
-// /* check */
-// EXPECT_EQ(ERR_SCRIPT_RETURN_TOO_FEW, ret);
-// EXPECT_EQ(0, out_len);
-// EXPECT_EQ(STRING, out_type);
-// EXPECT_STREQ("", out);
-// }
-
-TEST(tsg_lua_exec_bytecode, return_too_much)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = get_script_buffer("./script/return_too_much.luajit");
- memset(out, 0, 255);
- int ret = tsg_lua_exec(L, script, script_len, data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_RETURN_TOO_MUCH, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec_bytecode, return_type_nil)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = get_script_buffer("./script/return_type_invaild.luajit");
- memset(out, 0, 255);
- int ret = tsg_lua_exec(L, script, script_len, data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_RETUNR_NIL, ret);
- EXPECT_EQ(5, out_len);
- EXPECT_EQ(NIL, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec_bytecode, return_length_iszero)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = get_script_buffer("./script/return_length_iszero.luajit");
- memset(out, 0, 255);
- int ret = tsg_lua_exec(L, script, script_len, data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_RETURN_LEN_INVAILD, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, 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 = STRING;
-
- 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
deleted file mode 100644
index 6e82120..0000000
--- a/gtest/gtest_tsg_lua_exec_bytecode_file.cpp
+++ /dev/null
@@ -1,311 +0,0 @@
-/*************************************************************************
- > File Name: gtest_tsg_lua_exec_file.cpp
- > Author: pxz
- > Created Time: Sun 19 Jul 2020 01:28:20 PM CST
- ************************************************************************/
-#include <gtest/gtest.h>
-#include "tsg_lua_interface.h"
-static const char *data = "hello world";
-
-/* tsg_lua_exec_file */
-TEST(tsg_lua_exec_bytecode_file, normal_return_string)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = "./script/return_string_normal.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);
-}
-
-TEST(tsg_lua_exec_bytecode_file, normal_return_boolean)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = BOOLEAN;
- L = tsg_lua_vm_create();
- const char *script = "./script/return_boolean_normal.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(1, out_len);
- EXPECT_EQ(BOOLEAN, out_type);
- EXPECT_EQ(true, out[0]);
-}
-
-TEST(tsg_lua_exec_bytecode_file, normal_return_integer)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = INTEGER;
- L = tsg_lua_vm_create();
- const char *script = "./script/return_integer_normal.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(8, out_len);
- EXPECT_EQ(INTEGER, out_type);
- EXPECT_EQ(7, *(long int *)out);
-}
-
-TEST(tsg_lua_exec_bytecode_file, lua_vm_isnull)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- const char *script = "./script/return_string_normal.luajit";
- memset(out, 0, sizeof(out));
- int ret = tsg_lua_exec_file(L, script, data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_LUAVM_ISNULL, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec_bytecode_file, script_isnull)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
- L = tsg_lua_vm_create();
- const char *script = NULL;
- memset(out, 0, 255);
- int ret = tsg_lua_exec_file(L, script, data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_ISNULL, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec_bytecode_file, input_isnull)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
- char *input = NULL;
-
- L = tsg_lua_vm_create();
- const char *script = "./script/return_string_normal.luajit";
- memset(out, 0, 255);
- int ret = tsg_lua_exec_file(L, script, input, 0, out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_INPUT_ISNULL, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec_bytecode_file, in_len_invaild)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = "./script/return_string_normal.luajit";
- memset(out, 0, 255);
- int ret = tsg_lua_exec_file(L, script, data, 0, out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_IN_LEN_INVAILD, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec_bytecode_file, string_expected_but_nil)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = "./script/string_expected_but_nil.luajit";
- memset(out, 0, 255);
- int ret = tsg_lua_exec_file(L, script, data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_STRING_EXPECTED_BUT_NIL, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec_bytecode_file, string_expected_but_boolean)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = "./script/string_expected_but_boolean.luajit";
- memset(out, 0, 255);
- int ret = tsg_lua_exec_file(L, script, data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_STRING_EXPECTED_BUT_BOOL, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec_bytecode_file, string_expected_but_table)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = "./script/string_expected_but_table.luajit";
- memset(out, 0, 255);
- int ret = tsg_lua_exec_file(L, script, data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_STRING_EXPECTED_BUT_TABLE, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec_bytecode_file, call_global_but_nil)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = "./script/call_global_but_nil.luajit";
- memset(out, 0, 255);
- int ret = tsg_lua_exec_file(L, script, data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_CALL_GLOBAL_BUT_NIL, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-
-// TEST(tsg_lua_exec_bytecode_file, return_too_few)
-// {
-// tsg_lua_handle L = NULL;
-// char out[255];
-// size_t out_len = 0;
-// size_t out_type = STRING;
-
-// L = tsg_lua_vm_create();
-// const char *script = "./script/return_too_few.luajit";
-// memset(out, 0, 255);
-// int ret = tsg_lua_exec_file(L, script, data, strlen(data), out, &out_len, &out_type);
-
-// /* check */
-// EXPECT_EQ(ERR_SCRIPT_RETURN_TOO_FEW, ret);
-// EXPECT_EQ(0, out_len);
-// EXPECT_EQ(STRING, out_type);
-// EXPECT_STREQ("", out);
-// }
-
-TEST(tsg_lua_exec_bytecode_file, return_too_much)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = "./script/return_too_much.luajit";
- memset(out, 0, 255);
- int ret = tsg_lua_exec_file(L, script, data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_RETURN_TOO_MUCH, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec_bytecode_file, return_type_invaild)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = "./script/return_type_invaild.luajit";
- memset(out, 0, 255);
- int ret = tsg_lua_exec_file(L, script, data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_RETUNR_NIL, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(NIL, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec_bytecode_file, return_length_iszero)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = "./script/return_length_iszero.luajit";
- memset(out, 0, 255);
- int ret = tsg_lua_exec_file(L, script, data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_RETURN_LEN_INVAILD, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, 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 = STRING;
-
- 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
deleted file mode 100644
index 31ff6d4..0000000
--- a/gtest/gtest_tsg_lua_exec_file.cpp
+++ /dev/null
@@ -1,503 +0,0 @@
-/*************************************************************************
- > File Name: gtest_tsg_lua_exec_file.cpp
- > Author: pxz
- > Created Time: Sun 19 Jul 2020 01:28:20 PM CST
- ************************************************************************/
-#include <gtest/gtest.h>
-#include "tsg_lua_interface.h"
-
-static const char *data = "hello world";
-
-/* tsg_lua_exec_file */
-TEST(tsg_lua_exec_file, normal_return_string)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = "./script/return_string_normal.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);
-}
-
-TEST(tsg_lua_exec_file, normal_return_boolean)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = BOOLEAN;
- L = tsg_lua_vm_create();
- const char *script = "./script/return_boolean_normal.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(1, out_len);
- EXPECT_EQ(BOOLEAN, out_type);
- EXPECT_EQ(true, out[0]);
-}
-
-TEST(tsg_lua_exec_file, normal_return_integer)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = INTEGER;
- L = tsg_lua_vm_create();
- const char *script = "./script/return_integer_normal.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(8, out_len);
- EXPECT_EQ(INTEGER, out_type);
- EXPECT_EQ(7, *(long int *)out);
-}
-
-TEST(tsg_lua_exec_file, lua_vm_isnull)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- const char *script = "./script/return_string_normal.lua";
- memset(out, 0, sizeof(out));
- int ret = tsg_lua_exec_file(L, script, data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_LUAVM_ISNULL, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec_file, script_isnull)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
- L = tsg_lua_vm_create();
- const char *script = NULL;
- memset(out, 0, 255);
- int ret = tsg_lua_exec_file(L, script, data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_ISNULL, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec_file, input_isnull)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
- char *input = NULL;
-
- L = tsg_lua_vm_create();
- const char *script = "./script/return_string_normal.lua";
- memset(out, 0, 255);
- int ret = tsg_lua_exec_file(L, script, input, 0, out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_INPUT_ISNULL, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec_file, in_len_invaild)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = "./script/return_string_normal.lua";
- memset(out, 0, 255);
- int ret = tsg_lua_exec_file(L, script, data, 0, out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_IN_LEN_INVAILD, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec_file, end_expected)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = "./script/end_expected.lua";
- memset(out, 0, 255);
- int ret = tsg_lua_exec_file(L, script, data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_END_EXPECTED, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec_file, then_expected)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = "./script/then_expected.lua";
- memset(out, 0, 255);
- int ret = tsg_lua_exec_file(L, script, data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_THEN_EXPECTED, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec_file, do_expected)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = "./script/do_expected.lua";
- memset(out, 0, 255);
- int ret = tsg_lua_exec_file(L, script, data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_DO_EXPECTED, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec_file, eof_expected)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = "./script/eof_expected.lua";
- memset(out, 0, 255);
- int ret = tsg_lua_exec_file(L, script, data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_EOF_EXPECTED, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec_file, equal_in_expected)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = "./script/equal_in_expected.lua";
- memset(out, 0, 255);
- int ret = tsg_lua_exec_file(L, script, data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_EQUAL_IN_EXPECTED, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec_file, unexpected_symbol)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = "./script/unexpected_symbol.lua";
- memset(out, 0, 255);
- int ret = tsg_lua_exec_file(L, script, data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_UNEXPECTED_SYMBOL, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec_file, name_expected)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = "./script/name_expected.lua";
- memset(out, 0, 255);
- int ret = tsg_lua_exec_file(L, script, data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_NAME_EXPECTED, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec_file, right_curves_bracket_expected)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = "./script/right_curves_bracket_expected.lua";
- memset(out, 0, 255);
- int ret = tsg_lua_exec_file(L, script, data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_RIGHT_CURVES_BRACKET_EXPECTED, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec_file, right_curly_bracket_expected)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = "./script/right_curly_bracket_expected.lua";
- memset(out, 0, 255);
- int ret = tsg_lua_exec_file(L, script, data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_RIGHT_CURLY_BRACKET_EXPECTED, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec_file, string_expected_but_nil)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = "./script/string_expected_but_nil.lua";
- memset(out, 0, 255);
- int ret = tsg_lua_exec_file(L, script, data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_STRING_EXPECTED_BUT_NIL, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec_file, string_expected_but_boolean)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = "./script/string_expected_but_boolean.lua";
- memset(out, 0, 255);
- int ret = tsg_lua_exec_file(L, script, data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_STRING_EXPECTED_BUT_BOOL, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec_file, string_expected_but_table)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = "./script/string_expected_but_table.lua";
- memset(out, 0, 255);
- int ret = tsg_lua_exec_file(L, script, data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_STRING_EXPECTED_BUT_TABLE, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec_file, call_global_but_nil)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = "./script/call_global_but_nil.lua";
- memset(out, 0, 255);
- int ret = tsg_lua_exec_file(L, script, data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_CALL_GLOBAL_BUT_NIL, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-
-// TEST(tsg_lua_exec_file, return_too_few)
-// {
-// tsg_lua_handle L = NULL;
-// char out[255];
-// size_t out_len = 0;
-// size_t out_type = STRING;
-
-// L = tsg_lua_vm_create();
-// const char *script = "./script/return_too_few.lua";
-// memset(out, 0, 255);
-// int ret = tsg_lua_exec_file(L, script, data, strlen(data), out, &out_len, &out_type);
-
-// /* check */
-// EXPECT_EQ(ERR_SCRIPT_RETURN_TOO_FEW, ret);
-// EXPECT_EQ(0, out_len);
-// EXPECT_EQ(STRING, out_type);
-// EXPECT_STREQ("", out);
-// }
-
-TEST(tsg_lua_exec_file, return_too_much)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = "./script/return_too_much.lua";
- memset(out, 0, 255);
- int ret = tsg_lua_exec_file(L, script, data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_RETURN_TOO_MUCH, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec_file, return_type_nil)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = "./script/return_type_invaild.lua";
- memset(out, 0, 255);
- int ret = tsg_lua_exec_file(L, script, data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_RETUNR_NIL, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(NIL, out_type);
- EXPECT_STREQ("", out);
-}
-
-TEST(tsg_lua_exec_file, return_length_iszero)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = "./script/return_length_iszero.lua";
- memset(out, 0, 255);
- int ret = tsg_lua_exec_file(L, script, data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_RETURN_LEN_INVAILD, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("", out);
-}
-#if 0
-TEST(tsg_lua_exec_file, function_invaild)
-{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
-
- L = tsg_lua_vm_create();
- const char *script = "./script/function_invaild.lua";
- memset(out, 0, 255);
- int ret = tsg_lua_exec_file(L, script, data, strlen(data), out, &out_len, &out_type);
-
- /* check */
- EXPECT_EQ(ERR_SCRIPT_FUNCTION_INVAILD, ret);
- EXPECT_EQ(0, out_len);
- EXPECT_EQ(STRING, out_type);
- 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 = STRING;
-
- 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/gtest_tsg_lua_exec_with_context.cpp b/gtest/gtest_tsg_lua_exec_with_context.cpp
index 0b3d454..dc52575 100644
--- a/gtest/gtest_tsg_lua_exec_with_context.cpp
+++ b/gtest/gtest_tsg_lua_exec_with_context.cpp
@@ -1,5 +1,5 @@
#include <gtest/gtest.h>
-#include "tsg_lua_interface.h"
+#include "elua.h"
static char buffer[4096];
static char *get_script_buffer(const char *script)
@@ -19,162 +19,164 @@ static char *get_script_buffer(const char *script)
return NULL;
}
-int get_userdata(tsg_lua_handle L)
+int get_userdata(elua_vm *L)
{
- void *ud = lua_get_userdata(L);
- c_push_string_into_lua(L, (const char *)ud, strlen((const char *)ud));
+ void *ud = elua_get_execute_userdata(L);
+ struct elua_data edata;
+ edata.type = STRING;
+ edata.string = (char *)ud;
+ edata.len = strlen((char *)ud);
+ elua_cbinding_set_output_params(L, &edata, 1);
return 1;
}
-TEST(lua_exec_file, normal)
+TEST(lua_execute_file, normal)
{
- tsg_lua_handle L = tsg_lua_vm_create_with_name("TEST");
+ elua_vm *L = elua_create_vm("TEST");
const char *ud = "hello world.";
const char *script = "./script/exec_with_context.lua";
- lua_data_t in;
- in.data = (char *)"This is a test";
- in.len = strlen(in.data);
- lua_arg_t out;
+ char *input = (char *)"This is a test";
+ int len = strlen(input);
+ struct elua_data out;
out.type = STRING;
out.len = 1024;
- out.str = (char *)calloc(1, 1024);
+ out.string = (char *)calloc(1, 1024);
- lua_register_function(L, "get", "get_userdata", get_userdata);
- lua_script_context context = NULL;
- context = lua_script_context_malloc(L);
- int ret = lua_exec_file(L, script, in, (void *)ud, context, 0, &out);
+ elua_register_cbinding(L, "get", "get_userdata", get_userdata);
+ elua_context *context = NULL;
+ context = elua_create_context(L, "context");
+ struct elua_script *escript = elua_cache_script_file(L, script, 0);
+ int ret = elua_execute_script(escript, input, len, (void *)ud, context, &out);
const char *str = "userdata:hello world., context.count:1, context.message:This is first called";
EXPECT_EQ(0, ret);
EXPECT_EQ(strlen(str), out.len);
EXPECT_EQ(STRING, out.type);
- EXPECT_STREQ(str, out.str);
- bzero(out.str, 1024);
+ EXPECT_STREQ(str, out.string);
+ bzero(out.string, 1024);
ud = "hello lua.";
- ret = lua_exec_file(L, script, in, (void *)ud, context, 0, &out);
+ ret = elua_execute_script(escript, input, len, (void *)ud, context, &out);
str = "userdata:hello lua., context.count:2, context.message:This is not first called";
EXPECT_EQ(0, ret);
EXPECT_EQ(strlen(str), out.len);
EXPECT_EQ(STRING, out.type);
- EXPECT_STREQ(str, out.str);
- bzero(out.str, 1024);
+ EXPECT_STREQ(str, out.string);
+ bzero(out.string, 1024);
- lua_script_context context2 = NULL;
- context2 = lua_script_context_malloc(L);
- ret = lua_exec_file(L, script, in, (void *)ud, context2, 0, &out);
+ elua_context *context2 = NULL;
+ context2 = elua_create_context(L, "context");
+ ret = elua_execute_script(escript, input, len, (void *)ud, context2, &out);
str = "userdata:hello lua., context.count:1, context.message:This is first called";
EXPECT_EQ(0, ret);
EXPECT_EQ(strlen(str), out.len);
EXPECT_EQ(STRING, out.type);
- EXPECT_STREQ(str, out.str);
- bzero(out.str, 1024);
+ EXPECT_STREQ(str, out.string);
+ bzero(out.string, 1024);
- lua_script_context_free(L, context);
- lua_script_context_free(L, context2);
- tsg_destory_lua(L);
- free(out.str);
+ elua_destroy_context(context);
+ elua_destroy_context(context2);
+ elua_destroy_vm(L);
+ free(out.string);
}
TEST(lua_exec, normal)
{
- tsg_lua_handle L = tsg_lua_vm_create_with_name("TEST");
+ elua_vm *L = elua_create_vm("TEST");
const char *ud = "hello world.";
- lua_data_t in;
- in.data = (char *)"This is a test";
- in.len = strlen(in.data);
- lua_arg_t out;
+ char *input = (char *)"This is a test";
+ int len = strlen(input);
+ struct elua_data out;
out.type = STRING;
- out.len = 1024;
- out.str = (char *)calloc(1, 1024);
- lua_data_t script;
- script.data = get_script_buffer("./script/exec_with_context.lua");
- script.len = strlen(script.data);
-
- lua_register_function(L, "get", "get_userdata", get_userdata);
- lua_script_context context = NULL;
- context = lua_script_context_malloc(L);
- int ret = lua_exec(L, script, in, (void *)ud, context, 0, &out);
+ out.integer = 1024;
+ out.string = (char *)calloc(1, 1024);
+ char *script = get_script_buffer("./script/exec_with_context.lua");
+ int script_len = strlen(script);
+ elua_script *escript = elua_cache_script(L, script, script_len, 0);
+
+ elua_register_cbinding(L, "get", "get_userdata", get_userdata);
+ elua_context *context = NULL;
+ context = elua_create_context(L, "context");
+ int ret = elua_execute_script(escript, input, len, (void *)ud, context, &out);
const char *str = "userdata:hello world., context.count:1, context.message:This is first called";
EXPECT_EQ(0, ret);
EXPECT_EQ(strlen(str), out.len);
EXPECT_EQ(STRING, out.type);
- EXPECT_STREQ(str, out.str);
- bzero(out.str, 1024);
+ EXPECT_STREQ(str, out.string);
+ bzero(out.string, 1024);
ud = "hello lua.";
- ret = lua_exec(L, script, in, (void *)ud, context, 0, &out);
+ ret = elua_execute_script(escript, input, len, (void *)ud, context, &out);
str = "userdata:hello lua., context.count:2, context.message:This is not first called";
EXPECT_EQ(0, ret);
EXPECT_EQ(strlen(str), out.len);
EXPECT_EQ(STRING, out.type);
- EXPECT_STREQ(str, out.str);
- bzero(out.str, 1024);
+ EXPECT_STREQ(str, out.string);
+ bzero(out.string, 1024);
- lua_script_context context2 = NULL;
- context2 = lua_script_context_malloc(L);
- ret = lua_exec(L, script, in, (void *)ud, context2, 0, &out);
+ elua_context *context2 = NULL;
+ context2 = elua_create_context(L, "context");
+ ret = elua_execute_script(escript, input, len, (void *)ud, context2, &out);
str = "userdata:hello lua., context.count:1, context.message:This is first called";
EXPECT_EQ(0, ret);
EXPECT_EQ(strlen(str), out.len);
EXPECT_EQ(STRING, out.type);
- EXPECT_STREQ(str, out.str);
- bzero(out.str, 1024);
+ EXPECT_STREQ(str, out.string);
+ bzero(out.string, 1024);
- lua_script_context_free(L, context);
- lua_script_context_free(L, context2);
- tsg_destory_lua(L);
- free(out.str);
+ elua_destroy_context(context);
+ elua_destroy_context(context2);
+ elua_destroy_vm(L);
+ free(out.string);
}
-TEST(lua_cache_exec, normal)
+TEST(elua_execute_script, normal)
{
- tsg_lua_handle L = tsg_lua_vm_create_with_name("TEST");
+ elua_vm *L = elua_create_vm("TEST");
const char *ud = "hello world.";
- lua_data_t in;
- in.data = (char *)"This is a test";
- in.len = strlen(in.data);
- lua_arg_t out;
+ char *input = (char *)"This is a test";
+ int len = strlen(input);
+ struct elua_data out;
out.type = STRING;
- out.len = 1024;
- out.str = (char *)calloc(1, 1024);
+ out.integer = 1024;
+ out.string = (char *)calloc(1, 1024);
const char *script = get_script_buffer("./script/exec_with_context.lua");
- int script_id = tsg_lua_cache_script(L, script, strlen(script));
+ struct elua_script *escript = elua_cache_script(L, script, strlen(script), 0);
- lua_register_function(L, "get", "get_userdata", get_userdata);
- lua_script_context context = NULL;
- context = lua_script_context_malloc(L);
- int ret = lua_cache_exec(L, script_id, in, (void *)ud, context, 0, &out);
+ elua_register_cbinding(L, "get", "get_userdata", get_userdata);
+ elua_context *context = NULL;
+ context = elua_create_context(L, "context");
+ int ret = elua_execute_script(escript, input, len, (void *)ud, context, &out);
const char *str = "userdata:hello world., context.count:1, context.message:This is first called";
EXPECT_EQ(0, ret);
EXPECT_EQ(strlen(str), out.len);
EXPECT_EQ(STRING, out.type);
- EXPECT_STREQ(str, out.str);
- bzero(out.str, 1024);
+ EXPECT_STREQ(str, out.string);
+ bzero(out.string, 1024);
ud = "hello lua.";
- ret = lua_cache_exec(L, script_id, in, (void *)ud, context, 0, &out);
+ ret = elua_execute_script(escript, input, len, (void *)ud, context, &out);
str = "userdata:hello lua., context.count:2, context.message:This is not first called";
EXPECT_EQ(0, ret);
EXPECT_EQ(strlen(str), out.len);
EXPECT_EQ(STRING, out.type);
- EXPECT_STREQ(str, out.str);
- bzero(out.str, 1024);
+ EXPECT_STREQ(str, out.string);
+ bzero(out.string, 1024);
- lua_script_context context2 = NULL;
- context2 = lua_script_context_malloc(L);
- ret = lua_cache_exec(L, script_id, in, (void *)ud, context2, 0, &out);
+ elua_context *context2 = NULL;
+ context2 = elua_create_context(L, "context");
+ ret = elua_execute_script(escript, input, len, (void *)ud, context2, &out);
str = "userdata:hello lua., context.count:1, context.message:This is first called";
EXPECT_EQ(0, ret);
EXPECT_EQ(strlen(str), out.len);
EXPECT_EQ(STRING, out.type);
- EXPECT_STREQ(str, out.str);
- bzero(out.str, 1024);
+ EXPECT_STREQ(str, out.string);
+ bzero(out.string, 1024);
- lua_script_context_free(L, context);
- lua_script_context_free(L, context2);
- tsg_destory_lua(L);
- free(out.str);
+ elua_destroy_context(context);
+ elua_destroy_context(context2);
+ elua_destroy_vm(L);
+ free(out.string);
}
diff --git a/gtest/gtest_tsg_lua_register_function.cpp b/gtest/gtest_tsg_lua_register_function.cpp
index e3388de..fc31d65 100644
--- a/gtest/gtest_tsg_lua_register_function.cpp
+++ b/gtest/gtest_tsg_lua_register_function.cpp
@@ -1,144 +1,353 @@
/*************************************************************************
- > File Name: gtest_tsg_lua_vm_create.cpp
+ > File Name: gtest_elua_create_vm.cpp
> Author: pxz
> Created Time: Sun 19 Jul 2020 01:27:13 PM CST
************************************************************************/
#include <gtest/gtest.h>
-#include "tsg_lua_interface.h"
+#include "elua.h"
-int get_hello(tsg_lua_handle L)
+int get_hello(elua_vm *L)
{
- c_push_string_into_lua(L, "hello", strlen("hello"));
+ struct elua_data ldata;
+ ldata.type = STRING;
+ ldata.string = (char *)"hello";
+ ldata.len = 5;
+ elua_cbinding_set_output_params(L, &ldata, 1);
return 1;
}
-int set_world(tsg_lua_handle L)
+int set_world(elua_vm *L)
{
int argc = 0;
- lua_arg_t *argv = NULL;
- c_pull_param_from_lua(L, &argc, &argv);
- if (argc != 2 || argv == NULL || argv[0].type != STRING || argv[1].type != STRING)
+ argc = elua_cbinding_get_input_params_num(L);
+ if (argc <= 0)
{
return 0;
}
- char *buff = (char *)calloc(2, argv[0].len + argv[1].len + 3);
- sprintf(buff, "%s %s.", argv[0].str, argv[1].str);
- c_push_string_into_lua(L, buff, strlen(buff));
- free(buff);
- buff = NULL;
- free_param_form_lua(argc, argv);
+ struct elua_data *argv = (struct elua_data *)calloc(argc, sizeof(struct elua_data));
+
+ for (int i = 0; i < argc; i++)
+ {
+ elua_cbinding_get_input_param(L, i+1, &argv[i]);
+ }
+
+ if (argc != 2 || argv[0].type != STRING || argv[1].type != STRING)
+ {
+ return 0;
+ }
+
+ struct elua_data retvalue;
+ retvalue.type = STRING;
+ retvalue.len = argv[0].len + argv[1].len + 2;
+ retvalue.string = (char *)calloc(1, retvalue.len);
+ sprintf(retvalue.string, "%s %s.", argv[0].string, argv[1].string);
+ elua_cbinding_set_output_params(L, &retvalue, 1);
+ free(retvalue.string);
return 1;
}
-int get_req_header(tsg_lua_handle L)
+int get_req_header(elua_vm *L)
{
const char *key[] = {"token", "User-Agent", "Accept", "Host", "Accept-Encoding",
"Connection", "Content-Length", "Content-Type"};
const char *value[] = {"c21f969b5f03d33d43e04f8f136e7682", " PostmanRuntime/7.26.8","*/*", "192.168.40.223:9098",
- "gzip, deflate, br", "keep-alive", "7020", "text/markdown"};
- c_push_table_into_lua(L, key, value, 8);
+ "gzip, deflate, br", "keep-alive", "7030", "text/markdown"};
+
+ elua_table *etab = elua_create_table(L);
+ struct elua_data ekey, evalue;
+ ekey.type = STRING;
+ evalue.type = STRING;
+
+ for (int i = 0; i < (int)(sizeof(key) / sizeof(key[0])); i++)
+ {
+ ekey.len = strlen(key[i]);
+ ekey.string = (char *)key[i];
+ evalue.len = strlen(value[i]);
+ evalue.string = (char *)value[i];
+ elua_add_table(etab, &ekey, &evalue);
+ }
+
+ struct elua_data retvalue;
+ retvalue.type = TABLE;
+ retvalue.table = etab;
+ retvalue.len = sizeof(struct elua_data);
+
+ elua_cbinding_set_output_params(L, &retvalue, 1);
+ elua_destroy_table(etab);
return 1;
}
-int get_rsp_header(tsg_lua_handle L)
+int get_rsp_header(elua_vm *L)
{
const char *key[] = {"Content-Type", "Content-Length", "Data"};
const char *value[] = {"application/xml;charset=UTF-8", "0", "Wed, 16 Dec 2020 08:45:55 GMT"};
- c_push_table_into_lua(L, key, value, 3);
+
+ elua_table *etab = elua_create_table(L);
+ struct elua_data ekey, evalue;
+ ekey.type = STRING;
+ evalue.type = STRING;
+
+ for (int i = 0; i < (int)(sizeof(key) / sizeof(key[0])); i++)
+ {
+ ekey.len = strlen(key[i]);
+ ekey.string = (char *)key[i];
+ evalue.len = strlen(value[i]);
+ evalue.string = (char *)value[i];
+ elua_add_table(etab, &ekey, &evalue);
+ }
+
+ struct elua_data retvalue;
+ retvalue.type = TABLE;
+ retvalue.table = etab;
+ retvalue.len = sizeof(struct elua_data);
+
+ elua_cbinding_set_output_params(L, &retvalue, 1);
+ elua_destroy_table(etab);
return 1;
}
-int get_result(tsg_lua_handle L)
+int get_result(elua_vm *L)
{
- c_push_bool_into_lua(L, false);
+ struct elua_data retvalue;
+ retvalue.type = BOOLEAN;
+ retvalue.len = sizeof(bool);
+ retvalue.true_or_false = false;
+ elua_cbinding_set_output_params(L, &retvalue, 1);
return 1;
}
-int get_nil(tsg_lua_handle L)
+int get_nil(elua_vm *L)
{
- c_push_nil_into_lua(L);
+ struct elua_data retvalue;
+ retvalue.type = NIL;
+ elua_cbinding_set_output_params(L, &retvalue, 1);
return 1;
}
-int get_time(tsg_lua_handle L)
+int get_time(elua_vm *L)
{
- c_push_num_into_lua(L, 0x12345678);
+ struct elua_data retvalue;
+ retvalue.type = INTEGER;
+ retvalue.len = sizeof(long);
+ retvalue.integer = 0x12345678;
+ elua_cbinding_set_output_params(L, &retvalue, 1);
return 1;
}
-TEST(lua_register_function, normal)
+int set_repeat(elua_vm *L)
{
- tsg_lua_handle L = NULL;
- char out[255];
- size_t out_len = 0;
- size_t out_type = STRING;
+ struct elua_data retvalue;
+ retvalue.type = INTEGER;
+ retvalue.len = sizeof(long);
+ retvalue.integer = 0x12345678;
+ elua_cbinding_set_output_params(L, &retvalue, 1);
+ retvalue.type = STRING;
+ retvalue.len = 5;
+ retvalue.string = (char *)"hello";
+ elua_cbinding_set_output_params(L, &retvalue, 1);
+
+ return 1;
+}
+
+int set_multi_type_retvalue(elua_vm *L)
+{
+ elua_table *etab = elua_create_table(L);
+ struct elua_data ekey, evalue;
+
+ char buff[1024];
+ bzero(buff, 1024);
+ for (int i = 0; i < 3; i++)
+ {
+ snprintf(buff, 1024, "test%d", i);
+ ekey.type = STRING;
+ evalue.type = INTEGER;
+ ekey.len = 5;
+ ekey.string = buff;
+ evalue.len = sizeof(int);
+ evalue.integer = i;
+ elua_add_table(etab, &ekey, &evalue);
+
+ snprintf(buff, 1024, "test%d", i);
+ ekey.type = INTEGER;
+ evalue.type = STRING;
+ ekey.len = sizeof(int);
+ ekey.integer = i;
+ evalue.len = 5;
+ evalue.string = buff;
+ elua_add_table(etab, &ekey, &evalue);
+ }
+
+ struct elua_data retvalue;
+ retvalue.type = TABLE;
+ retvalue.table = etab;
+ retvalue.len = sizeof(struct elua_data);
- L = tsg_lua_vm_create();
+ elua_cbinding_set_output_params(L, &retvalue, 1);
+ elua_destroy_table(etab);
+
+ return 1;
+}
+
+TEST(elua_register_cbinding, normal)
+{
+ elua_vm *L = NULL;
+
+ L = elua_create_vm(NULL);
EXPECT_NE((void *)NULL, L);
- lua_register_function(L, "get", "get_hello", get_hello);
- lua_register_function(L, "set", "set_world", set_world);
+ elua_register_cbinding(L, "get", "get_hello", get_hello);
+ elua_register_cbinding(L, "set", "set_world", set_world);
+ char buff[1024];
const char *script = "./script/call_cfunction.lua";
- memset(out, 0, 255);
- int ret = tsg_lua_exec_file(L, script, "hello", strlen("hello"), out, &out_len, &out_type);
+ struct elua_script *escript = elua_cache_script_file(L, script, 0);
+ struct elua_data output;
+ output.type = STRING;
+ output.string = buff;
+ output.len = 1024;
+ memset(buff, 0, 1024);
+ int ret = elua_execute_script(escript, "hello", strlen("hello"), NULL, NULL, &output);
EXPECT_EQ(0, ret);
- EXPECT_EQ(12, out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ("hello world.", out);
- tsg_destory_lua(L);
+ EXPECT_EQ(12, output.len);
+ EXPECT_EQ(STRING, output.type);
+ EXPECT_STREQ("hello world.", output.string);
+ elua_destroy_vm(L);
}
-TEST(lua_register_function, get_header)
+TEST(elua_register_cbinding, get_header)
{
- tsg_lua_handle L = NULL;
- char out[1024];
- size_t out_len = 0;
- size_t out_type = STRING;
+ elua_vm *L = NULL;
- L = tsg_lua_vm_create();
+ L = elua_create_vm(NULL);
EXPECT_NE((void *)NULL, L);
- lua_register_function(L, "req", "get_header", get_req_header);
- lua_register_function(L, "rsp", "get_header", get_rsp_header);
+ elua_register_cbinding(L, "req", "get_header", get_req_header);
+ elua_register_cbinding(L, "rsp", "get_header", get_rsp_header);
+ char buff[1024];
const char *script = "./script/get_header.lua";
- memset(out, 0, 1024);
- int ret = tsg_lua_exec_file(L, script, "hello", strlen("hello"), out, &out_len, &out_type);
+ struct elua_script *escript = elua_cache_script_file(L, script, 0);
+ struct elua_data output;
+ output.type = STRING;
+ output.string = buff;
+ output.len = 1024;
+ memset(buff, 0, 1024);
+ int ret = elua_execute_script(escript, "hello", strlen("hello"), NULL, NULL, &output);
- const char *result = "req_header:Host:192.168.40.223:9098,Content-Type:text/markdown,Content-Length:7020,Connection:keep-alive,Accept:*/*,User-Agent: PostmanRuntime/7.26.8,token:c21f969b5f03d33d43e04f8f136e7682,Accept-Encoding:gzip, deflate, br; rsp_header:nil,Content-Length:0,Content-Type:application/xml;charset=UTF-8,Data:Wed, 16 Dec 2020 08:45:55 GMT";
+ const char *result = "req_header:Host:192.168.40.223:9098,Content-Type:text/markdown,Content-Length:7030,Connection:keep-alive,Accept:*/*,User-Agent: PostmanRuntime/7.26.8,token:c21f969b5f03d33d43e04f8f136e7682,Accept-Encoding:gzip, deflate, br; rsp_header:Content-Length:0,Content-Type:application/xml;charset=UTF-8,Data:Wed, 16 Dec 2020 08:45:55 GMT";
EXPECT_EQ(0, ret);
- EXPECT_EQ(strlen(result), out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ(result, out);
- tsg_destory_lua(L);
+ EXPECT_EQ(strlen(result), output.len);
+ EXPECT_EQ(STRING, output.type);
+ EXPECT_STREQ(result, output.string);
+ elua_destroy_vm(L);
}
-TEST(lua_register_function, other)
+TEST(elua_register_cbinding, other)
{
- tsg_lua_handle L = NULL;
- char out[1024];
- size_t out_len = 0;
- size_t out_type = STRING;
+ elua_vm *L = NULL;
- L = tsg_lua_vm_create();
+ L = elua_create_vm(NULL);
EXPECT_NE((void *)NULL, L);
- lua_register_function(L, "get", "get_result", get_result);
- lua_register_function(L, "get", "get_nil", get_nil);
- lua_register_function(L, "get", "get_time", get_time);
+ elua_register_cbinding(L, "get", "get_result", get_result);
+ elua_register_cbinding(L, "get", "get_nil", get_nil);
+ elua_register_cbinding(L, "get", "get_time", get_time);
const char *script = "./script/get_other.lua";
- memset(out, 0, 1024);
- int ret = tsg_lua_exec_file(L, script, "hello", strlen("hello"), out, &out_len, &out_type);
+ char buff[1024];
+ struct elua_script *escript = elua_cache_script_file(L, script, 0);
+ struct elua_data output;
+ output.type = STRING;
+ output.string = buff;
+ output.len = 1024;
+ memset(buff, 0, 1024);
+ int ret = elua_execute_script(escript, "hello", strlen("hello"), NULL, NULL, &output);
+
const char *result = "result:false, time:305419896, is nil";
EXPECT_EQ(0, ret);
- EXPECT_EQ(strlen(result), out_len);
- EXPECT_EQ(STRING, out_type);
- EXPECT_STREQ(result, out);
- tsg_destory_lua(L);
+ EXPECT_EQ(strlen(result), output.len);
+ EXPECT_EQ(STRING, output.type);
+ EXPECT_STREQ(result, output.string);
+ elua_destroy_vm(L);
+}
+
+TEST(elua_register_cbinding, invalid_args)
+{
+ elua_vm *L = NULL;
+
+ L = elua_create_vm(NULL);
+ EXPECT_NE((void *)NULL, L);
+ elua_register_cbinding(L, "get", "get_hello", get_hello);
+ elua_register_cbinding(L, "set", "set_world", set_world);
+
+ char buff[1024];
+ const char *script = "./script/call_cfunction_invalid_args.lua";
+ struct elua_script *escript = elua_cache_script_file(L, script, 0);
+ struct elua_data output;
+ output.type = STRING;
+ output.string = buff;
+ output.len = 1024;
+ memset(buff, 0, 1024);
+ int ret = elua_execute_script(escript, "hello", strlen("hello"), NULL, NULL, &output);
+
+ EXPECT_EQ(0, ret);
+ EXPECT_EQ(12, output.len);
+ EXPECT_EQ(STRING, output.type);
+ EXPECT_STREQ("hello world.", output.string);
+ elua_destroy_vm(L);
}
+
+TEST(elua_register_cbinding, set_repeat)
+{
+ elua_vm *L = NULL;
+
+ L = elua_create_vm(NULL);
+ EXPECT_NE((void *)NULL, L);
+ elua_register_cbinding(L, NULL, "set_repeat", set_repeat);
+
+ char buff[1024];
+ const char *script = "./script/call_set_repeat.lua";
+ struct elua_script *escript = elua_cache_script_file(L, script, 0);
+ struct elua_data output;
+ output.type = STRING;
+ output.string = buff;
+ output.len = 1024;
+ memset(buff, 0, 1024);
+ int ret = elua_execute_script(escript, "hello", strlen("hello"), NULL, NULL, &output);
+
+ EXPECT_EQ(0, ret);
+ EXPECT_EQ(5, output.len);
+ EXPECT_EQ(STRING, output.type);
+ EXPECT_STREQ("hello", output.string);
+ elua_destroy_vm(L);
+}
+
+TEST(elua_register_cbinding, get_value)
+{
+ elua_vm *L = NULL;
+
+ L = elua_create_vm(NULL);
+ EXPECT_NE((void *)NULL, L);
+ elua_register_cbinding(L, NULL, "get_value", set_multi_type_retvalue);
+
+ char buff[1024];
+ const char *script = "./script/call_cfunction_get_value.lua";
+ struct elua_script *escript = elua_cache_script_file(L, script, 0);
+ struct elua_data output;
+ output.type = STRING;
+ output.string = buff;
+ output.len = 1024;
+ memset(buff, 0, 1024);
+ int ret = elua_execute_script(escript, "hello", strlen("hello"), NULL, NULL, &output);
+
+ EXPECT_EQ(0, ret);
+ printf(elua_get_last_error_string(L));
+ EXPECT_EQ(47, output.len);
+ EXPECT_EQ(STRING, output.type);
+ EXPECT_STREQ("0:test0,1:test1,2:test2,test1:1,test0:0,test2:2", output.string);
+ elua_destroy_vm(L);
+} \ No newline at end of file
diff --git a/gtest/gtest_tsg_lua_uncache_script.cpp b/gtest/gtest_tsg_lua_uncache_script.cpp
index 8d4d139..df82bba 100644
--- a/gtest/gtest_tsg_lua_uncache_script.cpp
+++ b/gtest/gtest_tsg_lua_uncache_script.cpp
@@ -1,36 +1,30 @@
/*************************************************************************
- > File Name: gtest_tsg_lua_cache_script_file.cpp
+ > File Name: gtest_elua_cache_script_file.cpp
> Author: pxz
> Created Time: Sun 19 Jul 2020 01:28:20 PM CST
************************************************************************/
#include <gtest/gtest.h>
-#include "tsg_lua_interface.h"
+#include "elua.h"
-/* tsg_lua_uncache_script */
-TEST(tsg_lua_uncache_script, normal)
+/* elua_cleanup_script */
+TEST(elua_cleanup_script, normal)
{
- tsg_lua_handle L = NULL;
+ elua_vm *L = NULL;
- L = tsg_lua_vm_create();
+ L = elua_create_vm(NULL);
const char *script = "./script/return_string_normal.lua";
- int script_id = tsg_lua_cache_script_file(L, script);
- int ret = tsg_lua_uncache_script(L, script_id);
+ struct elua_script *escript = elua_cache_script_file(L, script, 0);
+ int ret = elua_cleanup_script(escript);
/* check */
EXPECT_EQ(0, ret);
}
-TEST(tsg_lua_uncache_script, lua_vm_isnull)
+TEST(elua_cleanup_script, script_isnull)
{
- tsg_lua_handle L = NULL;
-
- L = tsg_lua_vm_create();
- const char *script = "./script/return_string_normal.lua";
- int script_id = tsg_lua_cache_script_file(L, script);
- L = NULL;
- int ret = tsg_lua_uncache_script(L, script_id);
+ int ret = elua_cleanup_script(NULL);
/* check */
- EXPECT_EQ(ERR_LUAVM_ISNULL, ret);
+ EXPECT_EQ(-1, ret);
}
diff --git a/gtest/gtest_tsg_lua_vm_create.cpp b/gtest/gtest_tsg_lua_vm_create.cpp
index 8bcea40..70c58df 100644
--- a/gtest/gtest_tsg_lua_vm_create.cpp
+++ b/gtest/gtest_tsg_lua_vm_create.cpp
@@ -1,15 +1,15 @@
/*************************************************************************
- > File Name: gtest_tsg_lua_vm_create.cpp
+ > File Name: gtest_elua_create_vm.cpp
> Author: pxz
> Created Time: Sun 19 Jul 2020 01:27:13 PM CST
************************************************************************/
#include <gtest/gtest.h>
-#include "tsg_lua_interface.h"
+#include "elua.h"
-/* tsg_lua_vm_create */
-TEST(tsg_lua_vm_create, create_normal)
+/* elua_create_vm */
+TEST(elua_create_vm, create_normal)
{
- tsg_lua_handle L = NULL;
- L = tsg_lua_vm_create();
+ elua_vm *L = NULL;
+ L = elua_create_vm(NULL);
EXPECT_NE((void *)NULL, L);
}
diff --git a/gtest/script/call_cfunction_get_value.lua b/gtest/script/call_cfunction_get_value.lua
new file mode 100644
index 0000000..044a036
--- /dev/null
+++ b/gtest/script/call_cfunction_get_value.lua
@@ -0,0 +1,15 @@
+local data = TSG.data
+
+local value = TSG.get_value()
+
+local retvalue = nil
+print(type(value))
+for k, v in pairs(value) do
+ if not retvalue then
+ retvalue = string.format("%s:%s", tostring(k), tostring(v))
+ else
+ retvalue = string.format("%s,%s:%s", retvalue, tostring(k), tostring(v))
+ end
+end
+
+return string.len(retvalue), retvalue \ No newline at end of file
diff --git a/gtest/script/call_cfunction_invalid_args.lua b/gtest/script/call_cfunction_invalid_args.lua
new file mode 100644
index 0000000..697139e
--- /dev/null
+++ b/gtest/script/call_cfunction_invalid_args.lua
@@ -0,0 +1,6 @@
+local data = TSG.data
+
+local str = TSG.get.get_hello("test", "Test")
+
+local ret = TSG.set.set_world(str, "world")
+return string.len(ret), ret \ No newline at end of file
diff --git a/gtest/script/call_set_repeat.lua b/gtest/script/call_set_repeat.lua
new file mode 100644
index 0000000..7591309
--- /dev/null
+++ b/gtest/script/call_set_repeat.lua
@@ -0,0 +1,8 @@
+local data = TSG.data;
+local ret = TSG.set_repeat()
+
+if type(ret) == "string" then
+ return string.len(ret), ret
+else
+ return ret
+end \ No newline at end of file
diff --git a/gtest/script/lua_time_out.lua b/gtest/script/elua_time_out.lua
index 112dabc..112dabc 100644
--- a/gtest/script/lua_time_out.lua
+++ b/gtest/script/elua_time_out.lua
diff --git a/gtest/script/get_header.lua b/gtest/script/get_header.lua
index 104ddd0..f770d60 100644
--- a/gtest/script/get_header.lua
+++ b/gtest/script/get_header.lua
@@ -13,7 +13,7 @@ end
local rsp_header = nil
header = TSG.rsp.get_header()
for k, v in pairs(header) do
- if not req_header then
+ if not rsp_header then
rsp_header = string.format("%s:%s", k, v)
else
rsp_header = string.format("%s,%s:%s", rsp_header, k, v)