gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r29657 - gnunet/src/gns


From: gnunet
Subject: [GNUnet-SVN] r29657 - gnunet/src/gns
Date: Fri, 27 Sep 2013 17:01:56 +0200

Author: schanzen
Date: 2013-09-27 17:01:56 +0200 (Fri, 27 Sep 2013)
New Revision: 29657

Added:
   gnunet/src/gns/test_gns_ns_lookup.sh
Removed:
   gnunet/src/gns/test_gns_cname_lookup.c
   gnunet/src/gns/test_gns_simple_lookup.c
   gnunet/src/gns/test_gns_simple_mx_lookup.c
Modified:
   gnunet/src/gns/Makefile.am
Log:
-more tests

Modified: gnunet/src/gns/Makefile.am
===================================================================
--- gnunet/src/gns/Makefile.am  2013-09-27 12:04:37 UTC (rev 29656)
+++ gnunet/src/gns/Makefile.am  2013-09-27 15:01:56 UTC (rev 29657)
@@ -201,6 +201,7 @@
   test_gns_ipv6_lookup.sh\
   test_gns_txt_lookup.sh\
   test_gns_mx_lookup.sh \
+  test_gns_ns_lookup.sh \
   test_gns_cname_lookup.sh 
 
 if ENABLE_TEST_RUN

