gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r25290 - gnunet/src/ats


From: gnunet
Subject: [GNUnet-SVN] r25290 - gnunet/src/ats
Date: Thu, 6 Dec 2012 13:20:58 +0100

Author: wachs
Date: 2012-12-06 13:20:58 +0100 (Thu, 06 Dec 2012)
New Revision: 25290

Added:
   gnunet/src/ats/test_ats_api_scheduling_update_address.c
Removed:
   gnunet/src/ats/test_ats_api_update_address.c
Modified:
   gnunet/src/ats/Makefile.am
   gnunet/src/ats/test_ats_api_scheduling_destroy_address.c
   gnunet/src/ats/test_ats_api_scheduling_destroy_session.c
Log:
changes

Modified: gnunet/src/ats/Makefile.am
===================================================================
--- gnunet/src/ats/Makefile.am  2012-12-06 12:17:31 UTC (rev 25289)
+++ gnunet/src/ats/Makefile.am  2012-12-06 12:20:58 UTC (rev 25290)
@@ -60,6 +60,7 @@
 check_PROGRAMS = \
  test_ats_api_scheduling_init \
  test_ats_api_scheduling_add_address \
+ test_ats_api_scheduling_update_address \
  test_ats_api_scheduling_destroy_address \
  test_ats_api_scheduling_destroy_session 
 # test_ats_api_scheduling \ 
@@ -82,6 +83,20 @@
   $(top_builddir)/src/testing/libgnunettesting.la \
   $(top_builddir)/src/ats/libgnunetats.la  
 
+test_ats_api_scheduling_add_address_SOURCES = \
+ test_ats_api_scheduling_add_address.c
+test_ats_api_scheduling_add_address_LDADD = \
+  $(top_builddir)/src/util/libgnunetutil.la \
+  $(top_builddir)/src/testing/libgnunettesting.la \
+  $(top_builddir)/src/ats/libgnunetats.la  
+
+test_ats_api_scheduling_update_address_SOURCES = \
+ test_ats_api_scheduling_update_address.c
+test_ats_api_scheduling_update_address_LDADD = \
+  $(top_builddir)/src/util/libgnunetutil.la \
+  $(top_builddir)/src/testing/libgnunettesting.la \
+  $(top_builddir)/src/ats/libgnunetats.la  
+
 test_ats_api_scheduling_destroy_address_SOURCES = \
  test_ats_api_scheduling_destroy_address.c
 test_ats_api_scheduling_destroy_address_LDADD = \
@@ -137,13 +152,6 @@
 #  $(top_builddir)/src/testing/libgnunettesting.la \
 #  $(top_builddir)/src/ats/libgnunetats.la  
 
-test_ats_api_scheduling_add_address_SOURCES = \
- test_ats_api_scheduling_add_address.c
-test_ats_api_scheduling_add_address_LDADD = \
-  $(top_builddir)/src/util/libgnunetutil.la \
-  $(top_builddir)/src/testing/libgnunettesting.la \
-  $(top_builddir)/src/ats/libgnunetats.la  
-
 #test_ats_api_scheduling_destroy_address_SOURCES = \
 # test_ats_api_scheduling_destroy_address.c
 #test_ats_api_scheduling_destroy_address_LDADD = \
@@ -166,12 +174,8 @@
 #  $(top_builddir)/src/testing/libgnunettesting.la \
 #  $(top_builddir)/src/ats/libgnunetats.la  
 
-#test_ats_api_update_address_SOURCES = \
-# test_ats_api_update_address.c
-#test_ats_api_update_address_LDADD = \
-#  $(top_builddir)/src/util/libgnunetutil.la \
-#  $(top_builddir)/src/ats/libgnunetats.la  
 
+
 #test_ats_api_performance_SOURCES = \
 # test_ats_api_performance.c
 #test_ats_api_performance_LDADD = \

