service_new: ready_confirm_fd
[oweals/gnunet.git] / src / util / test_strings_to_data.c
index d98cd8578294ba41c5b077e9c57b6bd389957dd9..bd594aac04a7b7eea3c281f13011de24b3e689dc 100644 (file)
@@ -1,6 +1,6 @@
 /*
      This file is part of GNUnet.
-     (C) 2009 Christian Grothoff (and other contributing authors)
+     Copyright (C) 2009 GNUnet e.V.
 
      GNUnet is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
 
      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.
+     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+     Boston, MA 02110-1301, USA.
 */
 /**
  * @file util/test_strings_to_data.c
  * @brief testcase for strings.c
  */
 #include "platform.h"
-#include "gnunet_common.h"
-#include "gnunet_crypto_lib.h"
-#include "gnunet_strings_lib.h"
+#include "gnunet_util_lib.h"
 
 
 int
 main (int argc, char *argv[])
 {
-       GNUNET_log_setup ("util", "DEBUG", NULL);
-       char *conv;
-       char buf[255];
-       char *end;
-       struct GNUNET_CRYPTO_EccPublicKeyBinaryEncoded src;
-       struct GNUNET_CRYPTO_EccPublicKeyBinaryEncoded dest;
-
-       memset (&src, '\1', sizeof (src));
-       memset (&dest, '\2', sizeof (dest));
-
-       end = GNUNET_STRINGS_data_to_string (&src, sizeof (src), buf, sizeof (buf));
-       end[0] = '\0';
-       fprintf (stderr, "Key `%s'\n",buf);
-       GNUNET_assert (GNUNET_OK == GNUNET_CRYPTO_ecc_public_key_from_string (buf, strlen (buf), &dest));
-
-       conv = GNUNET_CRYPTO_ecc_public_key_to_string (&src);
-       GNUNET_assert (NULL != conv);
-       fprintf (stderr, "Key `%s'\n",conv);
-
-
-  GNUNET_assert (GNUNET_OK == GNUNET_STRINGS_string_to_data (conv, strlen (conv), (unsigned char *) &dest, sizeof (dest)));
-  GNUNET_assert (0 == memcmp (&src, &dest, sizeof (dest)));
-
-       return 0;
+  char buf[1024];
+  char *end;
+  char src[128];
+  char dst[128];
+  unsigned int i;
+  int ret = 0;
+
+  GNUNET_log_setup ("util", "DEBUG", NULL);
+  for (i=0;i<sizeof(src);i++)
+  {
+    memset (src, i, sizeof (src));
+    memset (dst, i+1, sizeof (dst));
+
+    end = GNUNET_STRINGS_data_to_string (&src, i, buf, sizeof (buf));
+    GNUNET_assert (NULL != end);
+    end[0] = '\0';
+    if (GNUNET_OK !=
+       GNUNET_STRINGS_string_to_data (buf, strlen (buf), dst, i))
+    {
+      fprintf (stderr, "%u failed decode (%u bytes)\n", i, (unsigned int) strlen (buf));
+      ret = 1;
+    } else if (0 != memcmp (src, dst, i))
+    {
+      fprintf (stderr, "%u wrong decode (%u bytes)\n", i, (unsigned int) strlen (buf));
+      ret = 1;
+    }
+  }
+  return ret;
 }