Compare commits

...

2 Commits

Author SHA1 Message Date
Aleksei Chubukov
3974d8f2da c03: more mains 2023-11-30 21:36:48 +04:00
Aleksei Chubukov
5d2cf7f9c7 some upgrades to tests 2023-11-30 21:35:58 +04:00
3 changed files with 112 additions and 2 deletions

36
c03/ex02.c Normal file
View File

@ -0,0 +1,36 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ex02.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: achubuko <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2023/11/30 19:58:12 by achubuko #+# #+# */
/* Updated: 2023/11/30 21:14:32 by achubuko ### ########.fr */
/* */
/* ************************************************************************** */
#include <tests.h>
#define TESTS_RETURN_PRINTF "%p"
char *ft_strcat(char *dest, char *src);
int main(void)
{
TESTS_SEED(char);
printf("initial strings:\n");
dump(s, TEST_SOURCE_LENGHT);
dump(d, TEST_DESTINATION_LENGHT);
r1 = strcat(d1, s1);
r2 = ft_strcat(d2, s2);
TESTS_SYNOPSIS("strcat(d, s)");
r1 = strcat(d1, s1);
r2 = ft_strcat(d2, s2);
TESTS_SYNOPSIS("strcat(d, s)");
r1 = strcat(s1, d1);
r2 = ft_strcat(s2, d2);
TESTS_SYNOPSIS("strcat(s, d)");
}

36
c03/ex03.c Normal file
View File

@ -0,0 +1,36 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ex02.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: achubuko <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2023/11/30 19:58:12 by achubuko #+# #+# */
/* Updated: 2023/11/30 21:32:12 by achubuko ### ########.fr */
/* */
/* ************************************************************************** */
#include <tests.h>
#define TESTS_RETURN_PRINTF "%p"
char *ft_strncat(char *dest, char *src, unsigned int nb);
int main(void)
{
TESTS_SEED(char);
printf("initial strings:\n");
dump(s, TEST_SOURCE_LENGHT);
dump(d, TEST_DESTINATION_LENGHT);
r1 = strncat(d1, s1, 6);
r2 = ft_strncat(d2, s2, 6);
TESTS_SYNOPSIS("strncat(d, s, 6)");
r1 = strncat(d1, s1, 20);
r2 = ft_strncat(d2, s2, 20);
TESTS_SYNOPSIS("strncat(d, s, 20)");
r1 = strncat(s1, d1, 5);
r2 = ft_strncat(s2, d2, 5);
TESTS_SYNOPSIS("strncat(s, d, 5)");
}

View File

@ -4,8 +4,46 @@
#include <stdio.h>
#define TEST_SOURCE "HeLlo world!\0It's a\tBEAUTIFUL\tday!"
#define TEST_SOURCE_LENGHT 35
#define TEST_DESTINATION "GooDBye\0and thanks \tfor\rall the fish!"
#define TEST_DESTINATION "GooDBye\0and thanks _for\rall the fish!"
#define TEST_DESTINATION_LENGHT 38
#define TEST_BUF_SIZE 100
#define TESTS_FUNC_NAME
#define TESTS_RETURN_PRINTF "%p"
#define TESTS_PRINT_BUFFERS(TESTS_FUNC_CASE) \
printf("original " TESTS_FUNC_CASE "\n"); \
dump(s1, TEST_SOURCE_LENGHT); \
dump(d1, TEST_DESTINATION_LENGHT); \
printf("replicated " TESTS_FUNC_CASE "\n"); \
dump(s2, TEST_SOURCE_LENGHT); \
dump(d2, TEST_DESTINATION_LENGHT);
#define TESTS_RESET_BUFFERS \
memcpy(d1, d, TEST_BUF_SIZE); \
memcpy(s1, s, TEST_BUF_SIZE); \
memcpy(d2, d, TEST_BUF_SIZE); \
memcpy(s2, s, TEST_BUF_SIZE);
#define TESTS_PRINT_BUFCMP(TESTS_FUNC_CASE) \
printf( \
"buffers comparison:\n " TESTS_FUNC_CASE ":\t%i\n ft_" TESTS_FUNC_CASE ":\t%i\n", \
bufcmp(s1, s2, TEST_SOURCE_LENGHT), \
bufcmp(d1, d2, TEST_DESTINATION_LENGHT) \
);
#define TESTS_PRINT_RETVALS printf("return values: orig: " TESTS_RETURN_PRINTF " ft: %p\n", r1, r2)
#define TESTS_SYNOPSIS(TESTS_FUNC_CASE) \
TESTS_PRINT_BUFFERS(TESTS_FUNC_CASE); \
TESTS_PRINT_BUFCMP(TESTS_FUNC_CASE); \
TESTS_PRINT_RETVALS; \
TESTS_RESET_BUFFERS;
#define TESTS_SEED(type) \
char s[TEST_BUF_SIZE] = TEST_SOURCE; \
char d[TEST_BUF_SIZE] = TEST_DESTINATION; \
type *r1; \
char s1[TEST_BUF_SIZE] = TEST_SOURCE; \
char d1[TEST_BUF_SIZE] = TEST_DESTINATION; \
type *r2; \
char s2[TEST_BUF_SIZE] = TEST_SOURCE; \
char d2[TEST_BUF_SIZE] = TEST_DESTINATION;
#define FG_WHT "\x1B[37m"
#define FG_MAG "\x1B[35m"
#define COLOR_RESET "\x1B[0m"