diff options
| author | 彭宣正 <[email protected]> | 2022-09-05 19:03:03 +0800 |
|---|---|---|
| committer | 彭宣正 <[email protected]> | 2022-09-05 19:03:03 +0800 |
| commit | 2a0f0af98db078dc159a138ef8d25048807222ea (patch) | |
| tree | e92eb30a921a28e8fa50bfa23f78510e7ae50629 /example/single_thread.cpp | |
| parent | fb53526b29c8092aed85ec73f17b470df379e95a (diff) | |
✨ feat(TSG-11870): 修改测试用例
Diffstat (limited to 'example/single_thread.cpp')
| -rw-r--r-- | example/single_thread.cpp | 309 |
1 files changed, 63 insertions, 246 deletions
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; |
