Skip to content

Commit

Permalink
Updates.
Browse files Browse the repository at this point in the history
  • Loading branch information
Chukobyte committed Oct 7, 2024
1 parent c910fe7 commit 7bb51a5
Showing 1 changed file with 51 additions and 62 deletions.
113 changes: 51 additions & 62 deletions engine/test/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,11 @@
#include "../src/core/ecs/ecs_manager.h"
#include "../src/core/json/json_file_loader.h"
#include "../src/core/scripting/python/pocketpy/cre_pkpy.h"
#include "../src/core/scripting/python/pocketpy/cre_pkpy_util.h"
#include "../src/core/scripting/python/pocketpy/cre_pkpy_entity_instance_cache.h"
#include "../src/core/scripting/python/pocketpy/cre_pkpy_script_context.h"
#include "../src/core/scripting/python/pocketpy/cre_pkpy_node_event_manager.h"
#include "../src/core/game_properties.h"
#include "../src/core/engine_context.h"
#include "../src/core/scene/scene_manager.h"
#include "../src/core/tilemap/tilemap.h"
#include "core/scripting/python/pocketpy/pkpy_util.h"

inline static SkaTexture* create_mock_texture() {
SkaTexture* texture = SKA_MEM_ALLOCATE(SkaTexture);
Expand Down Expand Up @@ -212,49 +209,49 @@ void cre_json_file_loader_scene_test(void) {

//--- Pocketpy Test ---//
void cre_pocketpy_test(void) {
pkpy_vm* vm = cre_pkpy_script_context_get_active_pkpy_vm();

TEST_MESSAGE("Misc pocketpy tests");
#define CRE_TEST_POCKETPY_SOURCE ""\
"class Test:\n"\
" @staticmethod\n"\
" def test_static(value: int) -> None:\n" \
" pass\n"\
"\n"

pkpy_exec(vm, CRE_TEST_POCKETPY_SOURCE);
TEST_ASSERT_FALSE(cre_pkpy_util_print_error_message(vm));
pkpy_exec(vm, "Test.test_static(12)");
TEST_ASSERT_FALSE(cre_pkpy_util_print_error_message(vm));

#undef CRE_TEST_POCKETPY_SOURCE

TEST_MESSAGE("Testing loading included internal modules");
pkpy_exec(vm, "from crescent import Node");
TEST_ASSERT_FALSE(cre_pkpy_util_print_error_message(vm));
pkpy_eval(vm, "Node(10).entity_id");
int nodeEntity = 0;
pkpy_to_int(vm, 0, &nodeEntity);
TEST_ASSERT_FALSE(cre_pkpy_util_print_error_message(vm));
TEST_ASSERT_EQUAL_INT(10, nodeEntity);
pkpy_pop_top(vm);
TEST_ASSERT_EQUAL_INT(0, pkpy_stack_size(vm));
// pkpy_vm* vm = cre_pkpy_script_context_get_active_pkpy_vm();
//
// TEST_MESSAGE("Misc pocketpy tests");
// #define CRE_TEST_POCKETPY_SOURCE ""\
// "class Test:\n"\
// " @staticmethod\n"\
// " def test_static(value: int) -> None:\n" \
// " pass\n"\
// "\n"
//
// pkpy_exec(vm, CRE_TEST_POCKETPY_SOURCE);
// TEST_ASSERT_FALSE(cre_pkpy_util_print_error_message(vm));
// pkpy_exec(vm, "Test.test_static(12)");
// TEST_ASSERT_FALSE(cre_pkpy_util_print_error_message(vm));
//
// #undef CRE_TEST_POCKETPY_SOURCE

// TEST_MESSAGE("Testing loading included internal modules");
// pkpy_exec(vm, "from crescent import Node");
// TEST_ASSERT_FALSE(cre_pkpy_util_print_error_message(vm));
// pkpy_eval(vm, "Node(10).entity_id");
// int nodeEntity = 0;
// pkpy_to_int(vm, 0, &nodeEntity);
// TEST_ASSERT_FALSE(cre_pkpy_util_print_error_message(vm));
// TEST_ASSERT_EQUAL_INT(10, nodeEntity);
// pkpy_pop_top(vm);
// TEST_ASSERT_EQUAL_INT(0, pkpy_stack_size(vm));

TEST_MESSAGE("Testing entity instance cache");
const SkaEntity entity = cre_pkpy_entity_instance_cache_create_new_entity(vm, CRE_PKPY_MODULE_NAME_CRESCENT, "Node", ska_ecs_entity_create());
cre_pkpy_entity_instance_cache_push_entity_instance(vm, entity);
TEST_ASSERT_EQUAL_INT(1, pkpy_stack_size(vm));
pkpy_getattr(vm, pkpy_name("entity_id"));
TEST_ASSERT_FALSE(cre_pkpy_util_print_error_message(vm));
pkpy_to_int(vm, 0, &nodeEntity);
TEST_ASSERT_FALSE(cre_pkpy_util_print_error_message(vm));
TEST_ASSERT_EQUAL_INT((int)entity, nodeEntity);
// Test removing entity
TEST_ASSERT_TRUE(cre_pkpy_entity_instance_cache_has_entity(vm, nodeEntity));
cre_pkpy_entity_instance_cache_remove_entity(vm, entity);
TEST_ASSERT_FALSE(cre_pkpy_entity_instance_cache_has_entity(vm, nodeEntity));
pkpy_pop_top(vm);
TEST_ASSERT_EQUAL_INT(0, pkpy_stack_size(vm));
// const SkaEntity entity = cre_pkpy_entity_instance_cache_create_new_entity(vm, CRE_PKPY_MODULE_NAME_CRESCENT, "Node", ska_ecs_entity_create());
// cre_pkpy_entity_instance_cache_push_entity_instance(vm, entity);
// TEST_ASSERT_EQUAL_INT(1, pkpy_stack_size(vm));
// pkpy_getattr(vm, pkpy_name("entity_id"));
// TEST_ASSERT_FALSE(cre_pkpy_util_print_error_message(vm));
// pkpy_to_int(vm, 0, &nodeEntity);
// TEST_ASSERT_FALSE(cre_pkpy_util_print_error_message(vm));
// TEST_ASSERT_EQUAL_INT((int)entity, nodeEntity);
// // Test removing entity
// TEST_ASSERT_TRUE(cre_pkpy_entity_instance_cache_has_entity(vm, nodeEntity));
// cre_pkpy_entity_instance_cache_remove_entity(vm, entity);
// TEST_ASSERT_FALSE(cre_pkpy_entity_instance_cache_has_entity(vm, nodeEntity));
// pkpy_pop_top(vm);
// TEST_ASSERT_EQUAL_INT(0, pkpy_stack_size(vm));

ska_asset_manager_initialize();
cre_scene_manager_initialize();
Expand All @@ -271,23 +268,15 @@ void cre_pocketpy_test(void) {
TEST_MESSAGE("Testing python api");

// Load test node
char* testCustomNodesSource = ska_fs_read_file_contents("engine/test/resources/test_custom_nodes.py", NULL);
cre_pkpy_util_create_from_string(vm, "test_custom_nodes", testCustomNodesSource);
// Load test file
char* pythonText = ska_fs_read_file_contents("engine/test/resources/crescent_api_test.py", NULL);
TEST_ASSERT_NOT_NULL(pythonText);
pkpy_exec_2(vm, pythonText, "crescent_api_test.py", 0, NULL);
SKA_MEM_FREE(testCustomNodesSource);
SKA_MEM_FREE(pythonText);
TEST_ASSERT_FALSE(cre_pkpy_util_print_error_message(vm));

// Testing pushing broadcast event func for node manager
cre_pkpy_node_event_manager_broadcast_event(vm, 1, "talk");
cre_pkpy_node_event_manager_broadcast_event_string(vm, 1, "talk_string", "Testing");
cre_pkpy_node_event_manager_broadcast_event_int(vm, 1, "talk_int", 42);
cre_pkpy_node_event_manager_broadcast_event_float(vm, 1, "talk_float", 10.0f);
cre_pkpy_node_event_manager_broadcast_event_bool(vm, 1, "talk_bool", true);
TEST_ASSERT_EQUAL_INT(0, pkpy_stack_size(vm));
// char* testCustomNodesSource = ska_fs_read_file_contents("engine/test/resources/test_custom_nodes.py", NULL);
// cre_pkpy_util_create_from_string(vm, "test_custom_nodes", testCustomNodesSource);
// // Load test file
// char* pythonText = ska_fs_read_file_contents("engine/test/resources/crescent_api_test.py", NULL);
// TEST_ASSERT_NOT_NULL(pythonText);
// pkpy_exec_2(vm, pythonText, "crescent_api_test.py", 0, NULL);
// SKA_MEM_FREE(testCustomNodesSource);
// SKA_MEM_FREE(pythonText);
// TEST_ASSERT_FALSE(cre_pkpy_util_print_error_message(vm));

cre_scene_manager_finalize();
ska_asset_manager_finalize();
Expand Down

0 comments on commit 7bb51a5

Please sign in to comment.