diff options
| author | “pengxuanzheng” <[email protected]> | 2022-07-04 08:48:52 +0000 |
|---|---|---|
| committer | “pengxuanzheng” <[email protected]> | 2022-07-04 08:48:52 +0000 |
| commit | 226e79434842626346ae378f408531d2d19059c7 (patch) | |
| tree | 045c0392d14baac7f75a960f583269864c66e8a0 /gtest | |
| parent | 512e852a76af00389c3340029144777aa7e69466 (diff) | |
✨ feat(TSG-11123): 增加单元测试
Diffstat (limited to 'gtest')
| -rw-r--r-- | gtest/gtest_tsg_lua_register_function.cpp | 56 | ||||
| -rw-r--r-- | gtest/script/call_cfunction.lua | 6 |
2 files changed, 62 insertions, 0 deletions
diff --git a/gtest/gtest_tsg_lua_register_function.cpp b/gtest/gtest_tsg_lua_register_function.cpp new file mode 100644 index 0000000..c783448 --- /dev/null +++ b/gtest/gtest_tsg_lua_register_function.cpp @@ -0,0 +1,56 @@ +/************************************************************************* + > File Name: gtest_tsg_lua_vm_create.cpp + > Author: pxz + > Created Time: Sun 19 Jul 2020 01:27:13 PM CST + ************************************************************************/ +#include <gtest/gtest.h> +#include "tsg_lua_interface.h" + +int get_hello(tsg_lua_handle L) +{ + c_push_string_into_lua(L, "hello", strlen("hello")); + return 1; +} + +int set_world(tsg_lua_handle L) +{ + int argc = 0; + lua_arg_t *argv = NULL; + + c_pull_param_from_lua(L, &argc, &argv); + if (argc != 1 || argv == NULL || argv[0].type != STRING) + { + return 0; + } + + char *buff = (char *)calloc(1, argv[0].len + strlen(" world.") + 1); + sprintf(buff, "%s%s", argv[0].str, " world."); + c_push_string_into_lua(L, buff, strlen(buff)); + free(buff); + buff = NULL; + free_param_form_lua(argc, &argv); + + return 1; +} + +TEST(lua_register_function, normal) +{ + tsg_lua_handle L = NULL; + char out[255]; + size_t out_len = 0; + size_t out_type = STRING; + + L = tsg_lua_vm_create(); + EXPECT_NE((void *)NULL, L); + lua_register_function(L, "get", "get_hello", get_hello); + lua_register_function(L, "set", "set_world", set_world); + + 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); + + EXPECT_EQ(0, ret); + EXPECT_EQ(12, out_len); + EXPECT_EQ(STRING, out_type); + EXPECT_STREQ("hello world.", out); +} diff --git a/gtest/script/call_cfunction.lua b/gtest/script/call_cfunction.lua new file mode 100644 index 0000000..4315297 --- /dev/null +++ b/gtest/script/call_cfunction.lua @@ -0,0 +1,6 @@ +local data = TSG.data + +local str = TSG.get.get_hello() + +local ret = TSG.set.set_world(str) +return string.len(ret), ret
\ No newline at end of file |
