diff options
author | Christian Grothoff <christian@grothoff.org> | 2010-08-07 16:55:16 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2010-08-07 16:55:16 +0000 |
commit | b9de10a83f130b2c0a4513a1f713d778fbb4ecc1 (patch) | |
tree | 0dcfa912e2eea217d494ba56f1373e2c0cbb7e26 /src/datastore/perf_datastore_api.c | |
parent | d4115af6385dcab2433b27796e777819e297dae7 (diff) | |
download | gnunet-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.c | 41 |
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 | |||
318 | static void | ||
319 | run_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 | |||
317 | static void | 340 | static void |
318 | run (void *cls, | 341 | run (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 | ||