diff options
Diffstat (limited to 'test/src')
| -rw-r--r-- | test/src/ht/test_ft_htdelone.c | 68 | ||||
| -rw-r--r-- | test/src/ht/test_ft_htdelone_key.c | 0 | ||||
| -rw-r--r-- | test/src/ht/test_ft_htdestroy.c | 38 | ||||
| -rw-r--r-- | test/src/ht/test_ft_htdestroy_all.c | 0 | ||||
| -rw-r--r-- | test/src/ht/test_ft_htdestroy_key.c | 0 | ||||
| -rw-r--r-- | test/src/ht/test_ft_htget.c | 81 | ||||
| -rw-r--r-- | test/src/ht/test_ft_htset.c | 23 | ||||
| -rw-r--r-- | test/src/lst/test_ft_lstdelone.c | 12 | ||||
| -rw-r--r-- | test/src/main.c | 2 | ||||
| -rw-r--r-- | test/src/runner/test_runner_ht.c | 13 |
10 files changed, 225 insertions, 12 deletions
diff --git a/test/src/ht/test_ft_htdelone.c b/test/src/ht/test_ft_htdelone.c index e69de29..3bc0922 100644 --- a/test/src/ht/test_ft_htdelone.c +++ b/test/src/ht/test_ft_htdelone.c @@ -0,0 +1,68 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* test_ft_htdelone.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/02/19 02:08:00 by cacharle #+# #+# */ +/* Updated: 2020/02/19 02:46:10 by cacharle ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft_test.h" + +TEST_GROUP(ft_htdelone); + +TEST_SETUP(ft_htdelone) +{} + +TEST_TEAR_DOWN(ft_htdelone) +{} + +static void st_del(t_ftht_content *v) +{ + free(v->key); + free(v); +} + +TEST(ft_htdelone, basic) +{ + t_ftht *ht = ft_htnew(3); + + ft_htset(ht, "bonjour", "je", st_del); + ft_htset(ht, "a", "yay", st_del); + ft_htset(ht, "b", "aasdf", st_del); + ft_htset(ht, "c", "a", st_del); + ft_htset(ht, "d", "dd", st_del); + + ft_htdelone(ht, "bonjour", st_del); + void *ptr = ft_htget(ht, "bonjour"); + TEST_ASSERT_NULL(ptr); + TEST_ASSERT_NOT_NULL(ft_htget(ht, "a")); + TEST_ASSERT_NOT_NULL(ft_htget(ht, "b")); + TEST_ASSERT_NOT_NULL(ft_htget(ht, "c")); + TEST_ASSERT_NOT_NULL(ft_htget(ht, "d")); + + ft_htdelone(ht, "a", st_del); + ptr = ft_htget(ht, "a"); + TEST_ASSERT_NULL(ptr); + TEST_ASSERT_NOT_NULL(ft_htget(ht, "b")); + TEST_ASSERT_NOT_NULL(ft_htget(ht, "c")); + TEST_ASSERT_NOT_NULL(ft_htget(ht, "d")); + + ft_htdelone(ht, "b", st_del); + ptr = ft_htget(ht, "b"); + TEST_ASSERT_NULL(ptr); + TEST_ASSERT_NOT_NULL(ft_htget(ht, "c")); + TEST_ASSERT_NOT_NULL(ft_htget(ht, "d")); + + ft_htdelone(ht, "c", st_del); + ptr = ft_htget(ht, "c"); + TEST_ASSERT_NULL(ptr); + TEST_ASSERT_NOT_NULL(ft_htget(ht, "d")); + + ft_htdelone(ht, "d", st_del); + ptr = ft_htget(ht, "d"); + TEST_ASSERT_NULL(ptr); +} diff --git a/test/src/ht/test_ft_htdelone_key.c b/test/src/ht/test_ft_htdelone_key.c deleted file mode 100644 index e69de29..0000000 --- a/test/src/ht/test_ft_htdelone_key.c +++ /dev/null diff --git a/test/src/ht/test_ft_htdestroy.c b/test/src/ht/test_ft_htdestroy.c index e69de29..360a7a0 100644 --- a/test/src/ht/test_ft_htdestroy.c +++ b/test/src/ht/test_ft_htdestroy.c @@ -0,0 +1,38 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* test_ft_htdestroy.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/02/19 02:45:27 by cacharle #+# #+# */ +/* Updated: 2020/02/19 02:49:36 by cacharle ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft_test.h" + +TEST_GROUP(ft_htdestroy); + +TEST_SETUP(ft_htdestroy) +{} + +TEST_TEAR_DOWN(ft_htdestroy) +{} + +static void st_del(t_ftht_content *v) +{ + free(v->key); + free(v); +} + +TEST(ft_htdestroy, basic) +{ + t_ftht *ht = ft_htnew(2); + + ft_htset(ht, "a", "1", st_del); + ft_htset(ht, "b", "2", st_del); + ft_htset(ht, "c", "3", st_del); + ft_htset(ht, "d", "4", st_del); + ft_htdestroy(ht, st_del); +} diff --git a/test/src/ht/test_ft_htdestroy_all.c b/test/src/ht/test_ft_htdestroy_all.c deleted file mode 100644 index e69de29..0000000 --- a/test/src/ht/test_ft_htdestroy_all.c +++ /dev/null diff --git a/test/src/ht/test_ft_htdestroy_key.c b/test/src/ht/test_ft_htdestroy_key.c deleted file mode 100644 index e69de29..0000000 --- a/test/src/ht/test_ft_htdestroy_key.c +++ /dev/null diff --git a/test/src/ht/test_ft_htget.c b/test/src/ht/test_ft_htget.c index 591d492..5db06b7 100644 --- a/test/src/ht/test_ft_htget.c +++ b/test/src/ht/test_ft_htget.c @@ -16,9 +16,14 @@ TEST_TEAR_DOWN(ft_htget) int helper_segfault_pid; +static void st_del(t_ftht_content *c) +{ + free(c->key); + free(c); +} + TEST(ft_htget, segfault) { - TEST_IGNORE(); TEST_ASSERT_SEGFAULT(ft_htget((t_ftht*)NULL, "")); TEST_ASSERT_SEGFAULT(ft_htget(ft_htnew(1), (char*)NULL)); TEST_ASSERT_SEGFAULT(ft_htget(ft_htnew(1), "")); @@ -27,11 +32,83 @@ TEST(ft_htget, segfault) TEST(ft_htget, error_null) { - TEST_IGNORE(); TEST_ASSERT_NULL(ft_htget(NULL, NULL)); TEST_ASSERT_NULL(ft_htget(ht, NULL)); TEST_ASSERT_NULL(ft_htget(NULL, "")); TEST_ASSERT_NULL(ft_htget(ht, "")); TEST_ASSERT_NULL(ft_htget(ht, "hi")); TEST_ASSERT_NULL(ft_htget(ht, "asdfkasdflk")); + TEST_ASSERT_NULL(ft_htget(ht, "asdhfalsdhflahsdfhjasklehjfklwhjekrlanklshasdfkasdflk")); +} + +TEST(ft_htget, basic) +{ + ft_htset(ht, strdup("a"), strdup("data1"), st_del); + ft_htset(ht, strdup("b"), strdup("data2"), st_del); + ft_htset(ht, strdup("c"), strdup("data3"), st_del); + + char *s = ft_htget(ht, "a"); + TEST_ASSERT_NOT_NULL(s); + TEST_ASSERT_EQUAL_STRING(s, "data1"); + + s = ft_htget(ht, "b"); + TEST_ASSERT_NOT_NULL(s); + TEST_ASSERT_EQUAL_STRING(s, "data2"); + + s = ft_htget(ht, "c"); + TEST_ASSERT_NOT_NULL(s); + TEST_ASSERT_EQUAL_STRING(s, "data3"); + + ft_htset(ht, strdup("a"), strdup("bonjour1"), st_del); + ft_htset(ht, strdup("b"), strdup("bonjour2"), st_del); + ft_htset(ht, strdup("c"), strdup("bonjour3"), st_del); + + s = ft_htget(ht, "a"); + TEST_ASSERT_NOT_NULL(s); + TEST_ASSERT_EQUAL_STRING(s, "bonjour1"); + + s = ft_htget(ht, "b"); + TEST_ASSERT_NOT_NULL(s); + TEST_ASSERT_EQUAL_STRING(s, "bonjour2"); + + s = ft_htget(ht, "c"); + TEST_ASSERT_NOT_NULL(s); + TEST_ASSERT_EQUAL_STRING(s, "bonjour3"); +} + +TEST(ft_htget, collision) +{ + t_ftht *small = ft_htnew(1); + + ft_htset(small, strdup("a"), strdup("data1"), st_del); + ft_htset(small, strdup("b"), strdup("data2"), st_del); + ft_htset(small, strdup("c"), strdup("data3"), st_del); + + char *s = ft_htget(small, "a"); + TEST_ASSERT_NOT_NULL(s); + TEST_ASSERT_EQUAL_STRING(s, "data1"); + + s = ft_htget(small, "b"); + TEST_ASSERT_NOT_NULL(s); + TEST_ASSERT_EQUAL_STRING(s, "data2"); + + s = ft_htget(small, "c"); + TEST_ASSERT_NOT_NULL(s); + TEST_ASSERT_EQUAL_STRING(s, "data3"); + + ft_htset(small, strdup("a"), strdup("bonjour1"), st_del); + ft_htset(small, strdup("b"), strdup("bonjour2"), st_del); + ft_htset(small, strdup("c"), strdup("bonjour3"), st_del); + + s = ft_htget(small, "a"); + TEST_ASSERT_NOT_NULL(s); + TEST_ASSERT_EQUAL_STRING(s, "bonjour1"); + + s = ft_htget(small, "b"); + TEST_ASSERT_NOT_NULL(s); + TEST_ASSERT_EQUAL_STRING(s, "bonjour2"); + + s = ft_htget(small, "c"); + TEST_ASSERT_NOT_NULL(s); + TEST_ASSERT_EQUAL_STRING(s, "bonjour3"); } diff --git a/test/src/ht/test_ft_htset.c b/test/src/ht/test_ft_htset.c index c4b53b9..f161206 100644 --- a/test/src/ht/test_ft_htset.c +++ b/test/src/ht/test_ft_htset.c @@ -11,7 +11,13 @@ TEST_SETUP(ft_htset) TEST_TEAR_DOWN(ft_htset) { - ft_htdestroy_key(ht); + /* ft_htdestroy_key(ht); */ +} + +static void st_del(t_ftht_content *c) +{ + free(c->key); + free(c); } TEST(ft_htset, segfault) @@ -51,20 +57,19 @@ TEST(ft_htset, reset) small = ft_htnew(3); - t_ftht_content *content = ft_htset(ht, "bonjour", strdup("content"), free); + t_ftht_content *content = ft_htset(small, "bonjour", ft_strdup("content"), st_del); TEST_ASSERT_NOT_NULL(content); TEST_ASSERT_NOT_NULL(content->key); TEST_ASSERT_NOT_NULL(content->value); TEST_ASSERT_EQUAL_STRING(content->key, "bonjour"); TEST_ASSERT_EQUAL_STRING(content->value, "content"); - t_ftht_content *content_re = ft_htset(ht, "bonjour", strdup("yo"), free); + t_ftht_content *content_re = ft_htset(small, "bonjour", ft_strdup("yo"), st_del); TEST_ASSERT_NOT_NULL(content_re); - TEST_ASSERT_EQUAL_PTR(content, content_re); TEST_ASSERT_NOT_NULL(content_re->key); TEST_ASSERT_NOT_NULL(content_re->value); - TEST_ASSERT_EQUAL_STRING(content_re->key, "bonjour"); - TEST_ASSERT_EQUAL_STRING(content_re->value, "yo"); + TEST_ASSERT_EQUAL_STRING("bonjour", content_re->key); + TEST_ASSERT_EQUAL_STRING("yo", content_re->value); } TEST(ft_htset, collision) @@ -72,21 +77,21 @@ TEST(ft_htset, collision) t_ftht *small = NULL; small = ft_htnew(1); - t_ftht_content *content1 = ft_htset(ht, "bonjour", strdup("content1"), free); + t_ftht_content *content1 = ft_htset(ht, "bonjour", strdup("content1"), st_del); TEST_ASSERT_NOT_NULL(content1); TEST_ASSERT_NOT_NULL(content1->key); TEST_ASSERT_NOT_NULL(content1->value); TEST_ASSERT_EQUAL_STRING(content1->key, "bonjour"); TEST_ASSERT_EQUAL_STRING(content1->value, "content1"); - t_ftht_content *content2 = ft_htset(ht, "aurevoir", strdup("content2"), free); + t_ftht_content *content2 = ft_htset(ht, "aurevoir", strdup("content2"), st_del); TEST_ASSERT_NOT_NULL(content2); TEST_ASSERT_NOT_NULL(content2->key); TEST_ASSERT_NOT_NULL(content2->value); TEST_ASSERT_EQUAL_STRING(content2->key, "aurevoir"); TEST_ASSERT_EQUAL_STRING(content2->value, "content2"); - t_ftht_content *content3 = ft_htset(ht, "aloa", strdup("content3"), free); + t_ftht_content *content3 = ft_htset(ht, "aloa", strdup("content3"), st_del); TEST_ASSERT_NOT_NULL(content3); TEST_ASSERT_NOT_NULL(content3->key); TEST_ASSERT_NOT_NULL(content3->value); diff --git a/test/src/lst/test_ft_lstdelone.c b/test/src/lst/test_ft_lstdelone.c index 03c87d5..881a93b 100644 --- a/test/src/lst/test_ft_lstdelone.c +++ b/test/src/lst/test_ft_lstdelone.c @@ -1,3 +1,15 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* test_ft_lstdelone.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/02/19 02:01:33 by cacharle #+# #+# */ +/* Updated: 2020/02/19 02:07:27 by cacharle ### ########.fr */ +/* */ +/* ************************************************************************** */ + #include "libft_test.h" TEST_GROUP(ft_lstdelone); diff --git a/test/src/main.c b/test/src/main.c index c015945..e93c623 100644 --- a/test/src/main.c +++ b/test/src/main.c @@ -35,6 +35,8 @@ static void run_all_test(void) RUN_TEST_GROUP(ft_htnew); RUN_TEST_GROUP(ft_htget); RUN_TEST_GROUP(ft_htset); + RUN_TEST_GROUP(ft_htdelone); + RUN_TEST_GROUP(ft_htdestroy); // algo RUN_TEST_GROUP(ft_bsearch); diff --git a/test/src/runner/test_runner_ht.c b/test/src/runner/test_runner_ht.c index f25a61a..6f83006 100644 --- a/test/src/runner/test_runner_ht.c +++ b/test/src/runner/test_runner_ht.c @@ -6,7 +6,7 @@ /* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/12 22:44:39 by cacharle #+# #+# */ -/* Updated: 2020/02/17 05:02:25 by cacharle ### ########.fr */ +/* Updated: 2020/02/19 02:46:34 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ @@ -28,6 +28,7 @@ TEST_GROUP_RUNNER(ft_htget) { RUN_TEST_CASE(ft_htget, segfault); RUN_TEST_CASE(ft_htget, error_null); + RUN_TEST_CASE(ft_htget, basic); } TEST_GROUP_RUNNER(ft_htset) @@ -38,3 +39,13 @@ TEST_GROUP_RUNNER(ft_htset) RUN_TEST_CASE(ft_htset, reset); RUN_TEST_CASE(ft_htset, collision); } + +TEST_GROUP_RUNNER(ft_htdelone) +{ + RUN_TEST_CASE(ft_htdelone, basic); +} + +TEST_GROUP_RUNNER(ft_htdestroy) +{ + RUN_TEST_CASE(ft_htdestroy, basic); +} |
