create linked list generic
This commit is contained in:
@@ -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
|
||||
@@ -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
|
||||
@@ -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;
|
||||
}
|
||||
Reference in New Issue
Block a user