aboutsummaryrefslogtreecommitdiff
path: root/test_mini/libft/test/src/ht/test_ft_htget.c
diff options
context:
space:
mode:
authornass1pro <nass1pro@gmail.com>2020-06-09 19:48:34 +0200
committernass1pro <nass1pro@gmail.com>2020-06-13 11:31:00 +0200
commit579a26f5593039ffbbd1a81e45ecf0ef8797cb5d (patch)
treec5b6761db98e27d15bab3fb45ba9e0a646cf06e0 /test_mini/libft/test/src/ht/test_ft_htget.c
parent9fabc25a980550afc6337fd729632462f2680daa (diff)
downloadminishell-579a26f5593039ffbbd1a81e45ecf0ef8797cb5d.tar.gz
minishell-579a26f5593039ffbbd1a81e45ecf0ef8797cb5d.tar.bz2
minishell-579a26f5593039ffbbd1a81e45ecf0ef8797cb5d.zip
add lexer
add single quote
Diffstat (limited to 'test_mini/libft/test/src/ht/test_ft_htget.c')
-rw-r--r--test_mini/libft/test/src/ht/test_ft_htget.c114
1 files changed, 114 insertions, 0 deletions
diff --git a/test_mini/libft/test/src/ht/test_ft_htget.c b/test_mini/libft/test/src/ht/test_ft_htget.c
new file mode 100644
index 0000000..386c3dc
--- /dev/null
+++ b/test_mini/libft/test/src/ht/test_ft_htget.c
@@ -0,0 +1,114 @@
+#include "libft_test.h"
+
+TEST_GROUP(ft_htget);
+
+static t_ftht *ht;
+
+TEST_SETUP(ft_htget)
+{
+ ht = ft_htnew(10);
+}
+
+TEST_TEAR_DOWN(ft_htget)
+{
+ /* ft_htdestroy_key(ht); */
+}
+
+int helper_segfault_pid;
+
+static void st_del(t_ftht_entry *c)
+{
+ free(c->key);
+ free(c);
+}
+
+TEST(ft_htget, segfault)
+{
+ 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), ""));
+ TEST_ASSERT_SEGFAULT(ft_htget(ft_htnew(1), "asdkfhjaklsdfhahjsdfk"));
+}
+
+TEST(ft_htget, error_null)
+{
+ 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");
+}