From ca5071168115e5cd272978e13ddb9fbb1365afbc Mon Sep 17 00:00:00 2001 From: Charles Cabergs Date: Wed, 21 Oct 2020 15:58:12 +0200 Subject: WIP: Linux compatibility --- Makefile | 65 ++++++++++++++++------------- functions_reference/ref_ft_atoi_base.c | 6 ++- functions_reference/ref_ft_list_remove_if.c | 6 ++- functions_reference/ref_ft_list_size.c | 6 ++- functions_reference/ref_ft_list_sort.c | 6 ++- libasm_test.h | 16 +++++-- main.c | 6 ++- 7 files changed, 73 insertions(+), 38 deletions(-) diff --git a/Makefile b/Makefile index 051b947..206544b 100644 --- a/Makefile +++ b/Makefile @@ -6,69 +6,74 @@ # By: cacharle +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2020/02/08 03:06:59 by cacharle #+# #+# # -# Updated: 2020/04/12 20:12:48 by charles ### ########.fr # +# Updated: 2020/10/21 15:57:34 by charles ### ########.fr # # # # **************************************************************************** # -RM = rm -f -UNAME = $(shell uname) - -ifeq ($(UNAME), Linux) - PYTHON = python3.7 -else - PYTHON = python3 -endif +LIBASM_PATH = ../pg -LIBASM_PATH = ../libasm +RM = rm -f +PYTHON = python3 CC = gcc -CCFLAGS = -I. -Wall -Wextra +CCFLAGS = -I. -Wall -Wextra -Wno-nonnull LDFLAGS = -L$(LIBASM_PATH) -lasm NAME = runtest SRC = main.c \ helper.c \ - helper_list.c \ test/ft_strlen_test.c \ test/ft_strcpy_test.c \ test/ft_strcmp_test.c \ test/ft_write_test.c \ test/ft_read_test.c \ test/ft_strdup_test.c \ - test/ft_atoi_base_test.c \ - test/ft_list_size_test.c \ - test/ft_list_push_front_test.c \ - test/ft_list_sort_test.c \ - test/ft_list_remove_if_test.c \ - functions_reference/ref_ft_atoi_base.c \ - functions_reference/ref_ft_list_size.c \ - functions_reference/ref_ft_list_push_front.c \ - functions_reference/ref_ft_list_sort.c \ - functions_reference/ref_ft_list_remove_if.c + +SRCBONUS = helper_list.c \ + test/ft_atoi_base_test.c \ + test/ft_list_size_test.c \ + test/ft_list_push_front_test.c \ + test/ft_list_sort_test.c \ + test/ft_list_remove_if_test.c \ + functions_reference/ref_ft_atoi_base.c \ + functions_reference/ref_ft_list_size.c \ + functions_reference/ref_ft_list_push_front.c \ + functions_reference/ref_ft_list_sort.c \ + functions_reference/ref_ft_list_remove_if.c + +ifeq ($(LIBASM_TEST_BONUS),yes) + SRC += $(SRCBONUS) + CCFLAGS += -D LIBASM_TEST_BONUS +endif + +# CCFLAGS += -fPIE -fPIC OBJ = $(SRC:.c=.o) +OBJBONUS = $(SRCBONUS:.c=.o) +OBJBONUS += $(OBJ) + run: pretty -runbonus: prettybonus +# runbonus: prettybonus -prettybonus: allbonus pretty +# prettybonus: allbonus pretty pretty: all ./$(NAME) 2> /dev/null | $(PYTHON) prettier.py -run_rawbonus: allbonus run_raw +# run_rawbonus: allbonus run_raw run_raw: all ./$(NAME) 2> /dev/null -run_debugbonus: allbonus run_debug +# run_debugbonus: allbonus run_debug run_debug: all ./$(NAME) all: $(NAME) -allbonus: CCFLAGS += -D LIBASM_TEST_BONUS -allbonus: all +# allbonus: +# allbonus: all $(NAME): libasm_all $(OBJ) - $(CC) -o $@ $(OBJ) $(LDFLAGS) + $(CC) -fPIE -fPIC -o $@ $(OBJ) $(LDFLAGS) %.o: %.c $(CC) $(CCFLAGS) -c -o $@ $< @@ -87,3 +92,5 @@ libasm_all: libasm_fclean: make -C $(LIBASM_PATH) fclean + +.PHONY: run pretty run_raw run_debug all clean fclean re libasm_all libasm_fclean diff --git a/functions_reference/ref_ft_atoi_base.c b/functions_reference/ref_ft_atoi_base.c index 1599163..52dd92c 100644 --- a/functions_reference/ref_ft_atoi_base.c +++ b/functions_reference/ref_ft_atoi_base.c @@ -6,13 +6,15 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/08 03:20:16 by cacharle #+# #+# */ -/* Updated: 2020/04/13 15:00:33 by charles ### ########.fr */ +/* Updated: 2020/10/21 15:29:23 by charles ### ########.fr */ /* */ /* ************************************************************************** */ #include #include "libasm_test.h" +#ifdef LIBASM_TEST_BONUS + static bool valid_base(char *base) { @@ -54,3 +56,5 @@ int ref_ft_atoi_base(char *str, char *base) } return is_negative ? -nb : nb; } + +#endif diff --git a/functions_reference/ref_ft_list_remove_if.c b/functions_reference/ref_ft_list_remove_if.c index 90bd1cc..c7a584f 100644 --- a/functions_reference/ref_ft_list_remove_if.c +++ b/functions_reference/ref_ft_list_remove_if.c @@ -6,12 +6,14 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/08 03:20:03 by cacharle #+# #+# */ -/* Updated: 2020/04/13 15:01:02 by charles ### ########.fr */ +/* Updated: 2020/10/21 15:28:59 by charles ### ########.fr */ /* */ /* ************************************************************************** */ #include "libasm_test.h" +#ifdef LIBASM_TEST_BONUS + void ref_ft_list_remove_if(t_list **begin_list, void *data_ref, int (*cmp)(), void (*free_fct)(void *)) { @@ -30,3 +32,5 @@ void ref_ft_list_remove_if(t_list **begin_list, void *data_ref, *begin_list = saved_next; ref_ft_list_remove_if(begin_list, data_ref, cmp, free_fct); } + +#endif diff --git a/functions_reference/ref_ft_list_size.c b/functions_reference/ref_ft_list_size.c index c403732..a76a472 100644 --- a/functions_reference/ref_ft_list_size.c +++ b/functions_reference/ref_ft_list_size.c @@ -6,12 +6,14 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/08 03:20:11 by cacharle #+# #+# */ -/* Updated: 2020/04/13 15:00:42 by charles ### ########.fr */ +/* Updated: 2020/10/21 15:28:41 by charles ### ########.fr */ /* */ /* ************************************************************************** */ #include "libasm_test.h" +#ifdef LIBASM_TEST_BONUS + int ref_ft_list_size(t_list *begin_list) { int counter; @@ -24,3 +26,5 @@ int ref_ft_list_size(t_list *begin_list) } return counter; } + +#endif diff --git a/functions_reference/ref_ft_list_sort.c b/functions_reference/ref_ft_list_sort.c index d203231..08914b3 100644 --- a/functions_reference/ref_ft_list_sort.c +++ b/functions_reference/ref_ft_list_sort.c @@ -6,12 +6,14 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/08 02:49:28 by cacharle #+# #+# */ -/* Updated: 2020/04/13 15:00:52 by charles ### ########.fr */ +/* Updated: 2020/10/21 15:28:30 by charles ### ########.fr */ /* */ /* ************************************************************************** */ #include "libasm_test.h" +#ifdef LIBASM_TEST_BONUS + static t_list* merge_sorted_list(t_list* l1, t_list* l2, int (*cmp)(void *, void*)) { @@ -57,3 +59,5 @@ void ref_ft_list_sort(t_list **begin_list, int (*cmp)(void *, void*)) ref_ft_list_sort(&middle, cmp); *begin_list = merge_sorted_list(*begin_list, middle, cmp); } + +#endif diff --git a/libasm_test.h b/libasm_test.h index 852a27a..82b675a 100644 --- a/libasm_test.h +++ b/libasm_test.h @@ -6,7 +6,7 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/08 03:07:19 by cacharle #+# #+# */ -/* Updated: 2020/10/06 15:11:17 by cacharle ### ########.fr */ +/* Updated: 2020/10/21 15:37:33 by charles ### ########.fr */ /* */ /* ************************************************************************** */ @@ -41,6 +41,7 @@ char* ft_strdup(const char *str); /* * bonus */ +# ifdef LIBASM_TEST_BONUS int ft_atoi_base(const char *str, const char *base); typedef struct s_list @@ -54,6 +55,7 @@ int ft_list_size(t_list *begin_list); void ft_list_sort(t_list **begin_list, int (*cmp)()); void ft_list_remove_if(t_list **begin_list, void *data_ref, int (*cmp)(), void (*free_fct)(void *)); +# endif /* * test_functions @@ -65,11 +67,13 @@ void ft_write_test(void); void ft_read_test(void); void ft_strdup_test(void); +# ifdef LIBASM_TEST_BONUS void ft_atoi_base_test(void); void ft_list_push_front_test(void); void ft_list_size_test(void); void ft_list_sort_test(void); void ft_list_remove_if_test(void); +# endif /* @@ -78,6 +82,7 @@ void ft_list_remove_if_test(void); void print_ok(void); void print_signaled_ko(void); +# ifdef LIBASM_TEST_BONUS int* create_data_elem(int data); t_list* create_elem(int data); t_list* list_from_format(char *fmt); @@ -85,22 +90,25 @@ t_list* list_dup(t_list *list); int list_cmp(t_list *l1, t_list *l2); void list_print(t_list *list); void list_destroy(t_list *list); +# endif /* * function of reference */ +# ifdef LIBASM_TEST_BONUS int ref_ft_atoi_base(char *str, char *base); void ref_ft_list_push_front(t_list **begin_list, void *data); int ref_ft_list_size(t_list *begin_list); void ref_ft_list_sort(t_list **begin_list, int (*cmp)()); void ref_ft_list_remove_if(t_list **begin_list, void *data_ref, int (*cmp)(), void (*free_fct)(void *)); +# endif /* * segfault tester */ -int pid; -bool signaled; +extern int pid; +extern bool signaled; # define TEST_SEGFAULT(x) do { \ if ((pid = fork()) < 0) \ @@ -114,7 +122,7 @@ bool signaled; } \ } while(0) -char *test_name; +extern char *test_name; # define TEST_ASM_FUNCTION(x) do { \ TEST_SEGFAULT(x); \ diff --git a/main.c b/main.c index 54326d7..9e4afa7 100644 --- a/main.c +++ b/main.c @@ -6,12 +6,16 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/08 03:06:45 by cacharle #+# #+# */ -/* Updated: 2020/10/06 15:04:34 by cacharle ### ########.fr */ +/* Updated: 2020/10/21 15:37:28 by charles ### ########.fr */ /* */ /* ************************************************************************** */ #include "libasm_test.h" +int pid; +bool signaled; +char *test_name; + int main(void) { ft_strlen_test(); -- cgit