From af4b2127a1255407ff1259915e31c77a96dbcae6 Mon Sep 17 00:00:00 2001
From: Marek Vavrusa <marek@vavrusa.com>
Date: Wed, 20 Oct 2010 11:36:20 +0200
Subject: [PATCH] Added stub tests for Cuckoo, DNS library and Zone DB.

---
 CuteDNS.files                               |  5 +-
 src/tests/cuckoo-test.h                     | 15 -----
 src/tests/{cuckoo-test.c => cuckoo_tests.c} | 71 +++++++++++++++------
 src/tests/dnslib_tests.c                    | 30 +++++++++
 src/tests/main.c                            |  8 ++-
 src/tests/skiplist_tests.c                  |  1 +
 src/tests/zonedb_tests.c                    | 30 +++++++++
 7 files changed, 122 insertions(+), 38 deletions(-)
 delete mode 100644 src/tests/cuckoo-test.h
 rename src/tests/{cuckoo-test.c => cuckoo_tests.c} (95%)
 create mode 100644 src/tests/dnslib_tests.c
 create mode 100644 src/tests/zonedb_tests.c

diff --git a/CuteDNS.files b/CuteDNS.files
index 45b9931b1..6ad2a9f9e 100644
--- a/CuteDNS.files
+++ b/CuteDNS.files
@@ -32,12 +32,13 @@ src/zone/zone-parser.h
 src/tests/libtap/tap.c
 src/tests/libtap/tap.h
 src/tests/main.c
-src/tests/cuckoo-test.c
-src/tests/cuckoo-test.h
 src/tests/server_tests.c
 src/tests/skiplist_tests.c
 src/tests/da_tests.c
 src/tests/tap_unit.h
+src/tests/zonedb_tests.c
+src/tests/dnslib_tests.c
+src/tests/cuckoo_tests.c
 src/tests/template_tests.c
 src/other/log.h
 src/other/log.c
diff --git a/src/tests/cuckoo-test.h b/src/tests/cuckoo-test.h
deleted file mode 100644
index 26cd8b4f3..000000000
--- a/src/tests/cuckoo-test.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef CUCKOO_TEST
-#define CUCKOO_TEST
-
-#define CT_TEST_REHASH
-#define CT_TEST_STASH
-
-/*----------------------------------------------------------------------------*/
-
-int ct_test_hash_table( char *filename );
-
-int ct_start_server( char *filename );
-
-/*----------------------------------------------------------------------------*/
-
-#endif	// CUCKOO_TEST
diff --git a/src/tests/cuckoo-test.c b/src/tests/cuckoo_tests.c
similarity index 95%
rename from src/tests/cuckoo-test.c
rename to src/tests/cuckoo_tests.c
index cdd089729..6bf59e881 100644
--- a/src/tests/cuckoo-test.c
+++ b/src/tests/cuckoo_tests.c
@@ -1,21 +1,45 @@
-#include "cuckoo-test.h"
+#include "tap_unit.h"
+
+static int cuckoo_tests_count(int argc, char *argv[]);
+static int cuckoo_tests_run(int argc, char *argv[]);
+
+/*! Exported unit API.
+ */
+unit_api cuckoo_tests_api = {
+   "Cuckoo hashing",     //! Unit name
+   &cuckoo_tests_count,  //! Count scheduled tests
+   &cuckoo_tests_run     //! Run scheduled tests
+};
+
+/*! \todo Implement theese tests into API.
+  */
+
+/*! This helper routine should report number of
+ *  scheduled tests for given parameters.
+ */
+static int cuckoo_tests_count(int argc, char *argv[])
+{
+   return 0;
+}
+
+/*! Run all scheduled tests for given parameters.
+ */
+static int cuckoo_tests_run(int argc, char *argv[])
+{
+   return 0;
+}
+
 #include <stdio.h>
 #include <string.h>
 #include <assert.h>
 #include <urcu.h>
 
-#include "common.h"
-#include "cuckoo-hash-table.h"
-#include "dns-simple.h"
-#include "socket-manager.h"
-#include "dispatcher.h"
-#include "dynamic-array.h"
-
 //#define CK_TEST_DEBUG
 //#define CK_TEST_LOOKUP
 //#define CK_TEST_OUTPUT
 //#define CK_TEST_REMOVE
 //#define CK_TEST_COMPARE
