summaryrefslogtreecommitdiff
path: root/src/datastore/perf_datastore_api.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2010-08-07 16:55:16 +0000
committerChristian Grothoff <christian@grothoff.org>2010-08-07 16:55:16 +0000
commitb9de10a83f130b2c0a4513a1f713d778fbb4ecc1 (patch)
tree0dcfa912e2eea217d494ba56f1373e2c0cbb7e26 /src/datastore/perf_datastore_api.c
parentd4115af6385dcab2433b27796e777819e297dae7 (diff)
downloadgnunet-b9de10a83f130b2c0a4513a1f713d778fbb4ecc1.tar.gz
gnunet-b9de10a83f130b2c0a4513a1f713d778fbb4ecc1.zip
do not fail if datastore unavailable
Diffstat (limited to 'src/datastore/perf_datastore_api.c')
-rw-r--r--src/datastore/perf_datastore_api.c41
1 files changed, 37 insertions, 4 deletions
diff --git a/src/datastore/perf_datastore_api.c b/src/datastore/perf_datastore_api.c
index 61724e964..741878309 100644
--- a/src/datastore/perf_datastore_api.c
+++ b/src/datastore/perf_datastore_api.c
@@ -314,6 +314,29 @@ run_continuation (void *cls,
314} 314}
315 315
316 316
317
318static void
319run_tests (void *cls,
320 int success,
321 const char *msg)
322{
323 struct CpsRunContext *crc = cls;
324
325 if (success != GNUNET_YES)
326 {
327 fprintf (stderr,
328 "Test 'put' operation failed with error `%s' database likely not setup, skipping test.",
329 msg);
330 GNUNET_free (crc);
331 return;
332 }
333 GNUNET_SCHEDULER_add_continuation (crc->sched,
334 &run_continuation,
335 crc,
336 GNUNET_SCHEDULER_REASON_PREREQ_DONE);
337}
338
339
317static void 340static void
318run (void *cls, 341run (void *cls,
319 struct GNUNET_SCHEDULER_Handle *sched, 342 struct GNUNET_SCHEDULER_Handle *sched,
@@ -322,6 +345,7 @@ run (void *cls,
322 const struct GNUNET_CONFIGURATION_Handle *cfg) 345 const struct GNUNET_CONFIGURATION_Handle *cfg)
323{ 346{
324 struct CpsRunContext *crc; 347 struct CpsRunContext *crc;
348 static GNUNET_HashCode zkey;
325 349
326 datastore = GNUNET_DATASTORE_connect (cfg, sched); 350 datastore = GNUNET_DATASTORE_connect (cfg, sched);
327 start_time = GNUNET_TIME_absolute_get (); 351 start_time = GNUNET_TIME_absolute_get ();
@@ -329,10 +353,19 @@ run (void *cls,
329 crc->sched = sched; 353 crc->sched = sched;
330 crc->cfg = cfg; 354 crc->cfg = cfg;
331 crc->phase = RP_PUT; 355 crc->phase = RP_PUT;
332 GNUNET_SCHEDULER_add_continuation (crc->sched, 356 if (NULL ==
333 &run_continuation, 357 GNUNET_DATASTORE_put (datastore, 0,
334 crc, 358 &zkey, 4, "TEST",
335 GNUNET_SCHEDULER_REASON_PREREQ_DONE); 359 GNUNET_BLOCK_TYPE_TEST,
360 0, 0, GNUNET_TIME_relative_to_absolute (GNUNET_TIME_UNIT_SECONDS),
361 0, 1, GNUNET_TIME_UNIT_MINUTES,
362 &run_tests, crc))
363 {
364 fprintf (stderr,
365 "Test 'put' operation failed.\n");
366 ok = 1;
367 GNUNET_free (crc);
368 }
336} 369}
337 370
338 371