summaryrefslogtreecommitdiff
path: root/gtest
diff options
context:
space:
mode:
author“pengxuanzheng” <[email protected]>2022-07-04 08:48:52 +0000
committer“pengxuanzheng” <[email protected]>2022-07-04 08:48:52 +0000
commit226e79434842626346ae378f408531d2d19059c7 (patch)
tree045c0392d14baac7f75a960f583269864c66e8a0 /gtest
parent512e852a76af00389c3340029144777aa7e69466 (diff)
✨ feat(TSG-11123): 增加单元测试
Diffstat (limited to 'gtest')
-rw-r--r--gtest/gtest_tsg_lua_register_function.cpp56
-rw-r--r--gtest/script/call_cfunction.lua6
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