]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-9775: Added initial unit test of preliminary allocation, initialization and bindin...
authorShane Bryldt <astaelan@gmail.com>
Wed, 30 Nov 2016 18:36:16 +0000 (18:36 +0000)
committerMike Jerris <mike@jerris.com>
Wed, 25 Jan 2017 20:59:33 +0000 (14:59 -0600)
libs/libks/test/Makefile.am
libs/libks/test/testdht2.c [new file with mode: 0644]

index 5c64a37fc6442501419c3ab50133c5da990fd7df..c993ab62ee6f17c2f039fed7f929dcff39421092 100644 (file)
@@ -54,6 +54,11 @@ testdht_SOURCES = testdht.c tap.c
 testdht_CFLAGS = $(AM_CFLAGS)
 testdht_LDADD = $(TEST_LDADD)
 
+check_PROGRAMS += testdht2
+testdht2_SOURCES = testdht2.c tap.c
+testdht2_CFLAGS = $(AM_CFLAGS)
+testdht2_LDADD = $(TEST_LDADD)
+
 check_PROGRAMS += testdht_net
 testdht_net_SOURCES = testdht-net.c tap.c
 testdht_net_CFLAGS = $(AM_CFLAGS)
diff --git a/libs/libks/test/testdht2.c b/libs/libks/test/testdht2.c
new file mode 100644 (file)
index 0000000..7f78480
--- /dev/null
@@ -0,0 +1,93 @@
+#include <ks.h>
+#include <../dht/ks_dht.h>
+#include <tap.h>
+
+int main() {
+  ks_status_t err;
+  int mask = 0;
+  ks_dht2_t *dht1 = NULL;
+  ks_dht2_t dht2;
+  ks_bool_t have_v4, have_v6;
+  char v4[48] = {0}, v6[48] = {0};
+  ks_sockaddr_t addr;
+  
+  err = ks_init();
+  ok(!err);
+
+  err = ks_find_local_ip(v4, sizeof(v4), &mask, AF_INET, NULL);
+  ok(err == KS_STATUS_SUCCESS);
+  have_v4 = !zstr_buf(v4);
+  
+  //err = ks_find_local_ip(v6, sizeof(v6), NULL, AF_INET6, NULL);
+  //ok(err == KS_STATUS_SUCCESS);
+  have_v6 = KS_FALSE;//!zstr_buf(v6);
+
+  ok(have_v4 || have_v6);
+
+  if (have_v4) {
+         diag("Binding to %s on ipv4\n", v4);
+  }
+  if (have_v6) {
+         diag("Binding to %s on ipv6\n", v6);
+  }
+
+  err = ks_dht2_alloc(&dht1, NULL);
+  ok(err == KS_STATUS_SUCCESS);
+  
+  err = ks_dht2_init(dht1, NULL);
+  ok(err == KS_STATUS_SUCCESS);
+
+  err = ks_dht2_prealloc(&dht2, dht1->pool);
+  ok(err == KS_STATUS_SUCCESS);
+  
+  err = ks_dht2_init(&dht2, NULL);
+  ok(err == KS_STATUS_SUCCESS);
+  
+  if (have_v4) {
+    err = ks_addr_set(&addr, v4, KS_DHT_DEFAULT_PORT, AF_INET);
+       ok(err == KS_STATUS_SUCCESS);
+       
+    err = ks_dht2_bind(dht1, &addr);
+    ok(err == KS_STATUS_SUCCESS);
+
+       err = ks_addr_set(&addr, v4, KS_DHT_DEFAULT_PORT + 1, AF_INET);
+       ok(err == KS_STATUS_SUCCESS);
+
+       err = ks_dht2_bind(&dht2, &addr);
+       ok(err == KS_STATUS_SUCCESS);
+  }
+
+  if (have_v6) {
+       err = ks_addr_set(&addr, v6, KS_DHT_DEFAULT_PORT, AF_INET6);
+       ok(err == KS_STATUS_SUCCESS);
+         
+    err = ks_dht2_bind(dht1, &addr);
+    ok(err == KS_STATUS_SUCCESS);
+
+       err = ks_addr_set(&addr, v6, KS_DHT_DEFAULT_PORT + 1, AF_INET6);
+       ok(err == KS_STATUS_SUCCESS);
+
+       err = ks_dht2_bind(&dht2, &addr);
+       ok(err == KS_STATUS_SUCCESS);
+  }
+
+
+  
+  
+
+  /* Cleanup and shutdown */
+
+  err = ks_dht2_deinit(&dht2);
+  ok(err == KS_STATUS_SUCCESS);
+
+  err = ks_dht2_deinit(dht1);
+  ok(err == KS_STATUS_SUCCESS);
+
+  err = ks_dht2_free(dht1);
+  ok(err == KS_STATUS_SUCCESS);
+  
+  err = ks_shutdown();
+  ok(err == KS_STATUS_SUCCESS);
+  
+  done_testing();
+}