+#define CT_TEST_REHASH
 
 #ifdef CK_TEST_DEBUG
 	#define CK_TEST_LOOKUP
@@ -35,6 +59,13 @@
 #define ERR_FILL 9
 #define ERR_REMOVE 10
 
+#include "common.h"
+#include "cuckoo-hash-table.h"
+#include "dns-simple.h"
+#include "socket-manager.h"
+#include "dispatcher.h"
+#include "dynamic-array.h"
+
 static const uint BUF_SIZE = 20;
 static const uint ARRAY_SIZE = 500;
 
@@ -250,7 +281,7 @@ int ct_hash_names( ck_hash_table *table, char **domains, uint count )
 		//if ((i & (((uint32_t)1<<(10)) - 1)) == 0) printf("%u\n", i);
 		if ((res =
 				ck_insert_item(table, domains[i], strlen(domains[i]),
-							   domains[i]))
+								domains[i]))
 			 != 0) {
 			fprintf(stderr, "\nInsert item returned %d.\n", res);
 			return ERR_INSERT;
@@ -448,7 +479,7 @@ void ct_answer_request( const char *query_wire, uint size,
 
 #ifdef CK_TEST_OUTPUT
 	printf("Query parsed, ID: %u, QNAME: %s\n", query->header.id,
-		   query->questions[0].qname);
+			query->questions[0].qname);
 	hex_print(query->questions[0].qname, strlen(query->questions[0].qname));
 #endif
 
@@ -624,7 +655,7 @@ int ct_compare_items_array( da_array *items1, da_array *items2 )
 		int found = 0;
 		for (uint j = 0; j < count2; ++j) {
 			if (strcmp(((char **)(da_get_items(items1)))[i],
-					   ((char **)(da_get_items(items2)))[j]) == 0) {
+						((char **)(da_get_items(items2)))[j]) == 0) {
 				++found;
 			}
 		}
@@ -650,7 +681,7 @@ int ct_compare_items_array( da_array *items1, da_array *items2 )
 		int found = 0;
 		for (uint j = 0; j < count1; ++j) {
 			if (strcmp(((char **)(da_get_items(items1)))[j],
-					   ((char **)(da_get_items(items2)))[i]) == 0) {
+						((char **)(da_get_items(items2)))[i]) == 0) {
 				++found;
 			}
 		}
@@ -707,7 +738,7 @@ void *ct_read_item( ck_hash_table *table, const dnss_dname test_name )
 	// get a reference to the item, protect by RCU
 	printf("[Read] Acquiring reference to the item...\n");
 	printf("[Read] Key: %*s, key size: %u\n", dname_size, test_dname,
-		   dname_size);
+			dname_size);
 	rcu_read_lock();
 	const ck_hash_table_item *item = ck_find_item(table, test_dname,
 												  dname_size - 1);
@@ -717,16 +748,16 @@ void *ct_read_item( ck_hash_table *table, const dnss_dname test_name )
 		rcu_unregister_thread();
 		return NULL;
 	}
-	printf("[Read] Found item with key: %*s, value: %p\n", item->key_length,
-		   item->key, item->value);
+	//printf("[Read] Found item with key: %*s, value: %p\n", item->key_length,
+	//		item->key, item->value);
 
 	// wait some time, so that the item is deleted
 	printf("[Read] Waiting...\n");
 	ct_waste_time(5000000);
 	printf("[Read] Done.\n");
 
-	printf("[Read] Still holding item with key: %*s, value: %p\n",
-		   item->key_length, item->key, item->value);
+	//printf("[Read] Still holding item with key: %*s, value: %p\n",
+	//		item->key_length, item->key, item->value);
 
 	// release the pointer
 	printf("[Read] Releasing the item...\n");
@@ -902,7 +933,7 @@ int ct_test_hash_table( char *filename )
 		printf("Testing lookup...\n\n");
 		res = ct_test_fnc_from_file(table, file, ct_test_lookup);
 		printf("\nDone. Items not found: %d\n\n",
-			   da_get_count(&items_not_found));
+				da_get_count(&items_not_found));
 		ct_clear_items_array(&items_not_found);
 
 		printf("Testing rehash...\n");
