#include "pke-test-font.hpp" #include "asset-manager.hpp" #include "ecs.hpp" #include "font.hpp" #include "pk.h" #include "pke-test-stubs.h" #include "pke-test-types.h" #include "thread-pool.hpp" static pk_membucket *bkt; void pke_test_font_setup() { pke_test_stub_init_vulkan(); bkt = pk_mem_bucket_create("pke_test_font", PK_MEM_DEFAULT_BUCKET_SIZE, PK_MEMBUCKET_FLAG_NONE); pk_mem_bucket_set_client_mem_bucket(bkt); pk_ev_init(bkt); PkeThreads_Init(); AM_Init(); ECS_Init(); FontType_Init(); } void pke_test_font_teardown() { FontType_Teardown(); ECS_Teardown(); AM_Teardown(); PkeThreads_Teardown(); pk_ev_teardown(); pk_mem_bucket_destroy(bkt); pk_mem_bucket_set_client_mem_bucket(nullptr); bkt = nullptr; pke_test_stub_teardown_vulkan(); } /* Ensure the font exists */ int pke_test_font_001() { int err_index = 0; FontType *ft = FontType_Get(FontTypeIndex{0}); PKE_TEST_ASSERT(ft != nullptr, err_index); PKE_TEST_ASSERT(ft->index_ft == FontTypeIndex{0}, err_index); return 0; } /* Ensure we can have more than one FontRender */ int pke_test_font_002() { int err_index = 0; FontTypeIndex fti{0}; FontRenderHandle handle_001{}; FontRenderHandle handle_002{}; FontRenderSettings frs{}; handle_001 = FontType_AddStringRender(fti, std::move(cstring_to_pk_cstr("string one")), &frs); PKE_TEST_ASSERT(handle_001.index_ft == FontTypeIndex{0}, err_index); PKE_TEST_ASSERT(handle_001.index_fr == FontRenderIndex{0}, err_index); handle_002 = FontType_AddStringRender(fti, std::move(cstring_to_pk_cstr("string two")), &frs); PKE_TEST_ASSERT(handle_002.index_ft == FontTypeIndex{0}, err_index); PKE_TEST_ASSERT(handle_002.index_fr == FontRenderIndex{1}, err_index); return 0; } struct pk_test_group *pke_test_font_get_group() { static const uint64_t test_count = 2; static struct pk_test tests[test_count] = { { .title = "test 001", .func = pke_test_font_001, .expected_result = 0, }, { .title = "test 002", .func = pke_test_font_002, .expected_result = 0, }, }; static struct pk_test_group group = {}; group.title = "font test"; group.test_setup = pke_test_font_setup; group.test_teardown = pke_test_font_teardown; group.n_tests = test_count; group.tests = &tests[0]; return &group; }