refactor(tests): removed success and changed it for error value

This commit is contained in:
Mineplay5780 2025-12-17 18:53:20 +01:00
parent 69439c6178
commit 7b44871cb2
2 changed files with 68 additions and 51 deletions

View file

@ -7,16 +7,20 @@
#define COSMS_CORE_TEST_FUNCTION_NAME(name) cosms_core_##name##_test #define COSMS_CORE_TEST_FUNCTION_NAME(name) cosms_core_##name##_test
#define COSMS_CORE_TEST_DEFINE(name) void cosms_core_##name##_test(void) #define COSMS_CORE_TEST_DEFINE(name) void cosms_core_##name##_test(void)
#define COSMS_CORE_TEST_TEST(name, implementation) void cosms_core_##name##_test(void) { \ #define COSMS_CORE_TEST_TEST(name, implementation) void cosms_core_##name##_test(void) { \
const char *cosms_core_test_name = #name; \ printf("----------------------------------------\n%s\n----------------------------------------\n", #name); \
printf("----------------------------------------\n%s\n----------------------------------------\n", cosms_core_test_name); \ implementation \
implementation \
} }
#define COSMS_CORE_TEST_SUB_TEST(name, implementation) { \ #define COSMS_CORE_TEST_SUB_TEST(name, implementation) { \
const char* cosms_core_sub_test_name = #name; \ const char *cosms_core_test_sub_test_error = NULL; \
printf("[*] running test %s...\n", cosms_core_sub_test_name); \ printf("[*] running test %s...\n", #name); \
implementation \ implementation \
if (cosms_core_test_sub_test_error == NULL) { \
printf("[+] test %s completed successfully!\n", #name); \
} else { \
printf("[-] test %s failed with error: %s\n", #name, cosms_core_test_sub_test_error); \
} \
} }
#define COSMS_CORE_TEST_EXPORT(name, ...) static const cosms_core_test cosms_core_test_##name[] = { \ #define COSMS_CORE_TEST_EXPORT(name, ...) static const cosms_core_test cosms_core_test_##name[] = { \
@ -34,17 +38,6 @@
} \ } \
} }
#define COSMS_CORE_TEST_SUCCESS(test_name) printf("[+] test %s completed successfully!\n", test_name);
typedef void (*cosms_core_test)(); typedef void (*cosms_core_test)();
static inline bool cosms_core_test_assert(const char *test_name, bool expression, const char *error_message) {
if (!expression) {
printf("[-] test %s failed with error: %s\n", test_name, error_message);
return false;
}
return true;
}
#endif #endif

View file

