From 0d1abd38999e1b2ef7355667fb72c58e830d1fc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Helleu?= Date: Mon, 3 Nov 2014 20:52:02 +0100 Subject: [PATCH] tests: add tests of functions string_shared_get and string_shared_free --- tests/unit/core/test-string.cpp | 35 ++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/tests/unit/core/test-string.cpp b/tests/unit/core/test-string.cpp index e80698f56..a22599b29 100644 --- a/tests/unit/core/test-string.cpp +++ b/tests/unit/core/test-string.cpp @@ -28,6 +28,7 @@ extern "C" #include #include "tests/tests.h" #include "src/core/wee-string.h" +#include "src/core/wee-hashtable.h" } #define ONE_KB 1000ULL @@ -94,6 +95,8 @@ extern "C" STRCMP_EQUAL(__result, str); \ free (str); +extern struct t_hashtable *string_hashtable_shared; + TEST_GROUP(String) { }; @@ -1081,5 +1084,35 @@ TEST(String, Input) TEST(String, Shared) { - /* TODO: write tests */ + const char *str1, *str2, *str3; + int count; + + count = string_hashtable_shared->items_count; + + str1 = string_shared_get ("this is a test"); + CHECK(str1); + + LONGS_EQUAL(count + 1, string_hashtable_shared->items_count); + + str2 = string_shared_get ("this is a test"); + CHECK(str2); + POINTERS_EQUAL(str1, str2); + + LONGS_EQUAL(count + 1, string_hashtable_shared->items_count); + + str3 = string_shared_get ("this is another test"); + CHECK(str3); + CHECK(str1 != str3); + CHECK(str2 != str3); + + LONGS_EQUAL(count + 2, string_hashtable_shared->items_count); + + string_shared_free (str1); + LONGS_EQUAL(count + 2, string_hashtable_shared->items_count); + + string_shared_free (str2); + LONGS_EQUAL(count + 1, string_hashtable_shared->items_count); + + string_shared_free (str3); + LONGS_EQUAL(count + 0, string_hashtable_shared->items_count); }