Modified: gnunet/src/ats/test_ats_api_scheduling_destroy_address.c
===================================================================
--- gnunet/src/ats/test_ats_api_scheduling_destroy_address.c    2012-12-06 
12:17:31 UTC (rev 25289)
+++ gnunet/src/ats/test_ats_api_scheduling_destroy_address.c    2012-12-06 
12:20:58 UTC (rev 25290)
@@ -60,7 +60,7 @@
 /**
  * HELLO address
  */
-struct GNUNET_HELLO_Address hello_address;
+struct GNUNET_HELLO_Address test_hello_address;
 
 
 static void
@@ -164,7 +164,7 @@
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Destroying address for `%s'\n",
                 GNUNET_i2s (&address->peer));
     /* Destroying address */
-    GNUNET_ATS_address_destroyed (sched_ats, &hello_address, 
test_addr.session);
+    GNUNET_ATS_address_destroyed (sched_ats, &test_hello_address, 
test_addr.session);
     /* Request address */
     GNUNET_ATS_suggest_address (sched_ats, &p.id);
     wait_task = GNUNET_SCHEDULER_add_delayed (WAIT_TIMEOUT, &end, NULL);
@@ -207,11 +207,11 @@
   create_test_address (&test_addr, "test", NULL, "test", strlen ("test") + 1);
 
   /* Adding address without session */
-  hello_address.peer = p.id;
-  hello_address.transport_name = test_addr.plugin;
-  hello_address.address = test_addr.addr;
-  hello_address.address_length = test_addr.addr_len;
-  GNUNET_ATS_address_add (sched_ats, &hello_address, test_addr.session, NULL, 
0);
+  test_hello_address.peer = p.id;
+  test_hello_address.transport_name = test_addr.plugin;
+  test_hello_address.address = test_addr.addr;
+  test_hello_address.address_length = test_addr.addr_len;
+  GNUNET_ATS_address_add (sched_ats, &test_hello_address, test_addr.session, 
NULL, 0);
 
   /* Request address */
   GNUNET_ATS_suggest_address (sched_ats, &p.id);

Modified: gnunet/src/ats/test_ats_api_scheduling_destroy_session.c
===================================================================
--- gnunet/src/ats/test_ats_api_scheduling_destroy_session.c    2012-12-06 
12:17:31 UTC (rev 25289)
+++ gnunet/src/ats/test_ats_api_scheduling_destroy_session.c    2012-12-06 
12:20:58 UTC (rev 25290)
@@ -63,7 +63,7 @@
 /**
  * HELLO address
  */
-struct GNUNET_HELLO_Address hello_address;
+struct GNUNET_HELLO_Address test_hello_address;
 
 /**
  * Session
@@ -177,7 +177,7 @@
                 GNUNET_i2s (&address->peer));
     /* Destroying session for address */
     test_session = NULL;
-    GNUNET_ATS_address_destroyed (sched_ats, &hello_address, 
test_addr.session);
+    GNUNET_ATS_address_destroyed (sched_ats, &test_hello_address, 
test_addr.session);
     /* Request address */
     GNUNET_ATS_suggest_address (sched_ats, &p.id);
     return;
@@ -231,7 +231,7 @@
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Destroying address for `%s'\n",
                 GNUNET_i2s (&address->peer));
     /* Destroying complete address */
-    GNUNET_ATS_address_destroyed (sched_ats, &hello_address, session);
+    GNUNET_ATS_address_destroyed (sched_ats, &test_hello_address, session);
     /* Request address */
     GNUNET_ATS_suggest_address (sched_ats, &p.id);
     wait_task = GNUNET_SCHEDULER_add_delayed (WAIT_TIMEOUT, &end, NULL);
@@ -274,11 +274,11 @@
   /* Adding address with session */
   create_test_address (&test_addr, "test", &test_addr, "test", strlen ("test") 
+ 1);
   test_session = &test_addr;
