- implementented string to address
[oweals/gnunet.git] / src / block / test_block.c
index bdb806e5bf2ccb62812425f71f022047bb061d51..e57b891ad34110ad00f78848846a41b97edc6d07 100644 (file)
 #include "platform.h"
 #include "gnunet_block_lib.h"
 
-#define DEBUG GNUNET_NO
+#define DEBUG GNUNET_EXTRA_LOGGING
 
 #define VERBOSE GNUNET_NO
 
+static int
+test_fs (struct GNUNET_BLOCK_Context *ctx)
+{
+  GNUNET_HashCode key;
+  char block[4];
+
+  memset (block, 1, sizeof (block));
+  if (GNUNET_OK !=
+      GNUNET_BLOCK_get_key (ctx, GNUNET_BLOCK_TYPE_FS_DBLOCK, block,
+                            sizeof (block), &key))
+    return 1;
+  if (GNUNET_BLOCK_EVALUATION_OK_LAST !=
+      GNUNET_BLOCK_evaluate (ctx, GNUNET_BLOCK_TYPE_FS_DBLOCK, &key, NULL, 0,
+                             NULL, 0, block, sizeof (block)))
+    return 2;
+  if (GNUNET_BLOCK_EVALUATION_REQUEST_VALID !=
+      GNUNET_BLOCK_evaluate (ctx, GNUNET_BLOCK_TYPE_FS_DBLOCK, &key, NULL, 0,
+                             NULL, 0, NULL, 0))
+    return 4;
+  GNUNET_log_skip (1, GNUNET_NO);
+  if (GNUNET_BLOCK_EVALUATION_REQUEST_INVALID !=
+      GNUNET_BLOCK_evaluate (ctx, GNUNET_BLOCK_TYPE_FS_DBLOCK, &key, NULL, 0,
+                             "bogus", 5, NULL, 0))
+    return 8;
+  GNUNET_log_skip (0, GNUNET_YES);
+  return 0;
+}
+
 int
 main (int argc, char *argv[])
 {
-  return 0;                     /* testcase passed */
+  int ret;
+  struct GNUNET_BLOCK_Context *ctx;
+  struct GNUNET_CONFIGURATION_Handle *cfg;
+
+  GNUNET_log_setup ("test-block", "WARNING", NULL);
+  cfg = GNUNET_CONFIGURATION_create ();
+  GNUNET_CONFIGURATION_set_value_string (cfg, "block", "PLUGINS", "fs");
+  ctx = GNUNET_BLOCK_context_create (cfg);
+  ret = test_fs (ctx);
+  GNUNET_BLOCK_context_destroy (ctx);
+  GNUNET_CONFIGURATION_destroy (cfg);
+  if (ret != 0)
+    FPRINTF (stderr, "Tests failed: %d\n", ret);
+  return ret;
 }