My very first library in C. Project is part of the course of 42 school. The library was designed to have functions similar to standard C libraries that aim to manipulate strings, handle structs, pointers, and memory allocation.
🚩 Subject version 16.1.
To compile the library, simply use the makefile targets on the command line within the 'src' folder.
./src/make libft.a
My tests were conducted using GTest. The prerequisites are to have CMake installed on your machine and to have already compiled the library.
./cmake -S . -B build && cmake --build build && ./build/all_tests
or run the tests in a docker container.
./make build && make run
in container bash execute
./make tester
In addition to my own tests, tests were conducted using the Francinette tool for the library, its possible run the tests in a docker container.
Function | Status | Norminette | Francinette | My own test - Gtest | Moulinette |
---|---|---|---|---|---|
ft_isalpha | ✅ | ✅ | ✅ | ✅ | ✅ |
ft_isdigit | ✅ | ✅ | ✅ | ✅ | ✅ |
ft_isalnum | ✅ | ✅ | ✅ | ✅ | ✅ |
ft_isascii | ✅ | ✅ | ✅ | ✅ | ✅ |
ft_isprint | ✅ | ✅ | ✅ | ✅ | ✅ |
ft_strlen | ✅ | ✅ | ✅ | ✅ | ✅ |
ft_memset | ✅ | ✅ | ✅ | ✅ | ✅ |
ft_bzero | ✅ | ✅ | ✅ | ✅ | ✅ |
ft_memcpy | ✅ | ✅ | ✅ | ✅ | ✅ |
ft_memmove | ✅ | ✅ | ✅ | ✅ | ✅ |
ft_strlcpy | ✅ | ✅ | ✅ | ✅ | ✅ |
ft_strlcat | ✅ | ✅ | ✅ | ✅ | ✅ |
ft_toupper | ✅ | ✅ | ✅ | ✅ | ✅ |
ft_tolower | ✅ | ✅ | ✅ | ✅ | ✅ |
ft_strchr | ✅ | ✅ | ✅ | ✅ | ✅ |
ft_strrchr | ✅ | ✅ | ✅ | ✅ | ✅ |
ft_strncmp | ✅ | ✅ | ✅ | ✅ | ✅ |
ft_memchr | ✅ | ✅ | ✅ | ✅ | ✅ |
ft_memcmp | ✅ | ✅ | ✅ | ✅ | ✅ |
ft_strnstr | ✅ | ✅ | ✅ | ✅ | ✅ |
ft_atoi | ✅ | ✅ | ✅ | ✅ | ✅ |
ft_calloc | ✅ | ✅ | ✅ | ✅ | ✅ |
ft_strdup | ✅ | ✅ | ✅ | ✅ | ✅ |
Function | Status | Norminette | Francinette | My own test - Gtest | Moulinette |
---|---|---|---|---|---|
ft_substr | ✅ | ✅ | ✅ | ✅ | ✅ |
ft_strjoin | ✅ | ✅ | ✅ | ✅ | ✅ |
ft_strtrim | ✅ | ✅ | ✅ | ✅ | ✅ |
ft_split | ✅ | ✅ | ✅ | ✅ | ✅ |
ft_itoa | ✅ | ✅ | ✅ | ✅ | ✅ |
ft_strmapi | ✅ | ✅ | ✅ | ✅ | ✅ |
ft_striteri | ✅ | ✅ | ✅ | ✅ | ✅ |
ft_putchar_fd | ✅ | ✅ | ✅ | ✅ | ✅ |
ft_putstr_fd | ✅ | ✅ | ✅ | ✅ | ✅ |
ft_putendl_fd | ✅ | ✅ | ✅ | ✅ | ✅ |
ft_putnbr_fd | ✅ | ✅ | ✅ | ✅ | ✅ |
Function | Status | Norminette | Francinette | My own test - Gtest | Moulinette |
---|---|---|---|---|---|
ft_lstnew | ✅ | ✅ | ✅ | ✅ | ✅ |
ft_lstadd_front | ✅ | ✅ | ✅ | ✅ | ✅ |
ft_lstsize | ✅ | ✅ | ✅ | ✅ | ✅ |
ft_lstlast | ✅ | ✅ | ✅ | ✅ | ✅ |
ft_lstadd_back | ✅ | ✅ | ✅ | ✅ | ✅ |
ft_lstdelone | ✅ | ✅ | ✅ | ✅ | ✅ |
ft_lstclear | ✅ | ✅ | ✅ | ✅ | ✅ |
ft_lstiter | ✅ | ✅ | ✅ | ✅ | ✅ |
ft_lstmap | ✅ | ✅ | ✅ | ✅ | ✅ |
Function | Status | Norminette | Francinette | My own test - Gtest | Moulinette |
---|---|---|---|---|---|
ft_printf | ✅ | ✅ | ✅ | ✅ | ✅ |
ft_get_next_line | ✅ | ✅ | ✅ | ✅ | ✅ |