Deleted: gnunet/src/gns/test_gns_cname_lookup.c
===================================================================
--- gnunet/src/gns/test_gns_cname_lookup.c      2013-09-27 12:04:37 UTC (rev 
29656)
+++ gnunet/src/gns/test_gns_cname_lookup.c      2013-09-27 15:01:56 UTC (rev 
29657)
@@ -1,449 +0,0 @@
-/*
-     This file is part of GNUnet.
-     (C) 2012 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 gns/test_gns_cname_lookup.c
- * @brief base testcase for testing a local GNS record lookup
- * @author Martin Schanzenbach
- */
-#include "platform.h"
-#include "gnunet_testing_lib.h"
-#include "gnunet_core_service.h"
-#include "block_dns.h"
-#include "gnunet_signatures.h"
-#include "gnunet_namestore_service.h"
-#include "gnunet_dnsparser_lib.h"
-#include "gnunet_gns_service.h"
-
-
-/**
- * Timeout for entire testcase 
- */
-#define TIMEOUT GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_SECONDS, 20)
-
-/* test records to resolve */
-#define TEST_DOMAIN_PLUS "www.gnu"
-#define TEST_DOMAIN_ZKEY "www2.gnu"
-#define TEST_DOMAIN_DNS  "www3.gnu"
-#define TEST_IP_PLUS "127.0.0.1"
-#define TEST_IP_ZKEY "127.0.0.2"
-#define TEST_IP_DNS  "131.159.74.67"
-#define TEST_RECORD_CNAME_SERVER "server.gnu"
-#define TEST_RECORD_CNAME_PLUS "server.+"
-#define TEST_RECORD_CNAME_ZKEY 
"www.J7POEUT41A8PBFS7KVVDRF88GBOU4HK8PSU5QKVLVE3R9T91E99G.zkey"
-#define TEST_RECORD_CNAME_DNS "gnunet.org"
-#define TEST_RECORD_NAME_SERVER "server"
-#define TEST_RECORD_NAME_PLUS "www"
-#define TEST_RECORD_NAME_ZKEY "www2"
-#define TEST_RECORD_NAME_DNS "www3"
-
-#define KEYFILE_BOB 
"zonefiles/J7POEUT41A8PBFS7KVVDRF88GBOU4HK8PSU5QKVLVE3R9T91E99G.zkey"
-
-
-/* Task handle to use to schedule test failure */
-static GNUNET_SCHEDULER_TaskIdentifier die_task;
-
-/* Global return value (0 for success, anything else for failure) */
-static int ok;
-
-static struct GNUNET_NAMESTORE_Handle *namestore_handle;
-
-static struct GNUNET_GNS_Handle *gns_handle;
-
-static const struct GNUNET_CONFIGURATION_Handle *cfg;
-
-
-/**
- * Check if the get_handle is being used, if so stop the request.  Either
- * way, schedule the end_badly_cont function which actually shuts down the
- * test.
- */
-static void
-end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
-{
-  die_task = GNUNET_SCHEDULER_NO_TASK;
-  if (NULL != gns_handle)
-  {
-    GNUNET_GNS_disconnect (gns_handle);
-    gns_handle = NULL;
-  }
-  if (NULL != namestore_handle)
-  {
-    GNUNET_NAMESTORE_disconnect (namestore_handle);
-    namestore_handle = NULL;
-  }
-  GNUNET_break (0);
-  GNUNET_SCHEDULER_shutdown ();
-  ok = 1;
-}
-
-
-static void 
-shutdown_task (void *cls,
-              const struct GNUNET_SCHEDULER_TaskContext *tc)
-{
-  GNUNET_GNS_disconnect (gns_handle);
-  gns_handle = NULL;
-  GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Shutting down peer!\n");
-  GNUNET_SCHEDULER_shutdown ();
-}
-
-
-static void
-on_lookup_result_cname (void *cls, 
-                       uint32_t rd_count,
-                       const struct GNUNET_NAMESTORE_RecordData *rd)
-{
-  uint32_t i;
-  
-  if (GNUNET_SCHEDULER_NO_TASK != die_task)
-  {
-      GNUNET_SCHEDULER_cancel (die_task);
-      die_task = GNUNET_SCHEDULER_NO_TASK;
-  }
-  GNUNET_NAMESTORE_disconnect (namestore_handle);
-  namestore_handle = NULL;
-  if (rd_count == 0)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Lookup failed, rp_filtering?\n");
-    ok = 2;
-  }
-  else
-  {
-    ok = 1;
-    GNUNET_log (GNUNET_ERROR_TYPE_INFO, "name: %s\n", (char*)cls);
-    for (i=0; i<rd_count; i++)
-    {
-      GNUNET_log (GNUNET_ERROR_TYPE_INFO, "type: %d\n", rd[i].record_type);
-      if (rd[i].record_type == GNUNET_DNSPARSER_TYPE_CNAME)
-      {
-        GNUNET_log (GNUNET_ERROR_TYPE_INFO, "CNAME: %s\n", rd[i].data);
-        if (0 == strcmp(rd[i].data, TEST_RECORD_CNAME_SERVER))
-        {
-          GNUNET_log (GNUNET_ERROR_TYPE_INFO,
-                    "%s correctly resolved to %s!\n", TEST_DOMAIN_PLUS, 
rd[i].data);
-          ok = 0;
-        }
-      }
-      else
-      {
-        GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "No resolution!\n");
-      }
-    }
-  }
-  GNUNET_SCHEDULER_add_now (&shutdown_task, NULL);
-}
-
-
-static void
-on_lookup_result_dns (void *cls,
-                     uint32_t rd_count,
-                     const struct GNUNET_NAMESTORE_RecordData *rd)
-{
-  struct in_addr a;
-  uint32_t i;
-  char* addr;
-  
-  if (rd_count == 0)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "CNAME to DNS delegation failed. System offline?\n");
-  }
-  else
-  {
-    ok = 1;
-    GNUNET_log (GNUNET_ERROR_TYPE_INFO, "name: %s\n", (char*)cls);
-    for (i=0; i<rd_count; i++)
-    {
-      GNUNET_log (GNUNET_ERROR_TYPE_INFO, "type: %d\n", rd[i].record_type);
-      if (rd[i].record_type == GNUNET_DNSPARSER_TYPE_A)
-      {
-       memcpy(&a, rd[i].data, sizeof(a));
-       addr = inet_ntoa(a);
-       GNUNET_log (GNUNET_ERROR_TYPE_INFO, "address: %s\n", addr);
-       if (0 == strcmp(addr, TEST_IP_DNS))
-       {
-         GNUNET_log (GNUNET_ERROR_TYPE_INFO,
-                     "%s correctly resolved to %s!\n", TEST_DOMAIN_DNS, addr);
-         ok = 0;
-       }
-      }
-      else
-      {
-       GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "No resolution!\n");
-      }
-    }
-  }
-  GNUNET_GNS_lookup (gns_handle, TEST_DOMAIN_PLUS, GNUNET_DNSPARSER_TYPE_CNAME,
-                     GNUNET_YES,
-                     NULL,
-                     &on_lookup_result_cname, TEST_DOMAIN_PLUS);
-}
-
-
-static void
-on_lookup_result_zkey (void *cls, uint32_t rd_count,
-                      const struct GNUNET_NAMESTORE_RecordData *rd)
-{
-  struct in_addr a;
-  uint32_t i;
-  char* addr;
-  
-  if (rd_count == 0)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Lookup failed, rp_filtering?\n");
-    ok = 2;
-    GNUNET_SCHEDULER_shutdown ();
-    return;
-  }
-  ok = 1;
-  GNUNET_log (GNUNET_ERROR_TYPE_INFO,
-             "name: %s\n", (char*)cls);
-  for (i=0; i<rd_count; i++)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_INFO,
-               "type: %d\n", rd[i].record_type);
-    if (rd[i].record_type == GNUNET_DNSPARSER_TYPE_A)
-    {
-      memcpy (&a, rd[i].data, sizeof(a));
-      addr = inet_ntoa(a);
-      GNUNET_log (GNUNET_ERROR_TYPE_INFO, 
-                 "address: %s\n", addr);
-      if (0 == strcmp (addr, TEST_IP_ZKEY))
-      {
-       GNUNET_log (GNUNET_ERROR_TYPE_INFO,
-                   "%s correctly resolved to %s!\n", 
-                   TEST_DOMAIN_ZKEY, addr);
-       ok = 0;
-      }
-    }
-    else
-    {
-      GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                 "No resolution!\n");
-    }
-  }  
-  GNUNET_GNS_lookup (gns_handle, TEST_DOMAIN_DNS, GNUNET_DNSPARSER_TYPE_A,
-                    GNUNET_YES,
-                    NULL,
-                    &on_lookup_result_dns, TEST_DOMAIN_DNS);
-}
-
-
-static void
-on_lookup_result_plus (void *cls, uint32_t rd_count,
-                      const struct GNUNET_NAMESTORE_RecordData *rd)
-{
-  struct in_addr a;
-  uint32_t i;
-  char* addr;
-  
-  if (rd_count == 0)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Lookup failed, rp_filtering?\n");
-    ok = 2;
-    GNUNET_SCHEDULER_shutdown ();
-    return;
-  }
-  ok = 1;
-  GNUNET_log (GNUNET_ERROR_TYPE_INFO, "name: %s\n", (char*)cls);
-  for (i=0; i<rd_count; i++)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_INFO, "type: %d\n", rd[i].record_type);
-    if (rd[i].record_type == GNUNET_DNSPARSER_TYPE_A)
-    {
-      memcpy(&a, rd[i].data, sizeof(a));
-      addr = inet_ntoa(a);
-      GNUNET_log (GNUNET_ERROR_TYPE_INFO, "address: %s\n", addr);
-      if (0 == strcmp(addr, TEST_IP_PLUS))
-      {
-       GNUNET_log (GNUNET_ERROR_TYPE_INFO,
-                   "%s correctly resolved to %s!\n", TEST_DOMAIN_PLUS, addr);
-       ok = 0;
-      }
-    }
-    else
-    {
-      GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "No resolution!\n");
-    }
-  }
-  GNUNET_GNS_lookup (gns_handle, TEST_DOMAIN_ZKEY, GNUNET_DNSPARSER_TYPE_A,
-                    GNUNET_YES,
-                    NULL,
-                    &on_lookup_result_zkey, TEST_DOMAIN_ZKEY);
-}
-
-
-/**
- * Function scheduled to be run on the successful start of services
- * tries to look up the dns record for TEST_DOMAIN
- *
- * @param cls closure
- * @param success GNUNET_SYSERR on failure (including timeout/queue 
drop/failure to validate)
- *                GNUNET_NO if content was already there or not found
- *                GNUNET_YES (or other positive value) on success
- * @param emsg NULL on success, otherwise an error message
- */
-static void
-commence_testing (void *cls, int32_t success, const char *emsg)
-{
-  if (NULL != emsg)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Failed to store record in namestore: %s\n",
-               emsg);
-    GNUNET_SCHEDULER_shutdown ();
-    return;
-  }
-  gns_handle = GNUNET_GNS_connect(cfg);
-  if (NULL == gns_handle)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Failed to connect to GNS!\n");
-    GNUNET_SCHEDULER_shutdown ();
-    return;
-  }
-  GNUNET_GNS_lookup (gns_handle, TEST_DOMAIN_PLUS, GNUNET_DNSPARSER_TYPE_A,
-                    GNUNET_YES,
-                    NULL,
-                    &on_lookup_result_plus, TEST_DOMAIN_PLUS);
-}
-
-
-static void
-do_check (void *cls,
-          const struct GNUNET_CONFIGURATION_Handle *ccfg,
-          struct GNUNET_TESTING_Peer *peer)
-{
-  struct GNUNET_CRYPTO_EccPublicSignKey alice_pkey;
-  struct GNUNET_CRYPTO_EccPrivateKey *alice_key;
-  struct GNUNET_CRYPTO_EccPrivateKey *bob_key;
-  char* alice_keyfile;
-  struct GNUNET_NAMESTORE_RecordData rd;
-  const char* ip = TEST_IP_PLUS;
-  struct in_addr web;
-  
-  cfg = ccfg;
-  die_task = GNUNET_SCHEDULER_add_delayed (TIMEOUT, &end_badly, NULL);
-
-  /* put records into namestore */
-  namestore_handle = GNUNET_NAMESTORE_connect(cfg);
-  if (NULL == namestore_handle)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR, 
-               "Failed to connect to namestore\n");
-    GNUNET_SCHEDULER_shutdown ();
-    return;
-  }
-
-  if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_filename (cfg, "gns",
-                                                          "ZONEKEY",
-                                                          &alice_keyfile))
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-               "Failed to get key from cfg\n");
-    GNUNET_SCHEDULER_shutdown ();
-    return;
-  }
-
-  alice_key = GNUNET_CRYPTO_ecc_key_create_from_file (alice_keyfile);
-  GNUNET_CRYPTO_ecc_key_get_public_for_signature (alice_key, &alice_pkey);
-  GNUNET_free(alice_keyfile);
-
-  bob_key = GNUNET_CRYPTO_ecc_key_create_from_file (KEYFILE_BOB);
-
-  rd.expiration_time = UINT64_MAX;
-  GNUNET_assert(1 == inet_pton (AF_INET, ip, &web));
-  rd.data_size = sizeof(struct in_addr);
-  rd.data = &web;
-  rd.record_type = GNUNET_DNSPARSER_TYPE_A;
-  rd.flags = GNUNET_NAMESTORE_RF_NONE;
-
-  GNUNET_NAMESTORE_record_put_by_authority (namestore_handle,
-                                           alice_key,
-                                           TEST_RECORD_NAME_SERVER,
-                                           1, &rd,
-                                           NULL,
-                                           NULL);
-
-  rd.data_size = strlen (TEST_RECORD_CNAME_PLUS);
-  rd.data = TEST_RECORD_CNAME_PLUS;
-  rd.record_type = GNUNET_DNSPARSER_TYPE_CNAME;
-
-  GNUNET_NAMESTORE_record_put_by_authority (namestore_handle,
-                                           alice_key,
-                                           TEST_RECORD_NAME_PLUS,
-                                           1, &rd,
-                                           NULL,
-                                           NULL);
-
-  rd.data_size = strlen (TEST_RECORD_CNAME_ZKEY);
-  rd.data = TEST_RECORD_CNAME_ZKEY;
-  rd.record_type = GNUNET_DNSPARSER_TYPE_CNAME;
-
-  GNUNET_NAMESTORE_record_put_by_authority (namestore_handle,
-                                           alice_key,
-                                           TEST_RECORD_NAME_ZKEY,
-                                           1, &rd,
-                                           NULL,
-                                           NULL);
-
-  rd.data_size = strlen (TEST_RECORD_CNAME_DNS);
-  rd.data = TEST_RECORD_CNAME_DNS;
-  rd.record_type = GNUNET_DNSPARSER_TYPE_CNAME;
-
-  GNUNET_NAMESTORE_record_put_by_authority (namestore_handle,
-                                           alice_key,
-                                           TEST_RECORD_NAME_DNS,
-                                           1, &rd,
-                                           NULL,
-                                           NULL);
-
-  GNUNET_assert(1 == inet_pton (AF_INET, TEST_IP_ZKEY, &web));
-  rd.data_size = sizeof(struct in_addr);
-  rd.data = &web;
-  rd.record_type = GNUNET_DNSPARSER_TYPE_A;
-  
-  GNUNET_NAMESTORE_record_put_by_authority (namestore_handle,
-                                           bob_key,
-                                           TEST_RECORD_NAME_PLUS,
-                                           1, &rd,
-                                           &commence_testing,
-                                           NULL);
-  GNUNET_free(alice_key);
-  GNUNET_free(bob_key);
-}
-
-
-int
-main (int argc, char *argv[])
-{
-  ok = 1;
-
-  GNUNET_log_setup ("test-gns-simple-cname-lookup",
-                    "WARNING",
-                    NULL);
-  GNUNET_TESTING_peer_run ("test-gns-simple-cname-lookup", 
"test_gns_simple_lookup.conf", &do_check, NULL);
-  return ok;
-}
-
-/* end of test_gns_cname_lookup.c */

