Properly link flecs library
This commit is contained in:
109
engine/libs/flecs/test/api/src/Error.c
Normal file
109
engine/libs/flecs/test/api/src/Error.c
Normal file
@@ -0,0 +1,109 @@
|
||||
#include <api.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
void Error_setup(void) {
|
||||
ecs_os_set_api_defaults();
|
||||
ecs_os_api_t os_api = ecs_os_api;
|
||||
os_api.abort_ = test_abort;
|
||||
ecs_os_set_api(&os_api);
|
||||
ecs_log_set_level(-5);
|
||||
}
|
||||
|
||||
void Error_abort(void) {
|
||||
test_expect_abort();
|
||||
ecs_abort(ECS_INTERNAL_ERROR, NULL);
|
||||
}
|
||||
|
||||
void Error_abort_w_param(void) {
|
||||
test_expect_abort();
|
||||
ecs_abort(ECS_INTERNAL_ERROR, "some parameter");
|
||||
}
|
||||
|
||||
static bool my_abort_called = false;
|
||||
static
|
||||
void my_abort(void) {
|
||||
my_abort_called = true;
|
||||
}
|
||||
|
||||
void Error_override_abort(void) {
|
||||
/* The real reason this tests exists is to achieve 100% coverage. Without
|
||||
* this test, the last line of the 'abort' function would never be covered
|
||||
* because abort always exits before it gets there. */
|
||||
|
||||
/* hack, because the setup already set the OS API */
|
||||
ecs_os_api.abort_ = my_abort;
|
||||
ecs_os_abort();
|
||||
test_assert(my_abort_called == true);
|
||||
}
|
||||
|
||||
void Error_assert_true(void) {
|
||||
ecs_assert(true, ECS_INTERNAL_ERROR, NULL);
|
||||
|
||||
/* Assert should not trigger */
|
||||
test_assert(true);
|
||||
}
|
||||
|
||||
void Error_assert_false(void) {
|
||||
test_expect_abort();
|
||||
ecs_assert(false, ECS_INTERNAL_ERROR, NULL);
|
||||
|
||||
/* Assert should not trigger */
|
||||
test_assert(false);
|
||||
}
|
||||
|
||||
void Error_assert_false_w_param(void) {
|
||||
test_expect_abort();
|
||||
ecs_assert(false, ECS_INTERNAL_ERROR, "some parameter");
|
||||
|
||||
/* Assert should not trigger */
|
||||
test_assert(false);
|
||||
}
|
||||
|
||||
void Error_error_codes(void) {
|
||||
test_assert(ecs_strerror(ECS_INVALID_PARAMETER) != NULL);
|
||||
test_assert(ecs_strerror(ECS_NOT_A_COMPONENT) != NULL);
|
||||
test_assert(ecs_strerror(ECS_INTERNAL_ERROR) != NULL);
|
||||
test_assert(ecs_strerror(ECS_ALREADY_DEFINED) != NULL);
|
||||
test_assert(ecs_strerror(ECS_INVALID_COMPONENT_SIZE) != NULL);
|
||||
test_assert(ecs_strerror(ECS_INVALID_COMPONENT_ALIGNMENT) != NULL);
|
||||
test_assert(ecs_strerror(ECS_OUT_OF_MEMORY) != NULL);
|
||||
test_assert(ecs_strerror(ECS_MODULE_UNDEFINED) != NULL);
|
||||
test_assert(ecs_strerror(ECS_COLUMN_INDEX_OUT_OF_RANGE) != NULL);
|
||||
test_assert(ecs_strerror(ECS_COLUMN_IS_NOT_SHARED) != NULL);
|
||||
test_assert(ecs_strerror(ECS_COLUMN_IS_SHARED) != NULL);
|
||||
test_assert(ecs_strerror(ECS_COLUMN_TYPE_MISMATCH) != NULL);
|
||||
test_assert(ecs_strerror(ECS_INVALID_WHILE_READONLY) != NULL);
|
||||
test_assert(ecs_strerror(ECS_INVALID_FROM_WORKER) != NULL);
|
||||
test_assert(ecs_strerror(ECS_OUT_OF_RANGE) != NULL);
|
||||
test_assert(ecs_strerror(ECS_OPERATION_FAILED) != NULL);
|
||||
test_assert(ecs_strerror(ECS_MISSING_OS_API) != NULL);
|
||||
test_assert(ecs_strerror(ECS_UNSUPPORTED) != NULL);
|
||||
test_assert(ecs_strerror(ECS_ACCESS_VIOLATION) != NULL);
|
||||
}
|
||||
|
||||
void Error_log_dbg(void) {
|
||||
ecs_dbg("test debug message");
|
||||
test_assert(true);
|
||||
}
|
||||
|
||||
void Error_log_log(void) {
|
||||
ecs_trace("test trace message");
|
||||
test_assert(true);
|
||||
}
|
||||
|
||||
void Error_log_warning(void) {
|
||||
ecs_warn("test warning message");
|
||||
test_assert(true);
|
||||
}
|
||||
|
||||
void Error_log_error(void) {
|
||||
ecs_err("test error message");
|
||||
test_assert(true);
|
||||
}
|
||||
|
||||
void Error_last_error(void) {
|
||||
ecs_os_api.log_last_error_ = 10;
|
||||
int err = ecs_log_last_error();
|
||||
test_int(10, err);
|
||||
test_int(0, ecs_log_last_error());
|
||||
}
|
||||
Reference in New Issue
Block a user