create linked list generic

This commit is contained in:
2024-04-25 00:58:04 +02:00
parent 6a24c2b427
commit 1c4f8f801f
6 changed files with 430 additions and 0 deletions
+60
View File
@@ -0,0 +1,60 @@
NAME_TEST=is_good
CC=gcc
ROOT_DIR=$(PWD)
YTESTDIR=$(PWD)/../../ytest_t
INCLUDE_DIR=$(PWD)/../src
CFLAGS=-I$(INCLUDE_DIR) -I$(YTESTDIR)/include_ytest/include
LDFLAGS=-L$(YTESTDIR) -lytest
#SRC_DIR=$(ROOT_DIR)/src
#SRC=$(wildcard */*/*.c)
SRC=$(wildcard **/**/*.c)
#HEADS=$(OBJS:.o=.h)
TEST_DIR=$(PWD)
EXECSRC=$(NAME_TEST).c
EXEC=launch_$(NAME_TEST)_m
LISTDIR=$(PWD)/..
LISTSRC_O=$(LISTDIR)/src/list_t/list_t.o
TOPTARGETS := all clean
DEPS=$(LISTDIR) $(YTESTDIR)
$(TOPTARGETS): $(DEPS)
$(DEPS):
$(MAKE) -C $@ $(MAKECMDGOALS)
#LISTSRC_O=$(LISTSRC:.c=.o)
#SETTSRC_O=$(PWD)/../src/set_theoric_t/set_theoric_t.o
#SETTSRC_O=$(SETTSRC:.c=.o)
#TOOLSRC=$(TOOLDIR)/src/tools_t/tools_t.c
#TOOLSRC_O=$(TOOLSRC:.c=.o)
OBJ=$(SRC:.c=.o) $(LISTSRC_O)
LIB_YTEST=$(YTESTDIR)/libytest.so
all: $(EXEC) $(LIB_YTEST)
$(EXEC): $(EXECSRC) $(OBJ)
$(CC) -o $@ $^ $(CFLAGS) $(LDFLAGS)
.PHONY: clean mrproper
clean:
rm -f $(OBJ)
mrproper: clean
rm -f $(EXEC)
run: $(EXEC)
$(EXEC) -h
+23
View File
@@ -0,0 +1,23 @@
#!/bin/bash
if [ "$#" -le 0 ] ; then
echo "Usage: $0 is_good.c" >&2
echo "for example to compile: is_good.c" >&2
exit 1
fi
if [ "$#" -le 1 ] ; then
echo "Usage: $0 $1" >&2
echo " we can add more option for example '-D DEBUG=1' to have debug print, '-D HK' to have gtest like prompt, od '-g' to gbd" >&2
echo "for example: $0 $1 \"-D DEBUG=1 -D HK -g\""
fi
DIR_YTEST=$PWD/../../ytest_t
SRC=../src
gcc -o launch_is_good_c $1 -L$DIR_YTEST $2 -lytest -I$DIR_YTEST/include_ytest/include $SRC/list_t/list_t.c -I$SRC
#gcc -o launch_is_good_c $1 $2 -lytest -I../include_ytest src/list_t/list_t.o src/set_theoric_t/set_theoric_t.o -I./src
export LD_LIBRARY_PATH=$DIR_YTEST/:LD_LIBRARY_PATH
#gcc $1 src/ftest/ftest.c src/fmock/fmock.c src/tools_t/tools_t.c src/bar_progress/bar_progress.c src/list_t/list_t.c src/set_theoric_t/set_theoric_t.c -I./include $2 -o launch_is_good_c -lpthread
+84
View File
@@ -0,0 +1,84 @@
#include "ftest/ftest.h"
#include "fmock/fmock.h"
#include "list_t/list_t.h"
TEST(list_create){
struct main_list_TYPE_INT * var_list_int = create_var_list_TYPE_INT();
push_back_list_TYPE_INT(var_list_int, 9);
push_back_list_TYPE_INT(var_list_int, -9);
push_back_list_TYPE_INT(var_list_int, 19);
move_current_to_index_list_TYPE_INT(var_list_int, 0);
while(var_list_int->current_list){
LOG("cur %ld : %d : size :%ld \n", var_list_int->current_index, (var_list_int->current_list)->value, var_list_int->size);
increment_list_TYPE_INT(var_list_int);
}
LOG("%s"," =============== \n");
for(move_current_to_index_list_TYPE_INT(var_list_int, (var_list_int->size) - 1); var_list_int->current_list; decrement_list_TYPE_INT(var_list_int))
LOG("cur %ld : %d : size :%ld \n", var_list_int->current_index, (var_list_int->current_list)->value, var_list_int->size);
free_all_var_list_TYPE_INT(var_list_int);
}
TEST(insert){
struct main_list_TYPE_INT * var_list_int = create_var_list_TYPE_INT();
for(int i=0; i<5; ++i)
push_back_list_TYPE_INT(var_list_int, i);
for(int i=0; i<10; ++i)
insert_into_list_TYPE_INT(var_list_int, i, -2*i+1);
for(int i=var_list_int->size; i< 25; ++i)
insert_into_list_TYPE_INT(var_list_int, i, 3*i+1);
for(move_current_to_index_list_TYPE_INT(var_list_int, 0); var_list_int->current_list; increment_list_TYPE_INT(var_list_int))
LOG("cur %ld : %d : size :%ld \n", var_list_int->current_index, (var_list_int->current_list)->value, var_list_int->size);
free_all_var_list_TYPE_INT(var_list_int);
}
TEST(remove){
struct main_list_TYPE_INT * var_list_int = create_var_list_TYPE_INT();
for(int i=0; i<5; ++i)
push_back_list_TYPE_INT(var_list_int, i);
for(int i=0; i<10; ++i)
insert_into_list_TYPE_INT(var_list_int, i, -2*i+1);
for(int i=var_list_int->size; i< 25; ++i)
insert_into_list_TYPE_INT(var_list_int, i, 3*i+1);
for(move_current_to_index_list_TYPE_INT(var_list_int, 0); var_list_int->current_list; increment_list_TYPE_INT(var_list_int))
LOG("cur %ld : %d : size :%ld \n", var_list_int->current_index, (var_list_int->current_list)->value, var_list_int->size);
for(int i=1; i<var_list_int->size; i+= 3)
remove_index_from_list_TYPE_INT(var_list_int, i);
LOG("%s"," =============== \n");
for(move_current_to_index_list_TYPE_INT(var_list_int, 0); var_list_int->current_list; increment_list_TYPE_INT(var_list_int))
LOG("cur %ld : %d : size :%ld \n", var_list_int->current_index, (var_list_int->current_list)->value, var_list_int->size);
free_all_var_list_TYPE_INT(var_list_int);
}
int main(int argc, char **argv){
run_all_tests_args(argc, argv);
return 0;
}