summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorsanine <sanine.not@pm.me>2022-08-22 21:37:12 -0500
committersanine <sanine.not@pm.me>2022-08-22 21:37:12 -0500
commit1f75a21851b0a0bd4bc766c458e67721dd37c9fd (patch)
tree498b9f43176f098c852099707e5eb1717bcd1ec1 /src
parent1f47b685f35455afcc7441389cdc60018f66d159 (diff)
add append_table()
Diffstat (limited to 'src')
-rw-r--r--src/gl/CMakeLists.txt7
-rw-r--r--src/gl/gl.test.c3
-rw-r--r--src/logging/CMakeLists.txt10
-rw-r--r--src/test/CMakeLists.txt6
-rw-r--r--src/test/honey-test.h2
-rw-r--r--src/util/CMakeLists.txt9
-rw-r--r--src/util/util.c12
-rw-r--r--src/util/util.h8
-rw-r--r--src/util/util.test.c47
9 files changed, 102 insertions, 2 deletions
diff --git a/src/gl/CMakeLists.txt b/src/gl/CMakeLists.txt
index d4bc770..c1c3db0 100644
--- a/src/gl/CMakeLists.txt
+++ b/src/gl/CMakeLists.txt
@@ -11,3 +11,10 @@ target_sources(honey PUBLIC
${GL}/gl.c
${GL}/glad/glad.c
)
+
+
+target_sources(test PUBLIC
+ ${GL}/glad/glad.c
+ ${GL}/gl.test.c
+ ${GL}/window.test.c
+)
diff --git a/src/gl/gl.test.c b/src/gl/gl.test.c
index 7a687b4..488126f 100644
--- a/src/gl/gl.test.c
+++ b/src/gl/gl.test.c
@@ -15,10 +15,9 @@ void mock_glBufferData_(int, size_t, const void *, int);
#define glfwInit mock_glfwInit_
#define hs_throw_error mock_hs_throw_error_
#define glfwTerminate mock_glfwTerminate_
-#undef glBufferData
-#define glBufferData mock_glBufferData_
#define setup_shader DUMMY_FUNCTION
#define setup_drawing DUMMY_FUNCTION
+#define setup_texture DUMMY_FUNCTION
#include "gl/gl.c"
#include "gl/data.c"
#undef glBufferData
diff --git a/src/logging/CMakeLists.txt b/src/logging/CMakeLists.txt
new file mode 100644
index 0000000..4d07f5e
--- /dev/null
+++ b/src/logging/CMakeLists.txt
@@ -0,0 +1,10 @@
+project(honey_engine)
+
+target_sources(honey PUBLIC
+ ${CMAKE_CURRENT_LIST_DIR}/logging.c
+)
+
+
+target_sources(test PUBLIC
+ ${CMAKE_CURRENT_LIST_DIR}/logging.test.c
+)
diff --git a/src/test/CMakeLists.txt b/src/test/CMakeLists.txt
new file mode 100644
index 0000000..6b86edc
--- /dev/null
+++ b/src/test/CMakeLists.txt
@@ -0,0 +1,6 @@
+project(honey_engine)
+
+target_sources(test PUBLIC
+ ${CMAKE_CURRENT_LIST_DIR}/honey-test.c
+ ${CMAKE_CURRENT_LIST_DIR}/lily-test.c
+)
diff --git a/src/test/honey-test.h b/src/test/honey-test.h
index 30730d5..03218a4 100644
--- a/src/test/honey-test.h
+++ b/src/test/honey-test.h
@@ -31,10 +31,12 @@
void suite_logging();
void suite_gl();
void suite_window();
+void suite_util();
#define RUN_TESTS() \
lily_run_suite(suite_logging); \
lily_run_suite(suite_gl); \
lily_run_suite(suite_window); \
+ lily_run_suite(suite_util); \
#endif
diff --git a/src/util/CMakeLists.txt b/src/util/CMakeLists.txt
new file mode 100644
index 0000000..5a01ec6
--- /dev/null
+++ b/src/util/CMakeLists.txt
@@ -0,0 +1,9 @@
+project(honey_engine)
+
+target_sources(honey PUBLIC
+ ${CMAKE_CURRENT_LIST_DIR}/util.c
+)
+
+target_sources(test PUBLIC
+ ${CMAKE_CURRENT_LIST_DIR}/util.test.c
+)
diff --git a/src/util/util.c b/src/util/util.c
new file mode 100644
index 0000000..84edd27
--- /dev/null
+++ b/src/util/util.c
@@ -0,0 +1,12 @@
+#include <lua.h>
+
+void append_table(lua_State *L, int tbl_a, int tbl_b)
+{
+ lua_pushnil(L);
+ while(lua_next(L, tbl_b) != 0) {
+ lua_pushvalue(L, -2); // key
+ lua_pushvalue(L, -2); // value
+ lua_settable(L, tbl_a);
+ lua_pop(L, 1);
+ }
+}
diff --git a/src/util/util.h b/src/util/util.h
new file mode 100644
index 0000000..3ef4e0b
--- /dev/null
+++ b/src/util/util.h
@@ -0,0 +1,8 @@
+#ifndef HONEY_UTIL_H
+#define HONEY_UTIL_H
+
+#include <lua.h>
+
+void append_table(lua_State *L, int tbl_a, int tbl_b);
+
+#endif
diff --git a/src/util/util.test.c b/src/util/util.test.c
new file mode 100644
index 0000000..b4029d2
--- /dev/null
+++ b/src/util/util.test.c
@@ -0,0 +1,47 @@
+#include <lua.h>
+#include <lauxlib.h>
+#include <honeysuckle.h>
+#include "test/honey-test.h"
+
+
+#include "util.c"
+
+
+void test_append_table()
+{
+ lua_State *L = luaL_newstate();
+ int a = hs_create_table(L,
+ hs_str_int("one", 1),
+ hs_str_int("two", 2),
+ );
+ int b = hs_create_table(L,
+ hs_str_int("three", 3),
+ hs_str_int("four", 4),
+ hs_int_int(15, 2),
+ );
+ append_table(L, a, b);
+
+ lua_getfield(L, a, "one");
+ lily_assert_int_equal(lua_tointeger(L, -1), 1);
+
+ lua_getfield(L, a, "two");
+ lily_assert_int_equal(lua_tointeger(L, -1), 2);
+
+ lua_getfield(L, a, "three");
+ lily_assert_int_equal(lua_tointeger(L, -1), 3);
+
+ lua_getfield(L, a, "four");
+ lily_assert_int_equal(lua_tointeger(L, -1), 4);
+
+ lua_pushinteger(L, 15);
+ lua_gettable(L, a);
+ lily_assert_int_equal(lua_tointeger(L, -1), 2);
+
+ lua_close(L);
+}
+
+
+void suite_util()
+{
+ lily_run_test(test_append_table);
+}