Added: gnunet/src/gns/test_gns_ns_lookup.sh
===================================================================
--- gnunet/src/gns/test_gns_ns_lookup.sh                                (rev 0)
+++ gnunet/src/gns/test_gns_ns_lookup.sh        2013-09-27 15:01:56 UTC (rev 
29657)
@@ -0,0 +1,47 @@
+#!/bin/bash
+trap "gnunet-arm -e -c test_gns_lookup.conf" SIGINT
+rm -r `gnunet-config -c test_gns_lookup.conf -s PATHS -o SERVICEHOME`
+TEST_DOMAIN="www.homepage.gnu"
+TEST_DOMAIN_ALT="homepage.gnu"
+TEST_DOMAIN_ALT2="uk.homepage.gnu"
+TEST_IP_ALT2="81.187.252.184"
+TEST_IP="131.159.74.67"
+TEST_IP_NS="184.172.157.218"
+TEST_RECORD_NAME="homepage"
+TEST_RECORD_NS="gnunet.org"
+gnunet-arm -s -c test_gns_lookup.conf
+gnunet-identity -C testego -c test_gns_lookup.conf
+gnunet-namestore -p -z testego -a -n $TEST_RECORD_NAME -t A -V $TEST_IP_NS -e 
never -c test_gns_lookup.conf
+gnunet-namestore -p -z testego -a -n $TEST_RECORD_NAME -t NS -V 
$TEST_RECORD_NS -e never -c test_gns_lookup.conf
+RES_IP=$(timeout 5 gnunet-gns --raw -z testego -u $TEST_DOMAIN -t A -c 
test_gns_lookup.conf)
+RES_IP_ALT=$(timeout 5 gnunet-gns --raw -z testego -u $TEST_DOMAIN_ALT -t A -c 
test_gns_lookup.conf)
+RES_IP_ALT2=$(timeout 5 gnunet-gns --raw -z testego -u $TEST_DOMAIN_ALT2 -t A 
-c test_gns_lookup.conf)
+gnunet-namestore -z testego -d -n www -t A -V $TEST_IP -e never -c 
test_gns_lookup.conf
+gnunet-namestore -z testego -d -n $TEST_RECORD_NAME -t NS -V $TEST_RECORD_NS 
-e never -c test_gns_lookup.conf
+gnunet-identity -D testego -c test_gns_lookup.conf
+gnunet-arm -e -c test_gns_lookup.conf
+
+if [ "$RES_IP" == "$TEST_IP" ]
+then
+  echo "PASS: Resolved $TEST_DOMAIN to $RES_IP."
+else
+  echo "Failed to resolve to proper IP for $TEST_DOMAIN, got $RES_IP."
+  exit 1
+fi
+
+if [ "$RES_IP_ALT" == "$TEST_IP" ]
+then
+  echo "PASS: Resolved $TEST_DOMAIN_ALT to $RES_IP_ALT."
+else
+  echo "Failed to resolve to proper IP for $TEST_DOMAIN_ALT, got $RES_IP_ALT."
+  exit 1
+fi
+
+if [ "$RES_IP_ALT2" == "$TEST_IP_ALT2" ]
+then
+  echo "PASS: Resolved $TEST_DOMAIN_ALT2 to $RES_IP_ALT2."
+  exit 0
+else
+  echo "Failed to resolve to proper IP for $TEST_DOMAIN_ALT2, got 
$RES_IP_ALT2."
+  exit 1
+fi