-  hello_address.peer = p.id;
-  hello_address.transport_name = test_addr.plugin;
-  hello_address.address = test_addr.addr;
-  hello_address.address_length = test_addr.addr_len;
-  GNUNET_ATS_address_add (sched_ats, &hello_address, test_addr.session, NULL, 
0);
+  test_hello_address.peer = p.id;
+  test_hello_address.transport_name = test_addr.plugin;
+  test_hello_address.address = test_addr.addr;
+  test_hello_address.address_length = test_addr.addr_len;
+  GNUNET_ATS_address_add (sched_ats, &test_hello_address, test_addr.session, 
NULL, 0);
 
   /* Request address */
   GNUNET_ATS_suggest_address (sched_ats, &p.id);

Copied: gnunet/src/ats/test_ats_api_scheduling_update_address.c (from rev 
25280, gnunet/src/ats/test_ats_api_update_address.c)
===================================================================
--- gnunet/src/ats/test_ats_api_scheduling_update_address.c                     
        (rev 0)
+++ gnunet/src/ats/test_ats_api_scheduling_update_address.c     2012-12-06 
12:20:58 UTC (rev 25290)
@@ -0,0 +1,253 @@
+/*
+     This file is part of GNUnet.
+     (C) 2010,2011 Christian Grothoff (and other contributing authors)
+
+     GNUnet is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published
+     by the Free Software Foundation; either version 3, or (at your
+     option) any later version.
+
+     GNUnet is distributed in the hope that it will be useful, but
+     WITHOUT ANY WARRANTY; without even the implied warranty of
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+     General Public License for more details.
+
+     You should have received a copy of the GNU General Public License
+     along with GNUnet; see the file COPYING.  If not, write to the
+     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+     Boston, MA 02111-1307, USA.
+*/
+/**
+ * @file ats/test_ats_api_scheduling_update_address.c
+ * @brief test updating an address: add address, get and compare it, update it
+ *        get it again and compre
+ * @author Christian Grothoff
+ * @author Matthias Wachs
+ */
+#include "platform.h"
+#include "gnunet_ats_service.h"
+#include "gnunet_testing_lib-new.h"
+#include "ats.h"
+#include "test_ats_api_common.h"
+
+static GNUNET_SCHEDULER_TaskIdentifier die_task;
+
+/**
+ * Scheduling handle
+ */
+static struct GNUNET_ATS_SchedulingHandle *sched_ats;
+
+/**
+ * Return value
+ */
+static int ret;
+
+/**
+ * Test address
+ */
+static struct Test_Address test_addr;
+
+/**
+ * Test peer
+ */
+static struct PeerContext p;
+
+/**
+ * HELLO test address
+ */
+
+struct GNUNET_HELLO_Address test_hello_address;
+
+/**
+ * Test session
+ */
+static void *test_session;
+
+static void
+create_test_address (struct Test_Address *dest, char * plugin, void *session, 
void *addr, size_t addrlen)
+{
+  dest->plugin = GNUNET_strdup (plugin);
+  dest->session = session;
+  dest->addr = GNUNET_malloc (addrlen);
+  memcpy (dest->addr, addr, addrlen);
+  dest->addr_len = addrlen;
+}
+
+static void
+free_test_address (struct Test_Address *dest)
+{
+  GNUNET_free (dest->plugin);
+  GNUNET_free (dest->addr);
+}
+
+
+static void
+end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+{
+  die_task = GNUNET_SCHEDULER_NO_TASK;
+
+  if (sched_ats != NULL)
+    GNUNET_ATS_scheduling_done (sched_ats);
+  free_test_address (&test_addr);
+  ret = GNUNET_SYSERR;
+}
+
+
+static void
+end ()
+{
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Shutting down\n");
+  if (die_task != GNUNET_SCHEDULER_NO_TASK)
+  {
+    GNUNET_SCHEDULER_cancel (die_task);
+    die_task = GNUNET_SCHEDULER_NO_TASK;
+  }
+  GNUNET_ATS_scheduling_done (sched_ats);
+  sched_ats = NULL;
+  free_test_address (&test_addr);
+}
+
+
+static int
+compare_addresses (const struct GNUNET_HELLO_Address *address1, void *session1,
+                   const struct GNUNET_HELLO_Address *address2, void *session2)
+{
+  if (0 != memcmp (&address1->peer, &address2->peer, sizeof (struct 
GNUNET_PeerIdentity)))
+  {
+      GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Suggestion with invalid peer 
id'\n");
+      return GNUNET_SYSERR;
+  }
+  if (0 != strcmp (address1->transport_name, address2->transport_name))
+  {
+      GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Suggestion with invalid 
plugin'\n");
+      return GNUNET_SYSERR;
+  }
+  if (address1->address_length != address2->address_length)
+  {
+      GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Suggestion with invalid address 
length'\n");
+      return GNUNET_SYSERR;
+
+  }
+  else if (0 != memcmp (address1->address, address2->address, 
address2->address_length))
+  {
+      GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Suggestion with invalid 
address'\n");
+      return GNUNET_SYSERR;
+  }
+  if (session1 != session2)
+  {
+      GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Suggestion with invalid session1 
%p vs session2 %p'\n",
+                  session1, session2);
+      return GNUNET_SYSERR;
+
+  }
+  return GNUNET_OK;
+}
+
+static void
+address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *address,
+                    struct Session *session,
+                    struct GNUNET_BANDWIDTH_Value32NBO bandwidth_out,
+                    struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in,
+                    const struct GNUNET_ATS_Information *atsi,
+                    uint32_t ats_count)
+{
+  static int stage = 0;
+  if (0 == stage)
+  {
+    GNUNET_ATS_suggest_address_cancel (sched_ats, &p.id);
+    if (GNUNET_OK == compare_addresses(address, session, &test_hello_address, 
test_session))
+    {
+      GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Stage 0: Callback for correct 
address `%s'\n",
+                  GNUNET_i2s (&address->peer));
+      ret = 0;
+    }
+    else
+    {
+        ret = 1;
+        GNUNET_SCHEDULER_add_now (&end, NULL);
+    }
+
+    /* Update address */
+
+
+    /* Request address */
+    GNUNET_ATS_suggest_address (sched_ats, &p.id);
+    stage ++;
+  }
+  else if (1 == stage)
+  {
+      GNUNET_ATS_suggest_address_cancel (sched_ats, &p.id);
+      if (GNUNET_OK == compare_addresses(address, session, 
&test_hello_address, test_session))
+      {
+        GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Stage 1: Callback with correct 
address `%s'\n",
+                    GNUNET_i2s (&address->peer));
+        ret = 0;
+      }
+      else
+      {
+        GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Stage 1: Callback with incorrect 
address `%s'\n",
+                    GNUNET_i2s (&address->peer));
+        ret = 1;
+      }
+
+      GNUNET_SCHEDULER_add_now (&end, NULL);
+  }
+
+}
+
+static void
+run (void *cls,
+     const struct GNUNET_CONFIGURATION_Handle *cfg,
+     struct GNUNET_TESTING_Peer *peer)
+{
+  die_task = GNUNET_SCHEDULER_add_delayed (TIMEOUT, &end_badly, NULL);
+
+  /* Connect to ATS scheduling */
+  sched_ats = GNUNET_ATS_scheduling_init (cfg, &address_suggest_cb, NULL);
+  if (sched_ats == NULL)
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Could not connect to ATS 
scheduling!\n");
+    ret = 1;
+    end ();
+    return;
+  }
+
+  /* Set up peer */
+  if (GNUNET_SYSERR == GNUNET_CRYPTO_hash_from_string(PEERID, 
&p.id.hashPubKey))
+  {
+      GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Could not setup peer!\n");
+      ret = GNUNET_SYSERR;
+      end ();
+      return;
+  }
+
+  GNUNET_assert (0 == strcmp (PEERID, GNUNET_i2s_full (&p.id)));
+
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Created peer `%s'\n",
+              GNUNET_i2s_full(&p.id));
+
+  /* Adding address without session */
+  test_session = &test_addr;
+  create_test_address (&test_addr, "test", &test_addr, "test", strlen ("test") 
+ 1);
+  test_hello_address.peer = p.id;
+  test_hello_address.transport_name = test_addr.plugin;
+  test_hello_address.address = test_addr.addr;
+  test_hello_address.address_length = test_addr.addr_len;
+  GNUNET_ATS_address_add (sched_ats, &test_hello_address, test_session, NULL, 
0);
+
+  /* Request address */
+  GNUNET_ATS_suggest_address (sched_ats, &p.id);
+}
+
+
+int
+main (int argc, char *argv[])
+{
+  if (0 != GNUNET_TESTING_peer_run ("test_ats_api_scheduling_update_address",
+                                    "test_ats_api.conf",
+                                    &run, NULL))
+    return 1;
+  return ret;
+}
+
+/* end of file test_ats_api_scheduling_update_address.c */

