gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r26823 - gnunet/src/peerinfo


From: gnunet
Subject: [GNUnet-SVN] r26823 - gnunet/src/peerinfo
Date: Wed, 10 Apr 2013 09:25:24 +0200

Author: wachs
Date: 2013-04-10 09:25:24 +0200 (Wed, 10 Apr 2013)
New Revision: 26823

Added:
   gnunet/src/peerinfo/test_peerinfo_shipped_hellos.c
Modified:
   gnunet/src/peerinfo/Makefile.am
   gnunet/src/peerinfo/gnunet-service-peerinfo.c
Log:
testing hellos shipped


Modified: gnunet/src/peerinfo/Makefile.am
===================================================================
--- gnunet/src/peerinfo/Makefile.am     2013-04-09 17:18:16 UTC (rev 26822)
+++ gnunet/src/peerinfo/Makefile.am     2013-04-10 07:25:24 UTC (rev 26823)
@@ -47,6 +47,7 @@
 endif
 
 check_PROGRAMS = \
+ test_peerinfo_shipped_hellos \
  test_peerinfo_api \
  test_peerinfo_api_friend_only \
  test_peerinfo_api_notify_friend_only \
@@ -56,6 +57,14 @@
 TESTS = $(check_PROGRAMS)
 endif
 
+test_peerinfo_shipped_hellos_SOURCES = \
+ test_peerinfo_shipped_hellos.c
+test_peerinfo_shipped_hellos_LDADD = \
+ $(top_builddir)/src/hello/libgnunethello.la \
+ $(top_builddir)/src/peerinfo/libgnunetpeerinfo.la \
+ $(top_builddir)/src/testing/libgnunettesting.la \
+ $(top_builddir)/src/util/libgnunetutil.la  
+
 test_peerinfo_api_SOURCES = \
  test_peerinfo_api.c
 test_peerinfo_api_LDADD = \

Modified: gnunet/src/peerinfo/gnunet-service-peerinfo.c
===================================================================
--- gnunet/src/peerinfo/gnunet-service-peerinfo.c       2013-04-09 17:18:16 UTC 
(rev 26822)
+++ gnunet/src/peerinfo/gnunet-service-peerinfo.c       2013-04-10 07:25:24 UTC 
(rev 26823)
@@ -341,7 +341,7 @@
     return;
 
   size_total = GNUNET_DISK_fn_read (fn, buffer, sizeof (buffer));
-  GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Read %u bytes from `%s'\n", 
size_total, fn);
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Read %u bytes from `%s'\n", 
size_total, fn);
   if (size_total < sizeof (struct GNUNET_MessageHeader))
   {
            GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
@@ -546,7 +546,7 @@
        filename = fullname;
   else
        filename ++;
-  GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Reading `%s'\n", filename);
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Reading `%s'\n", filename);
 
   if (GNUNET_OK != GNUNET_CRYPTO_hash_from_string (filename, 
&identity.hashPubKey))
   {

Added: gnunet/src/peerinfo/test_peerinfo_shipped_hellos.c
===================================================================
--- gnunet/src/peerinfo/test_peerinfo_shipped_hellos.c                          
(rev 0)
+++ gnunet/src/peerinfo/test_peerinfo_shipped_hellos.c  2013-04-10 07:25:24 UTC 
(rev 26823)
@@ -0,0 +1,118 @@
+/*
+     This file is part of GNUnet.
+     (C) 2004, 2009 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 peerinfo/test_peerinfo_api.c
+ * @brief testcase for shipped HELLOs getting parsed
+ * @author Christian Grothoff
+ * @author Matthias Wachs
+ *
+ */
+#include "platform.h"
+#include "gnunet_hello_lib.h"
+#include "gnunet_util_lib.h"
+#include "gnunet_peerinfo_service.h"
+#include "gnunet_testing_lib.h"
+#include "peerinfo.h"
+
+static struct GNUNET_PEERINFO_IteratorContext *ic;
+
+static struct GNUNET_PEERINFO_Handle *h;
+
+static int global_ret;
+
+static int
+addr_cb (void *cls,
+                                const struct GNUNET_HELLO_Address *address,
+                                struct GNUNET_TIME_Absolute expiration)
+{;
+       int *addr = cls;
+       (*addr) ++;
+       return GNUNET_OK;
+}
+
+static void
+process (void *cls, const struct GNUNET_PeerIdentity *peer,
+         const struct GNUNET_HELLO_Message *hello, const char *err_msg)
+{
+  static unsigned int calls = 0;
+  int addr;
+
+  if (err_msg != NULL)
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                _("Error in communication with PEERINFO service\n"));
+  }
+  if (NULL != peer)
+  {
+       addr = 0;
+               if (NULL != hello)
+               {
+                       GNUNET_HELLO_iterate_addresses (hello, GNUNET_NO, 
&addr_cb, &addr);
+                       GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Got information 
about peer `%s' with %u addresses \n",
+                                       GNUNET_i2s (peer), addr);
+               calls++;
+               }
+               else
+                       GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Fail: Got 
information about peer `%s' without HELLO \n",
+                                       GNUNET_i2s (peer));
+  }
+  else
+  {
+       if (0 == calls)
+       {
+               fprintf (stderr, "Failed: %u callbacks\n", calls);
+               global_ret = 1;
+       }
+       else
+       {
+                       GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Failed: %u 
callbacks\n", calls);
+               global_ret = 0;
+       }
+  }
+}
+
+
+static void
+run (void *cls, 
+     const struct GNUNET_CONFIGURATION_Handle *cfg,
+     struct GNUNET_TESTING_Peer *peer)
+{
+  h = GNUNET_PEERINFO_connect (cfg);
+  GNUNET_assert (NULL != h);
+  ic = GNUNET_PEERINFO_iterate (h, GNUNET_YES, NULL,
+                                GNUNET_TIME_relative_multiply
+                                (GNUNET_TIME_UNIT_SECONDS, 15), &process, cls);
+}
+
+
+int
+main (int argc, char *argv[])
+{
+  global_ret = 3;
+  if (0 != GNUNET_TESTING_service_run ("test_peerinfo_system_hellos",
+                                      "peerinfo",
+                                      "test_peerinfo_api_data.conf",
+                                      &run, NULL))
+    return 1;
+  return global_ret;
+}
+
+/* end of test_peerinfo_shipped_hellos.c */




reply via email to

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