Property changes on: gnunet/src/gns/test_gns_ns_lookup.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Deleted: gnunet/src/gns/test_gns_simple_lookup.c
===================================================================
--- gnunet/src/gns/test_gns_simple_lookup.c     2013-09-27 12:04:37 UTC (rev 
29656)
+++ gnunet/src/gns/test_gns_simple_lookup.c     2013-09-27 15:01:56 UTC (rev 
29657)
@@ -1,286 +0,0 @@
-/*
-     This file is part of GNUnet.
-     (C) 2012 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 gns/test_gns_simple_lookup.c
- * @brief base testcase for testing a local GNS record lookup
- * @author Martin Schanzenbach
- */
-#include "platform.h"
-#include "gnunet_testing_lib.h"
-#include "gnunet_core_service.h"
-#include "block_dns.h"
-#include "gnunet_signatures.h"
-#include "gnunet_namestore_service.h"
-#include "gnunet_dnsparser_lib.h"
-#include "gnunet_gns_service.h"
-
-
-/**
- * Timeout for entire testcase 
- */
-#define TIMEOUT GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_SECONDS, 120)
-
-/* test records to resolve */
-#define TEST_DOMAIN "www.gnu"
-#define TEST_IP "127.0.0.1"
-#define TEST_RECORD_NAME "www"
-
-/**
- * Task handle to use to schedule test failure 
- */
-static GNUNET_SCHEDULER_TaskIdentifier die_task;
-
-/**
- * Global return value (0 for success, anything else for failure) 
- */
-static int ok;
-
-static struct GNUNET_NAMESTORE_Handle *namestore_handle;
-
-static struct GNUNET_GNS_Handle *gns_handle;
-
-static const struct GNUNET_CONFIGURATION_Handle *cfg;
-
-static struct GNUNET_GNS_LookupRequest *lr;
-
-static struct GNUNET_NAMESTORE_QueueEntry *nsqe;
-
-
-/**
- * Check if the get_handle is being used, if so stop the request.  Either
- * way, schedule the end_badly_cont function which actually shuts down the
- * test.
- */
-static void
-end_badly (void *cls, 
-          const struct GNUNET_SCHEDULER_TaskContext *tc)
-{
-  if (NULL != nsqe)
-  {
-    GNUNET_NAMESTORE_cancel (nsqe);
-    nsqe = NULL;
-  }
-  if (NULL != lr)
-  {
-    GNUNET_GNS_cancel_lookup_request (lr);
-    lr = NULL;
-  }
-  if (NULL != gns_handle)
-  {
-    GNUNET_GNS_disconnect (gns_handle);
-    gns_handle = NULL;
-  }
-
-  if (NULL != namestore_handle)
-  {
-    GNUNET_NAMESTORE_disconnect (namestore_handle);
-    namestore_handle = NULL;
-  }
-  GNUNET_break (0);
-  GNUNET_SCHEDULER_shutdown ();
-  ok = 1;
-}
-
-
-static void 
-end_badly_now ()
-{
-  GNUNET_SCHEDULER_cancel (die_task);
-  die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL);
-}
-
-
-static void 
-shutdown_task (void *cls,
-              const struct GNUNET_SCHEDULER_TaskContext *tc)
-{
-  GNUNET_GNS_disconnect (gns_handle);
-  GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Shutting down peer!\n");
-  GNUNET_SCHEDULER_shutdown ();
-}
-
-
-/**
- * Function called on result for a GNS lookup
- *
- * @param cls closure, unused
- * @param rd_count number of records
- * @param rd the records in reply
- */
-static void
-on_lookup_result(void *cls, uint32_t rd_count,
-                 const struct GNUNET_NAMESTORE_RecordData *rd)
-{
-  struct in_addr a;
-  uint32_t i;
-  char* addr;
-
-  lr = NULL;
-  if (GNUNET_SCHEDULER_NO_TASK != die_task)
-  {
-      GNUNET_SCHEDULER_cancel (die_task);
-      die_task = GNUNET_SCHEDULER_NO_TASK;
-  }
-  GNUNET_NAMESTORE_disconnect (namestore_handle);
-  namestore_handle = NULL;
-  if (rd_count == 0)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Lookup failed, rp_filtering?\n");
-    ok = 2;
-  }
-  else
-  {
-    ok = 1;
-    GNUNET_log (GNUNET_ERROR_TYPE_INFO, "name: %s\n", (char*)cls);
-    for (i=0; i<rd_count; i++)
-    {
-      GNUNET_log (GNUNET_ERROR_TYPE_INFO, "type: %d\n", rd[i].record_type);
-      if (rd[i].record_type == GNUNET_DNSPARSER_TYPE_A)
-      {
-        memcpy (&a, rd[i].data, sizeof(a));
-        addr = inet_ntoa(a);
-        GNUNET_log (GNUNET_ERROR_TYPE_INFO, "address: %s\n", addr);
-        if (0 == strcmp (addr, TEST_IP))
-        {
-          GNUNET_log (GNUNET_ERROR_TYPE_INFO,
-                     "%s correctly resolved to %s!\n",
-                     TEST_DOMAIN, addr);
-          ok = 0;
-        }
-      }
-      else
-      {
-        GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                   "No resolution!\n");
-      }
-    }
-  }
-  GNUNET_SCHEDULER_add_now (&shutdown_task, NULL);
-}
-
-
-/**
- * Function scheduled to be run on the successful start of services
- * tries to look up the dns record for TEST_DOMAIN
- *
- * @param cls closure
- * @param success GNUNET_SYSERR on failure (including timeout/queue 
drop/failure to validate)
- *                GNUNET_NO if content was already there or not found
- *                GNUNET_YES (or other positive value) on success
- * @param emsg NULL on success, otherwise an error message
- */
-static void
-commence_testing (void *cls,
-                 int32_t success,
-                 const char *emsg)
-{
-  nsqe = NULL;
-  if (NULL != emsg)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Failed to store record in namestore: %s\n",
-               emsg);
-    end_badly_now ();
-    return;
-  }
-  gns_handle = GNUNET_GNS_connect (cfg);
-  if (NULL == gns_handle)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Failed to connect to GNS!\n");
-    end_badly_now ();
-    return;
-  }
-  lr = GNUNET_GNS_lookup (gns_handle, TEST_DOMAIN, GNUNET_DNSPARSER_TYPE_A,
-                         GNUNET_YES,
-                         NULL,
-                         &on_lookup_result, TEST_DOMAIN);
-}
-
-
-static void
-do_check (void *cls,
-          const struct GNUNET_CONFIGURATION_Handle *ccfg,
-          struct GNUNET_TESTING_Peer *peer)
-{
-  struct GNUNET_CRYPTO_EccPublicSignKey alice_pkey;
-  struct GNUNET_CRYPTO_EccPrivateKey *alice_key;
-  struct GNUNET_NAMESTORE_RecordData rd;
-  char* alice_keyfile;
-  char* ip = TEST_IP;
-  struct in_addr web;
-
-  cfg = ccfg;
-  die_task = GNUNET_SCHEDULER_add_delayed (TIMEOUT, &end_badly, NULL);
-
-  /* put records into namestore */
-  namestore_handle = GNUNET_NAMESTORE_connect(cfg);
-  if (NULL == namestore_handle)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR, 
-               "Failed to connect to namestore\n");
-    end_badly_now ();
-    return;
-  }
-  if (GNUNET_OK != 
-      GNUNET_CONFIGURATION_get_value_filename (cfg, "gns",
-                                              "ZONEKEY",
-                                              &alice_keyfile))
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR, 
-               "Failed to get key from cfg\n");
-    end_badly_now ();
-    return;
-  }
-
-  alice_key = GNUNET_CRYPTO_ecc_key_create_from_file (alice_keyfile);
-  GNUNET_CRYPTO_ecc_key_get_public_for_signature (alice_key, &alice_pkey);
-  GNUNET_free (alice_keyfile);
-  rd.expiration_time = UINT64_MAX;
-  GNUNET_assert (1 == inet_pton (AF_INET, ip, &web));
-  rd.data_size = sizeof(struct in_addr);
-  rd.data = &web;
-  rd.record_type = GNUNET_DNSPARSER_TYPE_A;
-  rd.flags = GNUNET_NAMESTORE_RF_NONE;
-  nsqe = GNUNET_NAMESTORE_record_put_by_authority (namestore_handle,
-                                                  alice_key,
-                                                  TEST_RECORD_NAME,
-                                                  1, &rd,
-                                                  &commence_testing,
-                                                  NULL);
-  GNUNET_free (alice_key);
-}
-
-
-int
-main (int argc, char *argv[])
-{
-  ok = 1;
-  GNUNET_log_setup ("test-gns-simple-lookup",
-                    "WARNING",
-                    NULL);
-  GNUNET_TESTING_peer_run ("test-gns-simple-lookup", 
-                          "test_gns_simple_lookup.conf", 
-                          &do_check, NULL);
-  return ok;
-}
- 
-/* end of test_gns_simple_lookup.c */

