aboutsummaryrefslogblamecommitdiff
path: root/src/tests/ktests/hashtbl1/test.c
blob: 993718c942dea6f3d242b4c68c2ce1b6b386de51 (plain) (tree)








































                                                                                
#include <hashtbl.h>

void test_hashtbl_1() {
	BEGIN_TEST("test-hashtbl-1");

	// hashtable test
	hashtbl_t *ht = create_hashtbl(str_key_eq_fun, str_hash_fun, 0);
	ASSERT(ht != 0);

	ASSERT(hashtbl_add(ht, "test1", "STRTEST1"));
	ASSERT(hashtbl_add(ht, "test2", "STRTEST2"));
	ASSERT(hashtbl_find(ht, "test1") != 0 && 
			strcmp(hashtbl_find(ht, "test1"), "STRTEST1") == 0);
	ASSERT(hashtbl_find(ht, "test2") != 0 &&
			strcmp(hashtbl_find(ht, "test2"), "STRTEST2") == 0);
	ASSERT(hashtbl_find(ht, "test") == 0);

	ASSERT(hashtbl_add(ht, "test", "Forever alone"));
	ASSERT(hashtbl_find(ht, "test1") != 0 &&
			strcmp(hashtbl_find(ht, "test1"), "STRTEST1") == 0);
	ASSERT(hashtbl_find(ht, "test2") != 0 &&
			strcmp(hashtbl_find(ht, "test2"), "STRTEST2") == 0);
	ASSERT(hashtbl_find(ht, "test") != 0 &&
			strcmp(hashtbl_find(ht, "test"), "Forever alone") == 0);

	hashtbl_remove(ht, "test1");
	ASSERT(hashtbl_find(ht, "test1") == 0);
	ASSERT(hashtbl_find(ht, "test2") != 0 &&
			strcmp(hashtbl_find(ht, "test2"), "STRTEST2") == 0);
	ASSERT(hashtbl_find(ht, "test") != 0 &&
			strcmp(hashtbl_find(ht, "test"), "Forever alone") == 0);

	delete_hashtbl(ht);

	TEST_OK;
}

#undef TEST_PLACEHOLDER_AFTER_TASKING
#define TEST_PLACEHOLDER_AFTER_TASKING { test_hashtbl_1(); }

/* vim: set ts=4 sw=4 tw=0 noet :*/