@ -10,11 +10,13 @@ COSMS_CORE_TEST_TEST(file_read,
unsigned long long file_size = 0; unsigned long long file_size = 0;
char *file_buffer = NULL; char *file_buffer = NULL;
CosmsCoreFileError error = cosms_core_file_read("tests/data/small-file.txt", &file_buffer, &file_size); CosmsCoreFileError error = cosms_core_file_read("tests/data/small-file.txt", &file_buffer, &file_size);
if (cosms_core_test_assert(cosms_core_sub_test_name, error == COSMS_CORE_FILE_OK, cosms_core_file_error_string(error))) { if (error == COSMS_CORE_FILE_OK) {
const char *expected_result = "Hello, World!"; const char *expected_result = "Hello, World!";
if (cosms_core_test_assert(cosms_core_sub_test_name, file_size == strlen(expected_result) && strcmp(expected_result, file_buffer) == 0, "result does not match expected result")) { if (file_size != strlen(expected_result) || strcmp(expected_result, file_buffer) != 0) {
COSMS_CORE_TEST_SUCCESS(cosms_core_sub_test_name); cosms_core_test_sub_test_error = "result does not match expected result";
} }
} else {
cosms_core_test_sub_test_error = cosms_core_file_error_string(error);
} }
if (file_buffer != NULL) { if (file_buffer != NULL) {
@ -26,7 +28,7 @@ COSMS_CORE_TEST_TEST(file_read,
unsigned long long file_size = 0; unsigned long long file_size = 0;
char *file_buffer = NULL; char *file_buffer = NULL;
CosmsCoreFileError error = cosms_core_file_read("tests/data/large-file.txt", &file_buffer, &file_size); CosmsCoreFileError error = cosms_core_file_read("tests/data/large-file.txt", &file_buffer, &file_size);
if (cosms_core_test_assert(cosms_core_sub_test_name, error == COSMS_CORE_FILE_OK, cosms_core_file_error_string(error))) { if (error == COSMS_CORE_FILE_OK) {
unsigned long long expected_size = 5242880000ULL; unsigned long long expected_size = 5242880000ULL;
char *expected_result = (char*)malloc((expected_size + 1) * sizeof(char)); char *expected_result = (char*)malloc((expected_size + 1) * sizeof(char));
if (!expected_result) { if (!expected_result) {
@ -38,11 +40,13 @@ COSMS_CORE_TEST_TEST(file_read,
memset(expected_result, 'a', expected_size); memset(expected_result, 'a', expected_size);
expected_result[expected_size] = '\0'; expected_result[expected_size] = '\0';
if (cosms_core_test_assert(cosms_core_sub_test_name, file_size == expected_size && strcmp(expected_result, file_buffer) == 0, "result does not match expected result")) { if (file_size != expected_size || strcmp(expected_result, file_buffer) != 0) {
COSMS_CORE_TEST_SUCCESS(cosms_core_sub_test_name); cosms_core_test_sub_test_error = "result does not match expected result";
} }
free(expected_result); free(expected_result);
} else {
cosms_core_test_sub_test_error = cosms_core_file_error_string(error);
} }
if (file_buffer != NULL) { if (file_buffer != NULL) {
@ -54,8 +58,8 @@ COSMS_CORE_TEST_TEST(file_read,
unsigned long long file_size = 0; unsigned long long file_size = 0;
char *file_buffer = NULL; char *file_buffer = NULL;
CosmsCoreFileError error = cosms_core_file_read("non-existing-file.cosms", &file_buffer, &file_size); CosmsCoreFileError error = cosms_core_file_read("non-existing-file.cosms", &file_buffer, &file_size);
if (cosms_core_test_assert(cosms_core_sub_test_name, error == COSMS_CORE_FILE_NOT_FOUND, cosms_core_file_error_string(error))) { if (error != COSMS_CORE_FILE_NOT_FOUND) {
COSMS_CORE_TEST_SUCCESS(cosms_core_sub_test_name); cosms_core_test_sub_test_error = cosms_core_file_error_string(error);
} }
if (file_buffer != NULL) { if (file_buffer != NULL) {
@ -68,18 +72,22 @@ COSMS_CORE_TEST_TEST(file_write,
COSMS_CORE_TEST_SUB_TEST(writting small file, COSMS_CORE_TEST_SUB_TEST(writting small file,
char *file_buffer = "Hello, World!"; char *file_buffer = "Hello, World!";
CosmsCoreFileError error = cosms_core_file_write("tests/data/small-write-file.txt", file_buffer, strlen(file_buffer), true); CosmsCoreFileError error = cosms_core_file_write("tests/data/small-write-file.txt", file_buffer, strlen(file_buffer), true);
if (cosms_core_test_assert(cosms_core_sub_test_name, error == COSMS_CORE_FILE_OK, cosms_core_file_error_string(error))) { if (error == COSMS_CORE_FILE_OK) {
char *file_content = NULL; char *file_content = NULL;
error = cosms_core_file_read("tests/data/small-write-file.txt", &file_content, NULL); error = cosms_core_file_read("tests/data/small-write-file.txt", &file_content, NULL);
if (cosms_core_test_assert(cosms_core_sub_test_name, error == COSMS_CORE_FILE_OK, cosms_core_file_error_string(error))) { if (error == COSMS_CORE_FILE_OK) {
if (cosms_core_test_assert(cosms_core_sub_test_name, strcmp(file_buffer, file_content) == 0, "file content not what was written")) { if (strcmp(file_buffer, file_content) != 0) {
COSMS_CORE_TEST_SUCCESS(cosms_core_sub_test_name); cosms_core_test_sub_test_error = "file content not what was written";
} }
} else {
cosms_core_test_sub_test_error = cosms_core_file_error_string(error);
} }
if (file_content != NULL) { if (file_content != NULL) {
free(file_content); free(file_content);
} }
} else {
cosms_core_test_sub_test_error = cosms_core_file_error_string(error);
} }
) )
@ -96,18 +104,22 @@ COSMS_CORE_TEST_TEST(file_write,
large_file_buffer[large_file_size] = '\0'; large_file_buffer[large_file_size] = '\0';
CosmsCoreFileError error = cosms_core_file_write("tests/data/large-write-file.txt", large_file_buffer, large_file_size, true); CosmsCoreFileError error = cosms_core_file_write("tests/data/large-write-file.txt", large_file_buffer, large_file_size, true);
if (cosms_core_test_assert(cosms_core_sub_test_name, error == COSMS_CORE_FILE_OK, cosms_core_file_error_string(error))) { if (error == COSMS_CORE_FILE_OK) {
char *file_content = NULL; char *file_content = NULL;
error = cosms_core_file_read("tests/data/large-write-file.txt", &file_content, NULL); error = cosms_core_file_read("tests/data/large-write-file.txt", &file_content, NULL);
if (cosms_core_test_assert(cosms_core_sub_test_name, error == COSMS_CORE_FILE_OK, cosms_core_file_error_string(error))) { if (error == COSMS_CORE_FILE_OK) {
if (cosms_core_test_assert(cosms_core_sub_test_name, strcmp(large_file_buffer, file_content) == 0, "file content not what was written")) { if (strcmp(large_file_buffer, file_content) != 0) {
COSMS_CORE_TEST_SUCCESS(cosms_core_sub_test_name); cosms_core_test_sub_test_error = "file content not what was written";
} }
} else {
cosms_core_test_sub_test_error = cosms_core_file_error_string(error);
} }
if (file_content != NULL) { if (file_content != NULL) {
free(file_content); free(file_content);
} }
} else {
cosms_core_test_sub_test_error = cosms_core_file_error_string(error);
} }
free(large_file_buffer); free(large_file_buffer);
@ -116,37 +128,45 @@ COSMS_CORE_TEST_TEST(file_write,
COSMS_CORE_TEST_SUB_TEST(appending file, COSMS_CORE_TEST_SUB_TEST(appending file,
char *file_buffer = "Hello, World!"; char *file_buffer = "Hello, World!";
CosmsCoreFileError error = cosms_core_file_write("tests/data/small-write-file.txt", file_buffer, strlen(file_buffer), false); CosmsCoreFileError error = cosms_core_file_write("tests/data/small-write-file.txt", file_buffer, strlen(file_buffer), false);
if (cosms_core_test_assert(cosms_core_sub_test_name, error == COSMS_CORE_FILE_OK, cosms_core_file_error_string(error))) { if (error == COSMS_CORE_FILE_OK) {
char *file_content = NULL; char *file_content = NULL;
error = cosms_core_file_read("tests/data/small-write-file.txt", &file_content, NULL); error = cosms_core_file_read("tests/data/small-write-file.txt", &file_content, NULL);
if (cosms_core_test_assert(cosms_core_sub_test_name, error == COSMS_CORE_FILE_OK, cosms_core_file_error_string(error))) { if (error == COSMS_CORE_FILE_OK) {
const char *expected_result = "Hello, World!Hello, World!"; const char *expected_result = "Hello, World!Hello, World!";
if (cosms_core_test_assert(cosms_core_sub_test_name, strcmp(expected_result, file_content) == 0, "file content not what was written")) { if (strcmp(expected_result, file_content) != 0) {
COSMS_CORE_TEST_SUCCESS(cosms_core_sub_test_name); cosms_core_test_sub_test_error = "file content not what was written";
} }
} else {
cosms_core_test_sub_test_error = cosms_core_file_error_string(error);
} }
if (file_content != NULL) { if (file_content != NULL) {
free(file_content); free(file_content);
} }
} else {
cosms_core_test_sub_test_error = cosms_core_file_error_string(error);
} }
) )
COSMS_CORE_TEST_SUB_TEST(appending to non existing file, COSMS_CORE_TEST_SUB_TEST(appending to non existing file,
char *file_buffer = "Hello, World!"; char *file_buffer = "Hello, World!";
CosmsCoreFileError error = cosms_core_file_write("tests/data/append-write-file.txt", file_buffer, strlen(file_buffer), false); CosmsCoreFileError error = cosms_core_file_write("tests/data/append-write-file.txt", file_buffer, strlen(file_buffer), false);
if (cosms_core_test_assert(cosms_core_sub_test_name, error == COSMS_CORE_FILE_OK, cosms_core_file_error_string(error))) { if (error == COSMS_CORE_FILE_OK) {
char *file_content = NULL; char *file_content = NULL;
error = cosms_core_file_read("tests/data/append-write-file.txt", &file_content, NULL); error = cosms_core_file_read("tests/data/append-write-file.txt", &file_content, NULL);
if (cosms_core_test_assert(cosms_core_sub_test_name, error == COSMS_CORE_FILE_OK, cosms_core_file_error_string(error))) { if (error == COSMS_CORE_FILE_OK) {
if (cosms_core_test_assert(cosms_core_sub_test_name, strcmp(file_buffer, file_content) == 0, "file content not what was written")) { if (strcmp(file_buffer, file_content) != 0) {
COSMS_CORE_TEST_SUCCESS(cosms_core_sub_test_name); cosms_core_test_sub_test_error = "file content not what was written";
} }
} else {
cosms_core_test_sub_test_error = cosms_core_file_error_string(error);
} }
if (file_content != NULL) { if (file_content != NULL) {
free(file_content); free(file_content);
} }
} else {
cosms_core_test_sub_test_error = cosms_core_file_error_string(error);
} }
) )
) )
@ -154,38 +174,42 @@ COSMS_CORE_TEST_TEST(file_write,
COSMS_CORE_TEST_TEST(file_delete, COSMS_CORE_TEST_TEST(file_delete,
COSMS_CORE_TEST_SUB_TEST(deleting small file, COSMS_CORE_TEST_SUB_TEST(deleting small file,
CosmsCoreFileError error = cosms_core_file_delete("tests/data/small-write-file.txt"); CosmsCoreFileError error = cosms_core_file_delete("tests/data/small-write-file.txt");
if (cosms_core_test_assert(cosms_core_sub_test_name, error == COSMS_CORE_FILE_OK, cosms_core_file_error_string(error))) { if (error == COSMS_CORE_FILE_OK) {
char *file_content = NULL; char *file_content = NULL;
error = cosms_core_file_read("tests/data/small-write-file.txt", &file_content, NULL); error = cosms_core_file_read("tests/data/small-write-file.txt", &file_content, NULL);
if (cosms_core_test_assert(cosms_core_sub_test_name, error == COSMS_CORE_FILE_NOT_FOUND, cosms_core_file_error_string(error))) { if (error != COSMS_CORE_FILE_NOT_FOUND) {
COSMS_CORE_TEST_SUCCESS(cosms_core_sub_test_name); cosms_core_test_sub_test_error = cosms_core_file_error_string(error);
} }
if (file_content != NULL) { if (file_content != NULL) {
free(file_content); free(file_content);
} }
} else {
cosms_core_test_sub_test_error = cosms_core_file_error_string(error);
} }
) )
COSMS_CORE_TEST_SUB_TEST(deleting large file, COSMS_CORE_TEST_SUB_TEST(deleting large file,
CosmsCoreFileError error = cosms_core_file_delete("tests/data/append-write-file.txt"); CosmsCoreFileError error = cosms_core_file_delete("tests/data/append-write-file.txt");
if (cosms_core_test_assert(cosms_core_sub_test_name, error == COSMS_CORE_FILE_OK, cosms_core_file_error_string(error))) { if (error == COSMS_CORE_FILE_OK) {
char *file_content = NULL; char *file_content = NULL;
error = cosms_core_file_read("tests/data/append-write-file.txt", &file_content, NULL); error = cosms_core_file_read("tests/data/append-write-file.txt", &file_content, NULL);
if (cosms_core_test_assert(cosms_core_sub_test_name, error == COSMS_CORE_FILE_NOT_FOUND, cosms_core_file_error_string(error))) { if (error != COSMS_CORE_FILE_NOT_FOUND) {
COSMS_CORE_TEST_SUCCESS(cosms_core_sub_test_name); cosms_core_test_sub_test_error = cosms_core_file_error_string(error);
} }
if (file_content != NULL) { if (file_content != NULL) {
free(file_content); free(file_content);
} }
} else {
cosms_core_test_sub_test_error = cosms_core_file_error_string(error);
} }
) )
COSMS_CORE_TEST_SUB_TEST(deleting non existing file, COSMS_CORE_TEST_SUB_TEST(deleting non existing file,
CosmsCoreFileError error = cosms_core_file_delete("non-existing-file.cosms"); CosmsCoreFileError error = cosms_core_file_delete("non-existing-file.cosms");
if (cosms_core_test_assert(cosms_core_sub_test_name, error == COSMS_CORE_FILE_NOT_FOUND, cosms_core_file_error_string(error))) { if (error != COSMS_CORE_FILE_NOT_FOUND) {
COSMS_CORE_TEST_SUCCESS(cosms_core_sub_test_name); cosms_core_test_sub_test_error = cosms_core_file_error_string(error);
} }
) )
) )