Deleted: gnunet/src/gns/test_gns_simple_mx_lookup.c
===================================================================
--- gnunet/src/gns/test_gns_simple_mx_lookup.c  2013-09-27 12:04:37 UTC (rev 
29656)
+++ gnunet/src/gns/test_gns_simple_mx_lookup.c  2013-09-27 15:01:56 UTC (rev 
29657)
@@ -1,301 +0,0 @@
-/*
-     This file is part of GNUnet.
-     (C) 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 gns/test_gns_simple_mx_lookup.c
- * @brief base testcase for testing GNS MX lookups
- *
- */
-#include "platform.h"
-#include "gnunet_testing_lib.h"
-#include "gnunet_core_service.h"
-#include "block_dns.h"
-#include "gnunet_signatures.h"
-#include "gnunet_namestore_service.h"
-#include "../namestore/namestore.h"
-#include "gnunet_dnsparser_lib.h"
-#include "gnunet_gns_service.h"
-
-/* Timeout for entire testcase */
-#define TIMEOUT GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_SECONDS, 20)
-
-/* test records to resolve */
-#define TEST_DOMAIN "bob.gnu"
-#define TEST_IP "127.0.0.1"
-#define TEST_RECORD_NAME "mail"
-#define TEST_MX_NAME "mail.+"
-#define TEST_EXPECTED_MX "mail.bob.gnu"
-
-#define TEST_AUTHORITY_NAME "bob"
-
-#define KEYFILE_BOB 
"../namestore/zonefiles/HGU0A0VCU334DN7F2I9UIUMVQMM7JMSD142LIMNUGTTV9R0CF4EG.zkey"
-
-/* Task handle to use to schedule test failure */
-static GNUNET_SCHEDULER_TaskIdentifier die_task;
-
-/* Global return value (0 for success, anything else for failure) */
-static int ok;
-
-static struct GNUNET_NAMESTORE_Handle *namestore_handle;
-
-static struct GNUNET_GNS_Handle *gns_handle;
-
-static const struct GNUNET_CONFIGURATION_Handle *cfg;
-
-
-/**
- * Check if the get_handle is being used, if so stop the request.  Either
- * way, schedule the end_badly_cont function which actually shuts down the
- * test.
- */
-static void
-end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
-{
-  die_task = GNUNET_SCHEDULER_NO_TASK;
-  if (NULL != gns_handle)
-  {
-    GNUNET_GNS_disconnect(gns_handle);
-    gns_handle = NULL;
-  }
-
-  if (NULL != namestore_handle)
-  {
-    GNUNET_NAMESTORE_disconnect (namestore_handle);
-    namestore_handle = NULL;
-  }
-  GNUNET_break (0);
-  GNUNET_SCHEDULER_shutdown ();
-  ok = 1;
-}
-
-
-static void
-end_badly_now ()
-{
-  GNUNET_SCHEDULER_cancel (die_task);
-  die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL);
-}
-
-
-static void 
-shutdown_task (void *cls,
-              const struct GNUNET_SCHEDULER_TaskContext *tc)
-{
-  GNUNET_GNS_disconnect(gns_handle);
-  GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Shutting down peer!\n");
-  GNUNET_SCHEDULER_shutdown ();
-}
-
-
-static void
-on_lookup_result(void *cls, uint32_t rd_count,
-                 const struct GNUNET_NAMESTORE_RecordData *rd)
-{
-  int i;
-  uint16_t mx_preference;
-  char* mx;
-  
-  if (GNUNET_SCHEDULER_NO_TASK != die_task)
-  {
-      GNUNET_SCHEDULER_cancel (die_task);
-      die_task = GNUNET_SCHEDULER_NO_TASK;
-  }
-
-  GNUNET_NAMESTORE_disconnect (namestore_handle);
-  if (rd_count == 0)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Lookup failed, rp_filtering?\n");
-    ok = 2;
-  }
-  else
-  {
-    ok = 1;
-    GNUNET_log (GNUNET_ERROR_TYPE_INFO, "name: %s\n", (char*)cls);
-    for (i=0; i<rd_count; i++)
-    {
-      GNUNET_log (GNUNET_ERROR_TYPE_INFO, "type: %d\n", rd[i].record_type);
-      if (rd[i].record_type == GNUNET_DNSPARSER_TYPE_MX)
-      {
-        mx = (char*)rd[i].data+sizeof(uint16_t);
-        mx_preference = *(uint16_t*)rd[i].data;
-        GNUNET_log (GNUNET_ERROR_TYPE_INFO,
-                    "Got MX %s with preference %d\n", mx, mx_preference);
-        if (0 == strcmp(mx, TEST_EXPECTED_MX))
-        {
-          GNUNET_log (GNUNET_ERROR_TYPE_INFO,
-                      "%s correctly resolved to %s!\n", TEST_DOMAIN,
-                      TEST_EXPECTED_MX);
-          ok = 0;
-        }
-      }
-    }
-  }
-  
-  GNUNET_SCHEDULER_add_now (&shutdown_task, NULL);
-
-}
-
-
-/**
- * Function scheduled to be run on the successful start of services
- * tries to look up the dns record for TEST_DOMAIN
- */
-static void
-commence_testing (void *cls, int32_t success, const char *emsg)
-{
-  gns_handle = GNUNET_GNS_connect(cfg);
-  if (NULL == gns_handle)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Failed to connect to GNS!\n");
-    end_badly_now();
-    return;
-  }
-  GNUNET_GNS_lookup(gns_handle, TEST_DOMAIN, GNUNET_DNSPARSER_TYPE_MX,
-                    GNUNET_NO,
-                    NULL,
-                    &on_lookup_result, TEST_DOMAIN);
-}
-
-
-static void
-do_check (void *cls,
-          const struct GNUNET_CONFIGURATION_Handle *ccfg,
-          struct GNUNET_TESTING_Peer *peer)
-{
-  struct GNUNET_CRYPTO_EccPublicSignKey alice_pkey;
-  struct GNUNET_CRYPTO_EccPublicSignKey bob_pkey;
-  struct GNUNET_CRYPTO_EccPrivateKey *alice_key;
-  struct GNUNET_CRYPTO_EccPrivateKey *bob_key;
-  struct GNUNET_CRYPTO_ShortHashCode bob_hash;
-  struct GNUNET_CRYPTO_EccSignature *sig;
-  char* alice_keyfile;
-  struct GNUNET_TIME_Absolute et;
-
-  cfg = ccfg;
-  die_task = GNUNET_SCHEDULER_add_delayed (TIMEOUT, &end_badly, NULL);
-
-  /* put records into namestore */
-  namestore_handle = GNUNET_NAMESTORE_connect(cfg);
-  if (NULL == namestore_handle)
-  {
-    GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "Failed to connect to namestore\n");
-    end_badly_now();
-    return;
-  }
-
-  if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_filename (cfg, "gns",
-                                                          "ZONEKEY",
-                                                          &alice_keyfile))
-  {
-    GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "Failed to get key from cfg\n");
-    end_badly_now();
-    return;
-  }
-
-  alice_key = GNUNET_CRYPTO_ecc_key_create_from_file (alice_keyfile);
-  bob_key = GNUNET_CRYPTO_ecc_key_create_from_file (KEYFILE_BOB);
-
-  GNUNET_CRYPTO_ecc_key_get_public_for_signature (alice_key, &alice_pkey);
-  GNUNET_CRYPTO_ecc_key_get_public_for_signature (bob_key, &bob_pkey);
-
-  struct GNUNET_NAMESTORE_RecordData rd;
-  char* ip = TEST_IP;
-  struct in_addr *mail = GNUNET_malloc(sizeof(struct in_addr));
-  char *mx_record;
-  uint16_t mx_preference = 1;
-  rd.expiration_time = UINT64_MAX;
-  GNUNET_assert(1 == inet_pton (AF_INET, ip, mail));
-  
-  GNUNET_CRYPTO_short_hash(&bob_pkey, sizeof(bob_pkey), &bob_hash);
-
-  rd.data_size = sizeof(struct GNUNET_CRYPTO_ShortHashCode);
-  rd.data = &bob_hash;
-  rd.record_type = GNUNET_NAMESTORE_TYPE_PKEY;
-  rd.flags = GNUNET_NAMESTORE_RF_NONE;
-
-  GNUNET_NAMESTORE_record_put_by_authority (namestore_handle,
-                                           alice_key,
-                                           TEST_AUTHORITY_NAME,
-                                           1, &rd,
-                                           NULL,
-                                           NULL);
-
-  rd.data_size = sizeof(struct in_addr);
-  rd.data = mail;
-  rd.record_type = GNUNET_DNSPARSER_TYPE_A;
-  sig = GNUNET_NAMESTORE_create_signature(bob_key,
-                                          GNUNET_TIME_UNIT_FOREVER_ABS,
-                                          TEST_RECORD_NAME,
-                                          &rd, 1);
-  et.abs_value_us = rd.expiration_time;
-  GNUNET_NAMESTORE_record_put (namestore_handle,
-                               &bob_pkey,
-                               TEST_RECORD_NAME,
-                               et,
-                               1,
-                               &rd,
-                               sig,
-                               NULL,
-                               NULL);
-  GNUNET_free (sig);
-  
-  rd.data_size = sizeof(struct 
GNUNET_DNSPARSER_MxRecord)+strlen(TEST_MX_NAME)+1;
-  mx_record = GNUNET_malloc(sizeof(struct 
GNUNET_DNSPARSER_MxRecord)+strlen(TEST_MX_NAME)+1);
-  memcpy(mx_record, &mx_preference, sizeof(uint16_t));
-  strcpy(mx_record+sizeof(uint16_t), TEST_MX_NAME);
-  rd.data = mx_record;
-  rd.record_type = GNUNET_DNSPARSER_TYPE_MX;
-  sig = GNUNET_NAMESTORE_create_signature(bob_key,
-                                          GNUNET_TIME_UNIT_FOREVER_ABS,
-                                          GNUNET_GNS_MASTERZONE_STR,
-                                          &rd, 1);
-  et.abs_value_us = rd.expiration_time;
-  GNUNET_NAMESTORE_record_put (namestore_handle,
-                               &bob_pkey,
-                               GNUNET_GNS_MASTERZONE_STR,
-                               et,
-                               1,
-                               &rd,
-                               sig,
-                               &commence_testing,
-                               NULL);
-
-  GNUNET_free (alice_keyfile);
-  GNUNET_free (mx_record);
-  GNUNET_free (mail);
-  GNUNET_free (sig);
-  GNUNET_free (bob_key);
-  GNUNET_free (alice_key);
-}
-
-
-int
-main (int argc, char *argv[])
-{
-  ok = 1;
-  GNUNET_log_setup ("test-gns-simple-mx-lookup",
-                    "WARNING",
-                    NULL);
-  GNUNET_TESTING_peer_run ("test-gns-simple-mx-lookup", 
"test_gns_simple_lookup.conf", &do_check, NULL);
-  return ok;
-}
-
-/* end of test_gns_simple_mx_lookup.c */




reply via email to

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