@@ -916,7 +947,7 @@ int ct_test_hash_table( char *filename )
 		printf("Testing lookup...\n\n");
 		res = ct_test_fnc_from_file(table, file, ct_test_lookup);
 		printf("\nDone. Items not found: %d\n\n",
-			   da_get_count(&items_not_found));
+				da_get_count(&items_not_found));
 		ct_clear_items_array(&items_not_found);
 
 		printf("Testing removal...\n\n");
@@ -928,7 +959,7 @@ int ct_test_hash_table( char *filename )
 		printf("\nDone. Result: %d\n\n", res);
 
 		printf("Comparing array of not found items with array of removed "
-			   "items...\n\n");
+				"items...\n\n");
 		res = ct_compare_items_array(&items_not_found, &items_removed);
 		printf("\nDone. Result: %d\n\n", res);
 
diff --git a/src/tests/dnslib_tests.c b/src/tests/dnslib_tests.c
new file mode 100644
index 000000000..cc9e5a7b5
--- /dev/null
+++ b/src/tests/dnslib_tests.c
@@ -0,0 +1,30 @@
+#include "tap_unit.h"
+
+static int dnslib_tests_count(int argc, char *argv[]);
+static int dnslib_tests_run(int argc, char *argv[]);
+
+/*! Exported unit API.
+ */
+unit_api dnslib_tests_api = {
+   "DNS library",        //! Unit name
+   &dnslib_tests_count,  //! Count scheduled tests
+   &dnslib_tests_run     //! Run scheduled tests
+};
+
+/*! \todo Implement theese tests into API.
+  */
+
+/*! This helper routine should report number of
+ *  scheduled tests for given parameters.
+ */
+static int dnslib_tests_count(int argc, char *argv[])
+{
+   return 0;
+}
+
+/*! Run all scheduled tests for given parameters.
+ */
+static int dnslib_tests_run(int argc, char *argv[])
+{
+   return 0;
+}
diff --git a/src/tests/main.c b/src/tests/main.c
index 5950d71bd..a7173a738 100644
--- a/src/tests/main.c
+++ b/src/tests/main.c
@@ -2,9 +2,12 @@
 #include "common.h"
 
 // Units to test
-#include "server_tests.c"
 #include "skiplist_tests.c"
 #include "da_tests.c"
+#include "cuckoo_tests.c"
+#include "zonedb_tests.c"
+#include "dnslib_tests.c"
+#include "server_tests.c"
 
 // Run all loaded units
 int main(int argc, char * argv[])
@@ -13,6 +16,9 @@ int main(int argc, char * argv[])
    unit_api* tests[] = {
       &skiplist_tests_api, //! Skip list unit
       &da_tests_api,       //! Dynamic array unit
+      &cuckoo_tests_api,   //! Cuckoo hashing unit
+      &zonedb_tests_api,   //! Zone database unit
+      &dnslib_tests_api,   //! DNS library unit
       &server_tests_api,   //! Server unit
       NULL
    };
diff --git a/src/tests/skiplist_tests.c b/src/tests/skiplist_tests.c
index f2f7785bb..6d1aa9053 100644
--- a/src/tests/skiplist_tests.c
+++ b/src/tests/skiplist_tests.c
@@ -1,5 +1,6 @@
 #include "tap_unit.h"
 #include "skip-list.h"
+#include <time.h>
 
 static int skiplist_tests_count(int argc, char * argv[]);
 static int skiplist_tests_run(int argc, char * argv[]);
diff --git a/src/tests/zonedb_tests.c b/src/tests/zonedb_tests.c
new file mode 100644
index 000000000..ab4480655
--- /dev/null
+++ b/src/tests/zonedb_tests.c
@@ -0,0 +1,30 @@
+#include "tap_unit.h"
+
+static int zonedb_tests_count(int argc, char *argv[]);
+static int zonedb_tests_run(int argc, char *argv[]);
+
+/*! Exported unit API.
+ */
+unit_api zonedb_tests_api = {
+   "Zone database",      //! Unit name
+   &zonedb_tests_count,  //! Count scheduled tests
+   &zonedb_tests_run     //! Run scheduled tests
+};
+
+/*! \todo Implement theese tests into API.
+  */
+
+/*! This helper routine should report number of
+ *  scheduled tests for given parameters.
+ */
+static int zonedb_tests_count(int argc, char *argv[])
+{
+   return 0;
+}
+
+/*! Run all scheduled tests for given parameters.
+ */
+static int zonedb_tests_run(int argc, char *argv[])
+{
+   return 0;
+}
-- 
GitLab