Deleted: gnunet/src/ats/test_ats_api_update_address.c
===================================================================
--- gnunet/src/ats/test_ats_api_update_address.c        2012-12-06 12:17:31 UTC 
(rev 25289)
+++ gnunet/src/ats/test_ats_api_update_address.c        2012-12-06 12:20:58 UTC 
(rev 25290)
@@ -1,288 +0,0 @@
-/*
-     This file is part of GNUnet.
-     (C) 2010,2011 Christian Grothoff (and other contributing authors)
-
-     GNUnet is free software; you can redistribute it and/or modify
-     it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 3, or (at your
-     option) any later version.
-
-     GNUnet is distributed in the hope that it will be useful, but
-     WITHOUT ANY WARRANTY; without even the implied warranty of
-     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-     General Public License for more details.
-
-     You should have received a copy of the GNU General Public License
-     along with GNUnet; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
-*/
-/**
- * @file ats/ats_api.c
- * @brief automatic transport selection API
- * @author Christian Grothoff
- * @author Matthias Wachs
- *
- * TODO:
- * - write test case
- * - extend API to get performance data
- * - implement simplistic strategy based on say 'lowest latency' or strict 
ordering
- * - extend API to get peer preferences, implement proportional bandwidth 
assignment
- * - re-implement API against a real ATS service (!)
- */
-#include "platform.h"
-#include "gnunet_ats_service.h"
-#include "gnunet_transport_service.h"
-
-
-#define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 5)
-
-#define VALID GNUNET_TIME_UNIT_FOREVER_ABS
-
-static struct GNUNET_ATS_SchedulingHandle *ats;
-
-static struct GNUNET_ATS_SuggestionContext *asc;
-
-static struct GNUNET_PeerIdentity peer;
-
-static GNUNET_SCHEDULER_TaskIdentifier end_task;
-
-static struct AllocationRecord *ar;
-
-static int result;
-
-struct ExpectedValues
-{
-  int expected_ats_count;
-
-  int expected_ats_type;
-
-  int expected_ats_value;
-
-  int expected_in_index;
-};
-
-struct AllocationRecord
-{
-
-  /**
-   * Performance information associated with this address (array).
-   */
-  struct GNUNET_ATS_Information *ats;
-
-  /**
-   * Name of the plugin
-   */
-  char *plugin_name;
-
-  /**
-   * Address this record represents, allocated at the end of this struct.
-   */
-  const void *plugin_addr;
-
-  /**
-   * Session associated with this record.
-   */
-  struct Session *session;
-
-  /**
-   * Number of bytes in plugin_addr.
-   */
-  size_t plugin_addr_len;
-
-  /**
-   * Number of entries in 'ats'.
-   */
-  uint32_t ats_count;
-};
-
-static void
-end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
-{
-  GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Shutdown\n");
-  if (asc != NULL)
-  {
-    GNUNET_ATS_suggest_address_cancel (asc);
-    asc = NULL;
-  }
-  GNUNET_ATS_shutdown (ats);
-
-  GNUNET_array_grow (ar->ats, ar->ats_count, 0);
-  GNUNET_free (ar);
-}
-
-void
-suggest_cb (void *cls, const struct GNUNET_PeerIdentity *peer,
-            const char *plugin_name, const void *plugin_addr,
-            size_t plugin_addr_len, struct Session *session,
-            struct GNUNET_BANDWIDTH_Value32NBO bandwidth,
-            const struct GNUNET_ATS_Information *ats, uint32_t ats_count)
-{
-  struct ExpectedValues *ex = cls;
-
-  GNUNET_log (GNUNET_ERROR_TYPE_INFO,
-              "ATS suggested address for peer `%s': `%s' `%s'\n",
-              GNUNET_i2s (peer), plugin_name, plugin_addr);
-  GNUNET_log (GNUNET_ERROR_TYPE_INFO, "ATS count %u\n", ats_count);
-
-  int c = 0;
-
-  while (c < ats_count)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_INFO, "ats[%u]: type %u value %u\n", c,
-                ntohl (ats[c].type), ntohl (ats[c].value));
-
-    c++;
-  }
-
-  if (ex->expected_ats_count != GNUNET_SYSERR)
-    GNUNET_assert (ex->expected_ats_count == ats_count);
-
-  if ((ex->expected_ats_value != GNUNET_SYSERR) &&
-      (ex->expected_in_index != GNUNET_SYSERR))
-    GNUNET_assert (ex->expected_ats_value ==
-                   ntohl (ats[ex->expected_in_index].value));
-
-  if ((ex->expected_ats_type != GNUNET_SYSERR) &&
-      (ex->expected_in_index != GNUNET_SYSERR))
-    GNUNET_assert (ex->expected_ats_type ==
-                   ntohl (ats[ex->expected_in_index].type));
-
-
-}
-
-static void
-check (void *cls, char *const *args, const char *cfgfile,
-       const struct GNUNET_CONFIGURATION_Handle *cfg)
-{
-  struct ExpectedValues ex;
-
-  GNUNET_CRYPTO_hash_create_random (GNUNET_CRYPTO_QUALITY_WEAK,
-                                    &peer.hashPubKey);
-  GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Created peer identity `%s'\n",
-              GNUNET_i2s (&peer));
-
-  ats = GNUNET_ATS_init (cfg, NULL, NULL);
-  GNUNET_assert (ats != NULL);
-
-  end_task = GNUNET_SCHEDULER_add_delayed (TIMEOUT, &end, NULL);
-
-  ar = GNUNET_malloc (sizeof (struct AllocationRecord));
-
-  ar->plugin_name = "test";
-  ar->session = NULL;
-  ar->plugin_addr = "address1";
-  ar->plugin_addr_len = strlen (ar->plugin_addr) + 1;
-  ar->ats = GNUNET_malloc (sizeof (struct GNUNET_ATS_Information));
-
-  GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Initial ATS information\n");
-  ar->ats_count = 1;
-  ar->ats[0].type = htonl (0);
-  ar->ats[0].value = htonl (0);
-
-  ex.expected_ats_count = 1;
-  ex.expected_ats_type = 0;
-  ex.expected_ats_value = 0;
-  ex.expected_in_index = 0;
-
-  GNUNET_ATS_address_update (ats, &peer, VALID, ar->plugin_name, ar->session,
-                             ar->plugin_addr, ar->plugin_addr_len, ar->ats,
-                             ar->ats_count);
-  asc = GNUNET_ATS_suggest_address (ats, &peer, &suggest_cb, &ex);
-
-  GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Extending empty ATS information\n");
-
-  GNUNET_array_grow (ar->ats, ar->ats_count, ar->ats_count + 1);
-  ar->ats[0].type = htonl (1);
-  ar->ats[0].value = htonl (1);
-  ar->ats[1].type = htonl (0);
-  ar->ats[1].value = htonl (0);
-
-  ex.expected_ats_count = 2;
-  ex.expected_ats_type = 1;
-  ex.expected_ats_value = 1;
-  ex.expected_in_index = 0;
-
-  GNUNET_ATS_address_update (ats, &peer, VALID, ar->plugin_name, ar->session,
-                             ar->plugin_addr, ar->plugin_addr_len, ar->ats,
-                             ar->ats_count);
-  asc = GNUNET_ATS_suggest_address (ats, &peer, &suggest_cb, &ex);
-
-  GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Updating existing ATS information\n");
-
-  ar->ats[0].type = htonl (1);
-  ar->ats[0].value = htonl (2);
-  ar->ats[1].type = htonl (0);
-  ar->ats[1].value = htonl (0);
-
-  ex.expected_ats_count = 2;
-  ex.expected_ats_type = 1;
-  ex.expected_ats_value = 2;
-  ex.expected_in_index = 0;
-
-  GNUNET_ATS_address_update (ats, &peer, VALID, ar->plugin_name, ar->session,
-                             ar->plugin_addr, ar->plugin_addr_len, ar->ats,
-                             ar->ats_count);
-  asc = GNUNET_ATS_suggest_address (ats, &peer, &suggest_cb, &ex);
-
-  /* Extending existing ATS information */
-  GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Extending existing ATS information\n");
-
-
-  ar->ats[0].type = htonl (2);
-  ar->ats[0].value = htonl (2);
-  ar->ats[1].type = htonl (0);
-  ar->ats[1].value = htonl (0);
-
-  ex.expected_ats_count = 3;
-  ex.expected_ats_type = 2;
-  ex.expected_ats_value = 2;
-  ex.expected_in_index = 1;
-
-  GNUNET_ATS_address_update (ats, &peer, VALID, ar->plugin_name, ar->session,
-                             ar->plugin_addr, ar->plugin_addr_len, ar->ats,
-                             ar->ats_count);
-  asc = GNUNET_ATS_suggest_address (ats, &peer, &suggest_cb, &ex);
-
-  GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Updating existing ATS information\n");
-
-  ar->ats[0].type = htonl (2);
-  ar->ats[0].value = htonl (3);
-  ar->ats[1].type = htonl (0);
-  ar->ats[1].value = htonl (0);
-
-  ex.expected_ats_count = 3;
-  ex.expected_ats_type = 2;
-  ex.expected_ats_value = 3;
-  ex.expected_in_index = 1;
-
-  GNUNET_ATS_address_update (ats, &peer, VALID, ar->plugin_name, ar->session,
-                             ar->plugin_addr, ar->plugin_addr_len, ar->ats,
-                             ar->ats_count);
-  asc = GNUNET_ATS_suggest_address (ats, &peer, &suggest_cb, &ex);
-
-  if (end_task != GNUNET_SCHEDULER_NO_TASK)
-    GNUNET_SCHEDULER_cancel (end_task);
-  end_task = GNUNET_SCHEDULER_add_now (&end, NULL);
-}
-
-int
-main (int argc, char *argv1[])
-{
-  static char *const argv[] = { "test_ats_api_update_address",
-    "-c",
-    "test_ats_api.conf",
-    "-L", "WARNING",
-    NULL
-  };
-
-  static struct GNUNET_GETOPT_CommandLineOption options[] = {
-    GNUNET_GETOPT_OPTION_END
-  };
-
-  GNUNET_PROGRAM_run ((sizeof (argv) / sizeof (char *)) - 1, argv,
-                      "test_ats_api_update_address", "nohelp", options, &check,
-                      NULL);
-
-  return result;
-}




reply via email to

[Prev in Thread] Current Thread [Next in Thread]