aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/libft_dstr.h11
-rwxr-xr-xscript/create_test.sh22
-rw-r--r--script/test.template.c26
-rwxr-xr-xscript/test_prettier.sh6
-rw-r--r--src/dstr/ft_dstrdestroy.c7
-rw-r--r--src/dstr/ft_dstrgrow.c14
-rw-r--r--src/dstr/ft_dstrinsert.c17
-rw-r--r--src/dstr/ft_dstrnew.c9
-rw-r--r--src/dstr/ft_dstrunwrap.c8
-rw-r--r--src/vec/ft_vecnew.c2
-rw-r--r--src/vec/ft_vecsort.c8
-rw-r--r--test/Makefile6
-rw-r--r--test/include/libft_test.h1
-rw-r--r--test/src/dstr/test_ft_dstrdestroy.c26
-rw-r--r--test/src/dstr/test_ft_dstrgrow.c52
-rw-r--r--test/src/dstr/test_ft_dstrinsert.c59
-rw-r--r--test/src/dstr/test_ft_dstrnew.c60
-rw-r--r--test/src/dstr/test_ft_dstrunwrap.c42
-rw-r--r--test/src/main.c7
-rw-r--r--test/src/runner/test_runner_dstr.c38
-rw-r--r--test/src/runner/test_runner_vec.c7
-rw-r--r--test/src/vec/test_ft_vecsort.c34
22 files changed, 444 insertions, 18 deletions
diff --git a/include/libft_dstr.h b/include/libft_dstr.h
index 13cb4e3..11bf2f4 100644
--- a/include/libft_dstr.h
+++ b/include/libft_dstr.h
@@ -6,7 +6,7 @@
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/03 10:39:51 by charles #+# #+# */
-/* Updated: 2020/04/03 15:10:54 by charles ### ########.fr */
+/* Updated: 2020/04/04 21:18:48 by charles ### ########.fr */
/* */
/* ************************************************************************** */
@@ -18,6 +18,13 @@
# include "libft_str.h"
# include "libft_mem.h"
+/*
+** \brief Dynamic string struct
+** \param str Underlying null-terminated character array
+** \param length Number of character (not including the '\0')
+** \param capacity Maximum length - 1 of the current string
+*/
+
typedef struct s_ftdstr
{
char *str;
@@ -30,6 +37,6 @@ void ft_dstrdestroy(t_ftdstr *dstr);
t_ftdstr *ft_dstrgrow(t_ftdstr *dstr, size_t at_least);
char *ft_dstrunwrap(t_ftdstr *dstr);
t_ftdstr *ft_dstrinsert(t_ftdstr *dstr, char *inserted, size_t i);
-// t_ftdstr *ft_dstrreplace(t_ftdstr *dstr, char *from, char *to);
+// t_ftdstr *ft_dstrsubstitute(t_ftdstr *dstr, char *sub, size_t start, size_t end);
#endif
diff --git a/script/create_test.sh b/script/create_test.sh
new file mode 100755
index 0000000..a0c9773
--- /dev/null
+++ b/script/create_test.sh
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+[ $# -eq 0 ] && echo "Usage $0 src_file_path+" && exit 1
+
+for src_file_path in $@
+do
+ src_file_dir=`dirname $src_file_path`
+ src_file_name=`basename $src_file_path`
+ src_file_name_no_ext=`echo $src_file_name | sed 's/\.c//'`
+ template='script/test.template.c'
+
+ test_file_path="test/$src_file_dir/test_$src_file_name"
+
+ [ -f $test_file_path ] &&
+ echo "Cannot create test $test_file_path already exists" &&
+ continue
+
+ mkdir -p "test/$src_file_dir"
+ sed "s/<funcname>/$src_file_name_no_ext/" $template > $test_file_path
+ echo "Created new test file at $test_file_path"
+done
+
diff --git a/script/test.template.c b/script/test.template.c
new file mode 100644
index 0000000..f6d71e8
--- /dev/null
+++ b/script/test.template.c
@@ -0,0 +1,26 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* test.template.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2020/04/01 19:41:59 by charles #+# #+# */
+/* Updated: 2020/04/04 20:23:33 by charles ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#include "libft_test.h"
+
+TEST_GROUP(<funcname>);
+
+TEST_SETUP(<funcname>)
+{}
+
+TEST_TEAR_DOWN(<funcname>)
+{}
+
+TEST(<funcname>, basic)
+{
+ TEST_FAIL_MESSAGE("<funcname> test not implemented");
+}
diff --git a/script/test_prettier.sh b/script/test_prettier.sh
new file mode 100755
index 0000000..bd6b9a3
--- /dev/null
+++ b/script/test_prettier.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+while read line
+do
+ # echo `echo $line | sed
+done
diff --git a/src/dstr/ft_dstrdestroy.c b/src/dstr/ft_dstrdestroy.c
index 6f1a819..c76b692 100644
--- a/src/dstr/ft_dstrdestroy.c
+++ b/src/dstr/ft_dstrdestroy.c
@@ -6,12 +6,17 @@
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/03 13:58:46 by charles #+# #+# */
-/* Updated: 2020/04/03 13:59:25 by charles ### ########.fr */
+/* Updated: 2020/04/04 19:51:28 by charles ### ########.fr */
/* */
/* ************************************************************************** */
#include "libft_dstr.h"
+/*
+** \brief Destroy a dynamic string
+** \param dstr Dynamic string to destroy
+*/
+
void ft_dstrdestroy(t_ftdstr *dstr)
{
if (dstr == NULL)
diff --git a/src/dstr/ft_dstrgrow.c b/src/dstr/ft_dstrgrow.c
index 9ad51ea..40cad86 100644
--- a/src/dstr/ft_dstrgrow.c
+++ b/src/dstr/ft_dstrgrow.c
@@ -6,7 +6,7 @@
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/03 14:17:09 by charles #+# #+# */
-/* Updated: 2020/04/03 15:09:21 by charles ### ########.fr */
+/* Updated: 2020/04/04 19:56:26 by charles ### ########.fr */
/* */
/* ************************************************************************** */
@@ -14,18 +14,28 @@
#define FT_DSTR_GROWTH_FACTOR 1.5
+/*
+** \brief Grow the capacity of a dynamic string
+** \param dstr Dynamic string to grow
+** \param at_least Minimum capacity - 1 required
+** \return Passed dynamic string or NULL on error
+*/
+
t_ftdstr *ft_dstrgrow(t_ftdstr *dstr, size_t at_least)
{
size_t new_capacity;
char *new_str;
+ if (at_least < dstr->capacity - 1)
+ return (dstr);
new_capacity = dstr->capacity <= 1 ? 2 : dstr->capacity;
- while (new_capacity < at_least)
+ while (at_least > new_capacity - 1)
new_capacity *= FT_DSTR_GROWTH_FACTOR;
if ((new_str = (char*)malloc(sizeof(char) * new_capacity)) == NULL)
return (NULL);
ft_memcpy(new_str, dstr->str, dstr->capacity);
dstr->capacity = new_capacity;
+ free(dstr->str);
dstr->str = new_str;
return (dstr);
}
diff --git a/src/dstr/ft_dstrinsert.c b/src/dstr/ft_dstrinsert.c
index 6a1486c..931f5d8 100644
--- a/src/dstr/ft_dstrinsert.c
+++ b/src/dstr/ft_dstrinsert.c
@@ -6,22 +6,29 @@
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/03 14:00:44 by charles #+# #+# */
-/* Updated: 2020/04/03 15:09:52 by charles ### ########.fr */
+/* Updated: 2020/04/04 21:21:19 by charles ### ########.fr */
/* */
/* ************************************************************************** */
#include "libft_dstr.h"
+/*
+** \brief Insert string in dynamic string
+** \param dstr Dynamic string where the string will be inserted
+** \param inserted Static string to insert
+** \param i Index where it should be inserted
+** \return Passed dynamic string or NULL on error
+*/
+
t_ftdstr *ft_dstrinsert(t_ftdstr *dstr, char *inserted, size_t i)
{
size_t inserted_len;
- if (i > dstr->capacity)
+ if (i > dstr->length)
return (NULL);
inserted_len = ft_strlen(inserted);
- if (dstr->capacity - dstr->length - 1 < inserted_len)
- if (ft_dstrgrow(dstr, dstr->capacity + inserted_len + 1) == NULL)
- return (NULL);
+ if (ft_dstrgrow(dstr, dstr->capacity + inserted_len) == NULL)
+ return (NULL);
ft_memmove(dstr->str + i + inserted_len,
dstr->str + i,
dstr->length - i + 1);
diff --git a/src/dstr/ft_dstrnew.c b/src/dstr/ft_dstrnew.c
index 189fc78..8ae4a64 100644
--- a/src/dstr/ft_dstrnew.c
+++ b/src/dstr/ft_dstrnew.c
@@ -6,12 +6,19 @@
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/03 13:54:52 by charles #+# #+# */
-/* Updated: 2020/04/03 13:58:17 by charles ### ########.fr */
+/* Updated: 2020/04/04 19:50:38 by charles ### ########.fr */
/* */
/* ************************************************************************** */
#include "libft_dstr.h"
+/*
+** \brief Create a new dynamic string
+** \param from Static string to create the dynamic one from
+** (will be duplicated)
+** \return Created dynamic string or NULL on malloc error
+*/
+
t_ftdstr *ft_dstrnew(char *from)
{
t_ftdstr *dstr;
diff --git a/src/dstr/ft_dstrunwrap.c b/src/dstr/ft_dstrunwrap.c
index ba62a23..5b29b5b 100644
--- a/src/dstr/ft_dstrunwrap.c
+++ b/src/dstr/ft_dstrunwrap.c
@@ -6,12 +6,18 @@
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/03 13:59:35 by charles #+# #+# */
-/* Updated: 2020/04/03 14:00:36 by charles ### ########.fr */
+/* Updated: 2020/04/04 19:58:41 by charles ### ########.fr */
/* */
/* ************************************************************************** */
#include "libft_dstr.h"
+/*
+** \brief Destroy dynamic string but keep the underlying static string
+** \param dstr Dynamic string to unwrap
+** \return Underlying string of the dynamic one
+*/
+
char *ft_dstrunwrap(t_ftdstr *dstr)
{
char *tmp;
diff --git a/src/vec/ft_vecnew.c b/src/vec/ft_vecnew.c
index 8a8736a..0def9c9 100644
--- a/src/vec/ft_vecnew.c
+++ b/src/vec/ft_vecnew.c
@@ -6,7 +6,7 @@
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/01 19:03:49 by charles #+# #+# */
-/* Updated: 2020/04/01 20:00:00 by charles ### ########.fr */
+/* Updated: 2020/04/04 21:24:36 by charles ### ########.fr */
/* */
/* ************************************************************************** */
diff --git a/src/vec/ft_vecsort.c b/src/vec/ft_vecsort.c
index 99b1a5f..8aa5c2a 100644
--- a/src/vec/ft_vecsort.c
+++ b/src/vec/ft_vecsort.c
@@ -6,12 +6,18 @@
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/04 15:53:23 by charles #+# #+# */
-/* Updated: 2020/04/04 15:55:21 by charles ### ########.fr */
+/* Updated: 2020/04/04 19:30:31 by charles ### ########.fr */
/* */
/* ************************************************************************** */
#include "libft_vec.h"
+/*
+** \brief Wrapper around ft_qsort
+** \param vec Vector to sort
+** \param cmp Function to compare each vector element
+*/
+
void ft_vecsort(t_ftvec *vec, t_ftcompar_func cmp)
{
ft_qsort(vec->data, vec->size, sizeof(void*), cmp);
diff --git a/test/Makefile b/test/Makefile
index cf065c6..48e08a9 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -6,7 +6,7 @@
# By: cacharle <marvin@42.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2020/02/15 04:35:44 by cacharle #+# #+# #
-# Updated: 2020/02/28 12:13:30 by cacharle ### ########.fr #
+# Updated: 2020/04/04 20:58:20 by charles ### ########.fr #
# #
# **************************************************************************** #
@@ -52,7 +52,7 @@ $(NAME): libft_all $(OBJ)
@echo "Test: Compiling: $@"
@$(CC) $(CCFLAGS) -c -o $@ $<
-clean:
+clean:
@echo "Test: Removing object"
@$(RM) $(OBJ)
@@ -65,7 +65,7 @@ fclean: clean
re: fclean all
re_dep: clean_dep fclean all
-
+
unity_all:
@$(MAKE) $(MAKE_ARGS) -s -C $(UNITY_DIR) all
diff --git a/test/include/libft_test.h b/test/include/libft_test.h
index efa15cd..c58d533 100644
--- a/test/include/libft_test.h
+++ b/test/include/libft_test.h
@@ -21,6 +21,7 @@
# include "libft_lst.h"
# include "libft_ht.h"
# include "libft_vec.h"
+# include "libft_dstr.h"
# include "helper/helper_segfault.h"
diff --git a/test/src/dstr/test_ft_dstrdestroy.c b/test/src/dstr/test_ft_dstrdestroy.c
new file mode 100644
index 0000000..1a6cb41
--- /dev/null
+++ b/test/src/dstr/test_ft_dstrdestroy.c
@@ -0,0 +1,26 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* test_ft_dstrdestroy.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2020/04/01 19:41:59 by charles #+# #+# */
+/* Updated: 2020/04/04 21:04:51 by charles ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#include "libft_test.h"
+
+TEST_GROUP(ft_dstrdestroy);
+
+TEST_SETUP(ft_dstrdestroy)
+{}
+
+TEST_TEAR_DOWN(ft_dstrdestroy)
+{}
+
+TEST(ft_dstrdestroy, basic)
+{
+ TEST_PASS();
+}
diff --git a/test/src/dstr/test_ft_dstrgrow.c b/test/src/dstr/test_ft_dstrgrow.c
new file mode 100644
index 0000000..1e3edb6
--- /dev/null
+++ b/test/src/dstr/test_ft_dstrgrow.c
@@ -0,0 +1,52 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* test_ft_dstrgrow.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2020/04/01 19:41:59 by charles #+# #+# */
+/* Updated: 2020/04/04 21:12:16 by charles ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#include "libft_test.h"
+
+TEST_GROUP(ft_dstrgrow);
+
+TEST_SETUP(ft_dstrgrow)
+{}
+
+TEST_TEAR_DOWN(ft_dstrgrow)
+{}
+
+TEST(ft_dstrgrow, basic)
+{
+ t_ftdstr *dstr;
+
+ dstr = ft_dstrnew("bonjour");
+ TEST_ASSERT_NOT_NULL(ft_dstrgrow(dstr, 3));
+ TEST_ASSERT_GREATER_OR_EQUAL(3, dstr->capacity - 1);
+ TEST_ASSERT_EQUAL_STRING("bonjour", dstr->str);
+ TEST_ASSERT_EQUAL(strlen("bonjour"), dstr->length);
+
+ TEST_ASSERT_NOT_NULL(ft_dstrgrow(dstr, 16));
+ TEST_ASSERT_GREATER_OR_EQUAL(16, dstr->capacity - 1);
+ TEST_ASSERT_EQUAL_STRING("bonjour", dstr->str);
+ TEST_ASSERT_EQUAL(strlen("bonjour"), dstr->length);
+
+ TEST_ASSERT_NOT_NULL(ft_dstrgrow(dstr, 8));
+ TEST_ASSERT_GREATER_OR_EQUAL(8, dstr->capacity - 1);
+ TEST_ASSERT_EQUAL_STRING("bonjour", dstr->str);
+ TEST_ASSERT_EQUAL(strlen("bonjour"), dstr->length);
+
+ TEST_ASSERT_NOT_NULL(ft_dstrgrow(dstr, 20));
+ TEST_ASSERT_GREATER_OR_EQUAL(20, dstr->capacity - 1);
+ TEST_ASSERT_EQUAL_STRING("bonjour", dstr->str);
+ TEST_ASSERT_EQUAL(strlen("bonjour"), dstr->length);
+
+ TEST_ASSERT_NOT_NULL(ft_dstrgrow(dstr, 32));
+ TEST_ASSERT_GREATER_OR_EQUAL(32, dstr->capacity - 1);
+ TEST_ASSERT_EQUAL_STRING("bonjour", dstr->str);
+ TEST_ASSERT_EQUAL(strlen("bonjour"), dstr->length);
+}
diff --git a/test/src/dstr/test_ft_dstrinsert.c b/test/src/dstr/test_ft_dstrinsert.c
new file mode 100644
index 0000000..61f407c
--- /dev/null
+++ b/test/src/dstr/test_ft_dstrinsert.c
@@ -0,0 +1,59 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* test_ft_dstrinsert.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2020/04/01 19:41:59 by charles #+# #+# */
+/* Updated: 2020/04/04 21:21:51 by charles ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#include "libft_test.h"
+
+TEST_GROUP(ft_dstrinsert);
+
+TEST_SETUP(ft_dstrinsert)
+{}
+
+TEST_TEAR_DOWN(ft_dstrinsert)
+{}
+
+TEST(ft_dstrinsert, basic)
+{
+ t_ftdstr *dstr;
+
+ dstr = ft_dstrnew("");
+
+ TEST_ASSERT_NULL(ft_dstrinsert(dstr, "", 1));
+ TEST_ASSERT_NULL(ft_dstrinsert(dstr, "test", 1));
+ TEST_ASSERT_NULL(ft_dstrinsert(dstr, "", 5));
+ TEST_ASSERT_NULL(ft_dstrinsert(dstr, "test", 5));
+
+ TEST_ASSERT_NOT_NULL(ft_dstrinsert(dstr, "bonjour", 0));
+ TEST_ASSERT_NOT_NULL(dstr->str);
+ TEST_ASSERT_EQUAL_STRING("bonjour", dstr->str);
+ TEST_ASSERT_EQUAL(strlen(dstr->str), dstr->length);
+ TEST_ASSERT_GREATER_THAN(strlen(dstr->str), dstr->capacity);
+
+ TEST_ASSERT_NULL(ft_dstrinsert(dstr, "abc", 8));
+
+ TEST_ASSERT_NOT_NULL(ft_dstrinsert(dstr, "{{{", 0));
+ TEST_ASSERT_NOT_NULL(dstr->str);
+ TEST_ASSERT_EQUAL_STRING("{{{bonjour", dstr->str);
+ TEST_ASSERT_EQUAL(strlen(dstr->str), dstr->length);
+ TEST_ASSERT_GREATER_THAN(strlen(dstr->str), dstr->capacity);
+
+ TEST_ASSERT_NOT_NULL(ft_dstrinsert(dstr, "]]]", dstr->length));
+ TEST_ASSERT_NOT_NULL(dstr->str);
+ TEST_ASSERT_EQUAL_STRING("{{{bonjour]]]", dstr->str);
+ TEST_ASSERT_EQUAL(strlen(dstr->str), dstr->length);
+ TEST_ASSERT_GREATER_THAN(strlen(dstr->str), dstr->capacity);
+
+ TEST_ASSERT_NOT_NULL(ft_dstrinsert(dstr, "<>", 6));
+ TEST_ASSERT_NOT_NULL(dstr->str);
+ TEST_ASSERT_EQUAL_STRING("{{{bon<>jour]]]", dstr->str);
+ TEST_ASSERT_EQUAL(strlen(dstr->str), dstr->length);
+ TEST_ASSERT_GREATER_THAN(strlen(dstr->str), dstr->capacity);
+}
diff --git a/test/src/dstr/test_ft_dstrnew.c b/test/src/dstr/test_ft_dstrnew.c
new file mode 100644
index 0000000..33024e4
--- /dev/null
+++ b/test/src/dstr/test_ft_dstrnew.c
@@ -0,0 +1,60 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* test_ft_dstrnew.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2020/04/01 19:41:59 by charles #+# #+# */
+/* Updated: 2020/04/04 21:03:25 by charles ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#include "libft_test.h"
+
+TEST_GROUP(ft_dstrnew);
+
+TEST_SETUP(ft_dstrnew)
+{}
+
+TEST_TEAR_DOWN(ft_dstrnew)
+{}
+
+TEST(ft_dstrnew, basic)
+{
+ t_ftdstr *dstr;
+
+ dstr = ft_dstrnew("");
+ TEST_ASSERT_NOT_NULL(dstr);
+ TEST_ASSERT_NOT_NULL(dstr->str);
+ TEST_ASSERT_EQUAL_STRING("", dstr->str);
+ TEST_ASSERT_EQUAL(1, dstr->capacity);
+ TEST_ASSERT_EQUAL(0, dstr->length);
+ ft_dstrdestroy(dstr);
+
+ dstr = ft_dstrnew("abc");
+ TEST_ASSERT_NOT_NULL(dstr);
+ TEST_ASSERT_NOT_NULL(dstr->str);
+ TEST_ASSERT_EQUAL_STRING("abc", dstr->str);
+ TEST_ASSERT_EQUAL(strlen("abc") + 1, dstr->capacity);
+ TEST_ASSERT_EQUAL(strlen("abc"), dstr->length);
+ ft_dstrdestroy(dstr);
+
+ dstr = ft_dstrnew("hidden\0text");
+ TEST_ASSERT_NOT_NULL(dstr);
+ TEST_ASSERT_NOT_NULL(dstr->str);
+ TEST_ASSERT_EQUAL_STRING("hidden\0text", dstr->str);
+ TEST_ASSERT_EQUAL(strlen("hidden") + 1, dstr->capacity);
+ TEST_ASSERT_EQUAL(strlen("hidden"), dstr->length);
+ ft_dstrdestroy(dstr);
+
+ char *long_string = "asdkfjasl;asdjiojxocijioajsdfopijasdofijasiodfjaospidj"\
+ "fopiasjdfoijasdopifjaspoidjfopiasjdfpoiajsdfoijd";
+ dstr = ft_dstrnew(long_string);
+ TEST_ASSERT_NOT_NULL(dstr);
+ TEST_ASSERT_NOT_NULL(dstr->str);
+ TEST_ASSERT_EQUAL_STRING(long_string, dstr->str);
+ TEST_ASSERT_EQUAL(strlen(long_string) + 1, dstr->capacity);
+ TEST_ASSERT_EQUAL(strlen(long_string), dstr->length);
+ ft_dstrdestroy(dstr);
+}
diff --git a/test/src/dstr/test_ft_dstrunwrap.c b/test/src/dstr/test_ft_dstrunwrap.c
new file mode 100644
index 0000000..dbc334a
--- /dev/null
+++ b/test/src/dstr/test_ft_dstrunwrap.c
@@ -0,0 +1,42 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* test_ft_dstrunwrap.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2020/04/01 19:41:59 by charles #+# #+# */
+/* Updated: 2020/04/04 21:07:16 by charles ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#include "libft_test.h"
+
+TEST_GROUP(ft_dstrunwrap);
+
+TEST_SETUP(ft_dstrunwrap)
+{}
+
+TEST_TEAR_DOWN(ft_dstrunwrap)
+{}
+
+TEST(ft_dstrunwrap, basic)
+{
+ t_ftdstr *dstr;
+ char *ret;
+
+ dstr = ft_dstrnew("bonjour");
+ ret = ft_dstrunwrap(dstr);
+ TEST_ASSERT_NOT_NULL(ret);
+ TEST_ASSERT_EQUAL_STRING("bonjour", ret);
+
+ dstr = ft_dstrnew("");
+ ret = ft_dstrunwrap(dstr);
+ TEST_ASSERT_NOT_NULL(ret);
+ TEST_ASSERT_EQUAL_STRING("", ret);
+
+ dstr = ft_dstrnew("hidden\0text");
+ ret = ft_dstrunwrap(dstr);
+ TEST_ASSERT_NOT_NULL(ret);
+ TEST_ASSERT_EQUAL_STRING("hidden", ret);
+}
diff --git a/test/src/main.c b/test/src/main.c
index b9e8bf7..7bac44b 100644
--- a/test/src/main.c
+++ b/test/src/main.c
@@ -79,8 +79,15 @@ static void run_all_test(void)
RUN_TEST_GROUP(ft_vecpush);
RUN_TEST_GROUP(ft_vecremove);
RUN_TEST_GROUP(ft_vecinsert);
+
+ RUN_TEST_GROUP(ft_dstrdestroy);
+ RUN_TEST_GROUP(ft_dstrgrow);
+ RUN_TEST_GROUP(ft_dstrinsert);
+ RUN_TEST_GROUP(ft_dstrnew);
+ RUN_TEST_GROUP(ft_dstrunwrap);
}
+
int main(int argc, const char **argv)
{
return UnityMain(argc, argv, run_all_test);
diff --git a/test/src/runner/test_runner_dstr.c b/test/src/runner/test_runner_dstr.c
new file mode 100644
index 0000000..0c20048
--- /dev/null
+++ b/test/src/runner/test_runner_dstr.c
@@ -0,0 +1,38 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* test_runner_dstr.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2020/04/04 20:44:42 by charles #+# #+# */
+/* Updated: 2020/04/04 20:47:33 by charles ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#include "libft_test.h"
+
+TEST_GROUP_RUNNER(ft_dstrdestroy)
+{
+ RUN_TEST_CASE(ft_dstrdestroy, basic);
+}
+
+TEST_GROUP_RUNNER(ft_dstrgrow)
+{
+ RUN_TEST_CASE(ft_dstrgrow, basic);
+}
+
+TEST_GROUP_RUNNER(ft_dstrinsert)
+{
+ RUN_TEST_CASE(ft_dstrinsert, basic);
+}
+
+TEST_GROUP_RUNNER(ft_dstrnew)
+{
+ RUN_TEST_CASE(ft_dstrnew, basic);
+}
+
+TEST_GROUP_RUNNER(ft_dstrunwrap)
+{
+ RUN_TEST_CASE(ft_dstrunwrap, basic);
+}
diff --git a/test/src/runner/test_runner_vec.c b/test/src/runner/test_runner_vec.c
index e084742..c393bfa 100644
--- a/test/src/runner/test_runner_vec.c
+++ b/test/src/runner/test_runner_vec.c
@@ -6,7 +6,7 @@
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/01 19:55:53 by charles #+# #+# */
-/* Updated: 2020/04/02 11:01:36 by charles ### ########.fr */
+/* Updated: 2020/04/04 19:36:41 by charles ### ########.fr */
/* */
/* ************************************************************************** */
@@ -52,3 +52,8 @@ TEST_GROUP_RUNNER(ft_vecinsert)
{
RUN_TEST_CASE(ft_vecinsert, basic);
}
+
+TEST_GROUP_RUNNER(ft_vecsort)
+{
+ RUN_TEST_CASE(ft_vecsort, basic);
+}
diff --git a/test/src/vec/test_ft_vecsort.c b/test/src/vec/test_ft_vecsort.c
new file mode 100644
index 0000000..bfdad01
--- /dev/null
+++ b/test/src/vec/test_ft_vecsort.c
@@ -0,0 +1,34 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* test_ft_vecsort.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2020/04/04 19:31:13 by charles #+# #+# */
+/* Updated: 2020/04/04 19:45:27 by charles ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#include "libft_test.h"
+
+TEST_GROUP(ft_vecsort);
+
+TEST_SETUP(ft_vecsort)
+{}
+
+TEST_TEAR_DOWN(ft_vecsort)
+{}
+
+TEST(ft_vecsort, basic)
+{
+ t_ftvec *vec = ft_vecnew(1);
+ char* arr[] = {"bonjour", "je", "suis", "lala", "z", "b"};
+ char* sorted[] = {"bonjour", "je", "suis", "lala", "z", "b"};
+
+ for (size_t i = 0; i < sizeof(arr) / sizeof(char*); i++)
+ ft_vecpush(vec, arr[i]);
+ ft_vecsort(vec, ft_compar_str);
+ ft_qsort(sorted, sizeof(sorted) / sizeof(char*), sizeof(char*), ft_compar_str);
+ TEST_ASSERT_EQUAL_STRING_ARRAY(sorted, vec->data, vec->size);
+}