From 45c072ef9154a9d2f0203b8c79804a87b7b1b540 Mon Sep 17 00:00:00 2001 From: Harou Date: Tue, 23 Feb 2021 13:17:47 +0100 Subject: [PATCH] unitests hashmap.cpp --- tests/src/hashmap.cpp | 46 ++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 43 insertions(+), 3 deletions(-) diff --git a/tests/src/hashmap.cpp b/tests/src/hashmap.cpp index b62f9d5..425268e 100644 --- a/tests/src/hashmap.cpp +++ b/tests/src/hashmap.cpp @@ -24,7 +24,7 @@ extern "C" { } #include -#define HM_SIZE 100 +#define HM_SIZE 1000 TEST_CASE( "create_destroy hashmap", "[hashmap]" ) { void *hashmap = hm_new(HM_SIZE); @@ -32,7 +32,16 @@ TEST_CASE( "create_destroy hashmap", "[hashmap]" ) { hm_destroy(hashmap, free); } -TEST_CASE( "hm_set hashmap", "[hashmap]" ) { +TEST_CASE("basic hm_set test", "[hashmap]") { + void *hashmap = hm_new(HM_SIZE); + char *key = ft_strdup("Hello hashmap hm_set tester, let's find the bug ! @@@@@@@@\n"); + char *value = ft_strdup("An exemple of value to test !##############\n"); + REQUIRE(hm_set(hashmap, key, value) != NULL); + free(key); + hm_destroy(hashmap, free); +} + +TEST_CASE( "hm_set in a simple loop", "[hashmap]" ) { void *hashmap = hm_new(HM_SIZE); int i = 0; while(i < 5) @@ -46,6 +55,37 @@ TEST_CASE( "hm_set hashmap", "[hashmap]" ) { hm_destroy(hashmap, free); } +/* double free */ + +TEST_CASE("hm_set 2 insertions on the same key, key is const char *.") +{ + void *hashmap = hm_new(HM_SIZE); + const char *str_key = "&1"; + const char *str = "TEST ARRAY @@@ #### \n\n 0123456789 -+---*-*-+6fefefefsfgesfefefefefefefefesfesfsfesfsffefefsfsffefsfsfefesfesfs"; + char *value = ft_strdup(str); + REQUIRE(hm_set(hashmap, (char *)str_key, value)); + REQUIRE(hm_set(hashmap, (char *)str_key, value)); + hm_destroy(hashmap, free); +} + +/* DOUBLE FREE */ + +TEST_CASE("hm_set 2 insertions on 2 different keys . key is const char *") +{ + void *hashmap = hm_new(HM_SIZE); + const char *str_key = "&1"; + const char *str_key2 = "&2"; + const char *str = "TEST ARRAY @@@ #### \n\n 0123456789 -+---*-*-+6fefefefsfgesfefefefefefefefesfesfsfesfsffefefsfsffefsfsfefesfesfs"; + char *value = ft_strdup(str); + REQUIRE(hm_set(hashmap, (char *)str_key, value)); + REQUIRE(hm_set(hashmap, (char *)str_key2, value)); + hm_destroy(hashmap, free); +} + + +/* + LEAKS + TEST_CASE("hm_set further testing", "[hashmap]") { void *hashmap = hm_new(HM_SIZE); @@ -62,4 +102,4 @@ TEST_CASE("hm_set further testing", "[hashmap]") } hm_destroy(hashmap, free); } - +*/