Properly link flecs library

This commit is contained in:
2023-11-09 11:38:29 +01:00
parent dc585396c3
commit 8edcf9305c
1392 changed files with 390081 additions and 164 deletions

View File

@@ -0,0 +1,150 @@
#include <addons.h>
void Task(ecs_iter_t *it) {
probe_iter(it);
}
void Tasks_no_components(void) {
ecs_world_t *world = ecs_init();
ECS_SYSTEM(world, Task, EcsOnUpdate, 0);
Probe ctx = {0};
ecs_set_ctx(world, &ctx, NULL);
ecs_progress(world, 1);
test_int(ctx.count, 0);
test_int(ctx.invoked, 1);
test_int(ctx.term_count, 0);
ecs_fini(world);
}
void Tasks_one_tag(void) {
ecs_world_t *world = ecs_init();
ECS_TAG(world, Foo);
ECS_SYSTEM(world, Task, EcsOnUpdate, Foo(Task));
Probe ctx = {0};
ecs_set_ctx(world, &ctx, NULL);
ecs_progress(world, 1);
test_int(ctx.count, 0);
test_int(ctx.invoked, 1);
test_int(ctx.term_count, 1);
test_int(ctx.c[0][0], Foo);
ecs_fini(world);
}
void Tasks_from_system(void) {
ecs_world_t *world = ecs_init();
ECS_COMPONENT(world, Position);
ECS_SYSTEM(world, Task, EcsOnUpdate, Position(Task));
Probe ctx = {0};
ecs_set_ctx(world, &ctx, NULL);
ecs_progress(world, 1);
test_int(ctx.count, 0);
test_int(ctx.invoked, 1);
test_int(ctx.term_count, 1);
test_int(ctx.c[0][0], ecs_id(Position));
ecs_fini(world);
}
static int phase_counter = 0;
static
void OnLoadTask(ecs_iter_t *it) {
test_assert(it->entities == NULL);
test_int(it->count, 0);
test_int(phase_counter, 0);
phase_counter ++;
}
static
void PostLoadTask(ecs_iter_t *it) {
test_assert(it->entities == NULL);
test_int(it->count, 0);
test_int(phase_counter, 1);
phase_counter ++;
}
static
void PreUpdateTask(ecs_iter_t *it) {
test_assert(it->entities == NULL);
test_int(it->count, 0);
test_int(phase_counter, 2);
phase_counter ++;
}
static
void OnUpdateTask(ecs_iter_t *it) {
test_assert(it->entities == NULL);
test_int(it->count, 0);
test_int(phase_counter, 3);
phase_counter ++;
}
static
void OnValidateTask(ecs_iter_t *it) {
test_assert(it->entities == NULL);
test_int(it->count, 0);
test_int(phase_counter, 4);
phase_counter ++;
}
static
void PostUpdateTask(ecs_iter_t *it) {
test_assert(it->entities == NULL);
test_int(it->count, 0);
test_int(phase_counter, 5);
phase_counter ++;
}
static
void PreStoreTask(ecs_iter_t *it) {
test_assert(it->entities == NULL);
test_int(it->count, 0);
test_int(phase_counter, 6);
phase_counter ++;
}
static
void OnStoreTask(ecs_iter_t *it) {
test_assert(it->entities == NULL);
test_int(it->count, 0);
test_int(phase_counter, 7);
phase_counter ++;
}
void Tasks_tasks_in_phases(void) {
ecs_world_t *world = ecs_init();
ECS_COMPONENT(world, Position);
ECS_SYSTEM(world, OnLoadTask, EcsOnLoad, Position());
ECS_SYSTEM(world, PostLoadTask, EcsPostLoad, Position());
ECS_SYSTEM(world, PreUpdateTask, EcsPreUpdate, Position());
ECS_SYSTEM(world, OnUpdateTask, EcsOnUpdate, Position());
ECS_SYSTEM(world, OnValidateTask, EcsOnValidate, Position());
ECS_SYSTEM(world, PostUpdateTask, EcsPostUpdate, Position());
ECS_SYSTEM(world, PreStoreTask, EcsPreStore, Position());
ECS_SYSTEM(world, OnStoreTask, EcsOnStore, Position());
ecs_progress(world, 1);
test_int(phase_counter, 8);
ecs_fini(world);
}