Compare commits
2 Commits
d4da57d77b
...
3974d8f2da
Author | SHA1 | Date | |
---|---|---|---|
|
3974d8f2da | ||
|
5d2cf7f9c7 |
36
c03/ex02.c
Normal file
36
c03/ex02.c
Normal 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
36
c03/ex03.c
Normal 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)");
|
||||
}
|
@ -2,10 +2,48 @@
|
||||
#define TESTS_H
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#define TEST_SOURCE "HeLlo world!\0It's a\tBEAUTIFUL\tday!"
|
||||
#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"
|
||||
|
Loading…
Reference in New Issue
Block a user