wizapp-stdlib/tests/cpath/test_cpath.c
2024-10-07 08:01:33 +01:00

184 lines
5.1 KiB
C

#include "test_cpath.h"
#include "cpath.h"
#include "tester.h"
#include <string.h>
#include <stdio.h>
#include <stdbool.h>
#define MAIN_BUF_SIZE 4096
#define TMP_BUF_SIZE 1024
TestFuncResult test_cpath_join_path(void) {
char expected[MAIN_BUF_SIZE] = {0};
char out[MAIN_BUF_SIZE] = {0};
char tmp[TMP_BUF_SIZE] = {0};
snprintf(expected, MAIN_BUF_SIZE, "%chome%cabdelrahman%cDocuments", PATH_SEP, PATH_SEP, PATH_SEP);
snprintf(tmp, 2, "%c", PATH_SEP);
wapp_cpath_join_path(out, tmp, "home", "abdelrahman", "Documents");
bool result = strcmp(out, expected) == 0;
if (!result) {
goto TEST_JOIN_PATH_EXIT;
}
memset(out, 0, strlen(out));
snprintf(expected, MAIN_BUF_SIZE, "home%cabdelrahman%cDocuments", PATH_SEP, PATH_SEP);
wapp_cpath_join_path(out, "home", "abdelrahman", "Documents");
result = result && strcmp(out, expected) == 0;
if (!result) {
goto TEST_JOIN_PATH_EXIT;
}
memset(out, 0, strlen(out));
memset(tmp, 0, strlen(tmp));
snprintf(expected, MAIN_BUF_SIZE, "%chome%cabdelrahman%cDocuments", PATH_SEP, PATH_SEP, PATH_SEP);
snprintf(tmp, TMP_BUF_SIZE, "%chome", PATH_SEP);
wapp_cpath_join_path(out, tmp, "abdelrahman", "Documents");
result = result && strcmp(out, expected) == 0;
if (!result) {
goto TEST_JOIN_PATH_EXIT;
}
memset(out, 0, strlen(out));
memset(tmp, 0, strlen(tmp));
snprintf(expected, MAIN_BUF_SIZE, "home%cabdelrahman%cDocuments", PATH_SEP, PATH_SEP);
snprintf(tmp, TMP_BUF_SIZE, "home%c", PATH_SEP);
wapp_cpath_join_path(out, tmp, "abdelrahman", "Documents");
result = result && strcmp(out, expected) == 0;
if (!result) {
goto TEST_JOIN_PATH_EXIT;
}
memset(out, 0, strlen(out));
memset(tmp, 0, strlen(tmp));
snprintf(expected, MAIN_BUF_SIZE, "%chome", PATH_SEP);
snprintf(tmp, TMP_BUF_SIZE, "%chome", PATH_SEP);
wapp_cpath_join_path(out, tmp, "");
result = result && strcmp(out, expected) == 0;
if (!result) {
goto TEST_JOIN_PATH_EXIT;
}
memset(out, 0, strlen(out));
snprintf(expected, 1, "");
wapp_cpath_join_path(out, "", "");
result = result && strcmp(out, expected) == 0;
if (!result) {
goto TEST_JOIN_PATH_EXIT;
}
memset(out, 0, strlen(out));
snprintf(expected, MAIN_BUF_SIZE, "home");
wapp_cpath_join_path(out, "", "home");
result = result && strcmp(out, expected) == 0;
TEST_JOIN_PATH_EXIT:
return wapp_tester_result(result);
}
TestFuncResult test_cpath_dirname(void) {
char dst[MAIN_BUF_SIZE] = {0};
char expected[MAIN_BUF_SIZE] = {0};
char tmp[TMP_BUF_SIZE] = {0};
snprintf(tmp, 2, "%c", PATH_SEP);
wapp_cpath_dirname(dst, tmp);
bool result = strcmp(dst, tmp) == 0;
if (!result) {
goto TEST_DIRNAME_EXIT;
}
memset(dst, 0, strlen(dst));
wapp_cpath_dirname(dst, "home");
result = strcmp(dst, ".") == 0;
if (!result) {
goto TEST_DIRNAME_EXIT;
}
memset(dst, 0, strlen(dst));
wapp_cpath_dirname(dst, "");
result = strcmp(dst, ".") == 0;
if (!result) {
goto TEST_DIRNAME_EXIT;
}
memset(dst, 0, strlen(dst));
snprintf(tmp, TMP_BUF_SIZE, "%chome%ctest", PATH_SEP, PATH_SEP);
snprintf(expected, MAIN_BUF_SIZE, "%chome", PATH_SEP);
wapp_cpath_dirname(dst, tmp);
result = strcmp(dst, expected) == 0;
if (!result) {
goto TEST_DIRNAME_EXIT;
}
memset(dst, 0, strlen(dst));
memset(tmp, 0, strlen(tmp));
memset(expected, 0, strlen(expected));
snprintf(tmp, TMP_BUF_SIZE, "%chome%ctest%c", PATH_SEP, PATH_SEP, PATH_SEP);
snprintf(expected, MAIN_BUF_SIZE, "%chome", PATH_SEP);
wapp_cpath_dirname(dst, tmp);
result = strcmp(dst, expected) == 0;
TEST_DIRNAME_EXIT:
return wapp_tester_result(result);
}
TestFuncResult test_cpath_dirup(void) {
char dst[MAIN_BUF_SIZE] = {0};
char expected[MAIN_BUF_SIZE] = {0};
char tmp[TMP_BUF_SIZE] = {0};
snprintf(tmp, 2, "%c", PATH_SEP);
wapp_cpath_dirup(dst, 3, tmp);
bool result = strcmp(dst, tmp) == 0;
if (!result) {
goto TEST_DIRUP_EXIT;
}
memset(dst, 0, strlen(dst));
memset(tmp, 0, strlen(tmp));
snprintf(tmp, TMP_BUF_SIZE, "%chome%cabdelrahman%cDocuments", PATH_SEP, PATH_SEP, PATH_SEP);
snprintf(expected, MAIN_BUF_SIZE, "%c", PATH_SEP);
wapp_cpath_dirup(dst, 3, tmp);
result = strcmp(dst, expected) == 0;
if (!result) {
goto TEST_DIRUP_EXIT;
}
memset(dst, 0, strlen(dst));
memset(tmp, 0, strlen(tmp));
snprintf(tmp, TMP_BUF_SIZE, "home%cabdelrahman%cDocuments", PATH_SEP, PATH_SEP);
wapp_cpath_dirup(dst, 3, tmp);
result = strcmp(dst, ".") == 0;
if (!result) {
goto TEST_DIRUP_EXIT;
}
memset(dst, 0, strlen(dst));
memset(tmp, 0, strlen(tmp));
memset(expected, 0, strlen(expected));
snprintf(tmp, TMP_BUF_SIZE, "%chome%cabdelrahman%cDocuments", PATH_SEP, PATH_SEP, PATH_SEP);
snprintf(expected, MAIN_BUF_SIZE, "%chome", PATH_SEP);
wapp_cpath_dirup(dst, 2, tmp);
result = strcmp(dst, expected) == 0;
if (!result) {
goto TEST_DIRUP_EXIT;
}
memset(dst, 0, strlen(dst));
memset(tmp, 0, strlen(tmp));
snprintf(tmp, TMP_BUF_SIZE, "home%cabdelrahman%cDocuments", PATH_SEP, PATH_SEP);
wapp_cpath_dirup(dst, 2, tmp);
result = strcmp(dst, "home") == 0;
TEST_DIRUP_EXIT:
return wapp_tester_result(result);
}