summaryrefslogtreecommitdiff
path: root/example
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 /example
parentfb53526b29c8092aed85ec73f17b470df379e95a (diff)
✨ feat(TSG-11870): 修改测试用例
Diffstat (limited to 'example')
-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
5 files changed, 148 insertions, 340 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;