updated tests

This commit is contained in:
Aleksei Chubukov 2023-11-30 21:58:36 +04:00
parent 3974d8f2da
commit 3d8224657c
2 changed files with 37 additions and 33 deletions

View File

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

View File

@ -1,5 +1,5 @@
#ifndef TESTS_H #ifndef TEST_H
#define TESTS_H #define TEST_H
#include <string.h> #include <string.h>
#include <stdio.h> #include <stdio.h>
#define TEST_SOURCE "HeLlo world!\0It's a\tBEAUTIFUL\tday!" #define TEST_SOURCE "HeLlo world!\0It's a\tBEAUTIFUL\tday!"
@ -7,34 +7,38 @@
#define TEST_DESTINATION "GooDBye\0and thanks _for\rall the fish!" #define TEST_DESTINATION "GooDBye\0and thanks _for\rall the fish!"
#define TEST_DESTINATION_LENGHT 38 #define TEST_DESTINATION_LENGHT 38
#define TEST_BUF_SIZE 100 #define TEST_BUF_SIZE 100
#define TESTS_FUNC_NAME #define TEST_FUNC_NAME
#define TESTS_RETURN_PRINTF "%p" #define TEST_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 \ #define TEST_PRINT_BUFFERS(TEST_FUNC_CASE, TEST_BUF_ORIG_SRC, TEST_BUF_ORIG_DEST, TEST_BUF_MOD_SRC, TEST_BUF_MOD_DEST) \
memcpy(d1, d, TEST_BUF_SIZE); \ printf("original " TEST_FUNC_CASE "\n"); \
memcpy(s1, s, TEST_BUF_SIZE); \ dump(TEST_BUF_ORIG_SRC, TEST_SOURCE_LENGHT); \
memcpy(d2, d, TEST_BUF_SIZE); \ dump(TEST_BUF_ORIG_DEST, TEST_DESTINATION_LENGHT); \
memcpy(s2, s, TEST_BUF_SIZE); printf("replicated " TEST_FUNC_CASE "\n"); \
#define TESTS_PRINT_BUFCMP(TESTS_FUNC_CASE) \ dump(TEST_BUF_MOD_SRC, TEST_SOURCE_LENGHT); \
dump(TEST_BUF_MOD_DEST, TEST_DESTINATION_LENGHT);
#define TEST_RESET_BUFFERS(TEST_BUF_PRISCINE_SRC, TEST_BUF_PRISCINE_DEST, TEST_BUF_ORIG_SRC, TEST_BUF_ORIG_DEST, TEST_BUF_MOD_SRC, TEST_BUF_MOD_DEST) \
memcpy(TEST_BUF_ORIG_SRC, TEST_BUF_PRISCINE_DEST, TEST_BUF_SIZE); \
memcpy(TEST_BUF_ORIG_SRC, TEST_BUF_PRISCINE_SRC, TEST_BUF_SIZE); \
memcpy(TEST_BUF_MOD_DEST, TEST_BUF_PRISCINE_DEST, TEST_BUF_SIZE); \
memcpy(TEST_BUF_MOD_SRC, TEST_BUF_PRISCINE_SRC, TEST_BUF_SIZE);
#define TEST_PRINT_BUFCMP(TEST_FUNC_CASE, TEST_BUF_ORIG_SRC, TEST_BUF_ORIG_DEST, TEST_BUF_MOD_SRC, TEST_BUF_MOD_DEST) \
printf( \ printf( \
"buffers comparison:\n " TESTS_FUNC_CASE ":\t%i\n ft_" TESTS_FUNC_CASE ":\t%i\n", \ "buffers comparison:\n " TEST_FUNC_CASE ":\t%i\n ft_" TEST_FUNC_CASE ":\t%i\n", \
bufcmp(s1, s2, TEST_SOURCE_LENGHT), \ bufcmp(TEST_BUF_ORIG_SRC, TEST_BUF_ORIG_DEST, TEST_SOURCE_LENGHT), \
bufcmp(d1, d2, TEST_DESTINATION_LENGHT) \ bufcmp(TEST_BUF_MOD_SRC, TEST_BUF_MOD_DEST, 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) \ #define TEST_PRINT_RETVALS printf("return values: orig: " TEST_RETURN_PRINTF " ft: %p\n", r1, r2)
TESTS_PRINT_BUFFERS(TESTS_FUNC_CASE); \
TESTS_PRINT_BUFCMP(TESTS_FUNC_CASE); \ #define TEST_SYNOPSIS(TEST_FUNC_CASE, TEST_BUF_PRISCINE_SRC, TEST_BUF_PRISCINE_DEST, TEST_BUF_ORIG_SRC, TEST_BUF_ORIG_DEST, TEST_BUF_MOD_SRC, TEST_BUF_MOD_DEST) \
TESTS_PRINT_RETVALS; \ TEST_PRINT_BUFFERS(TEST_FUNC_CASE, TEST_BUF_ORIG_SRC, TEST_BUF_ORIG_DEST, TEST_BUF_MOD_SRC, TEST_BUF_MOD_DEST); \
TESTS_RESET_BUFFERS; TEST_PRINT_BUFCMP(TEST_FUNC_CASE, TEST_BUF_ORIG_SRC, TEST_BUF_ORIG_DEST, TEST_BUF_MOD_SRC, TEST_BUF_MOD_DEST); \
#define TESTS_SEED(type) \ TEST_PRINT_RETVALS; \
TEST_RESET_BUFFERS(TEST_BUF_PRISCINE_SRC, TEST_BUF_PRISCINE_DEST, TEST_BUF_ORIG_SRC, TEST_BUF_ORIG_DEST, TEST_BUF_MOD_SRC, TEST_BUF_MOD_DEST);
#define TEST_SEED(type) \
char s[TEST_BUF_SIZE] = TEST_SOURCE; \ char s[TEST_BUF_SIZE] = TEST_SOURCE; \
char d[TEST_BUF_SIZE] = TEST_DESTINATION; \ char d[TEST_BUF_SIZE] = TEST_DESTINATION; \
type *r1; \ type *r1; \