fixing segv
[oweals/gnunet.git] / src / block / test_block.c
index bdb806e5bf2ccb62812425f71f022047bb061d51..bb9a1f01b87c236a3c33be7130e234e535a61b15 100644 (file)
 
 #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;
 }