diff options
author | Gabor X Toth <*@tg-x.net> | 2014-07-24 09:30:18 +0000 |
---|---|---|
committer | Gabor X Toth <*@tg-x.net> | 2014-07-24 09:30:18 +0000 |
commit | ed695105d53300157340dbb801a570c63f4c7862 (patch) | |
tree | cd7b72726f740f81b01075b9796679a9524d29ff /src/psyc | |
parent | b618f1ebf6121fd8652c44a43b70724d883b73e4 (diff) | |
download | gnunet-ed695105d53300157340dbb801a570c63f4c7862.tar.gz gnunet-ed695105d53300157340dbb801a570c63f4c7862.zip |
psyc: fix timing-related test failure
Diffstat (limited to 'src/psyc')
-rw-r--r-- | src/psyc/test_psyc.c | 92 |
1 files changed, 56 insertions, 36 deletions
diff --git a/src/psyc/test_psyc.c b/src/psyc/test_psyc.c index 2f6c8f628..da69f40b1 100644 --- a/src/psyc/test_psyc.c +++ b/src/psyc/test_psyc.c | |||
@@ -41,23 +41,23 @@ | |||
41 | /** | 41 | /** |
42 | * Return value from 'main'. | 42 | * Return value from 'main'. |
43 | */ | 43 | */ |
44 | static int res; | 44 | int res; |
45 | 45 | ||
46 | static const struct GNUNET_CONFIGURATION_Handle *cfg; | 46 | const struct GNUNET_CONFIGURATION_Handle *cfg; |
47 | 47 | ||
48 | /** | 48 | /** |
49 | * Handle for task for timeout termination. | 49 | * Handle for task for timeout termination. |
50 | */ | 50 | */ |
51 | static GNUNET_SCHEDULER_TaskIdentifier end_badly_task; | 51 | GNUNET_SCHEDULER_TaskIdentifier end_badly_task; |
52 | 52 | ||
53 | static struct GNUNET_PSYC_Master *mst; | 53 | struct GNUNET_PSYC_Master *mst; |
54 | static struct GNUNET_PSYC_Slave *slv; | 54 | struct GNUNET_PSYC_Slave *slv; |
55 | 55 | ||
56 | static struct GNUNET_CRYPTO_EddsaPrivateKey *channel_key; | 56 | struct GNUNET_CRYPTO_EddsaPrivateKey *channel_key; |
57 | static struct GNUNET_CRYPTO_EcdsaPrivateKey *slave_key; | 57 | struct GNUNET_CRYPTO_EcdsaPrivateKey *slave_key; |
58 | 58 | ||
59 | static struct GNUNET_CRYPTO_EddsaPublicKey channel_pub_key; | 59 | struct GNUNET_CRYPTO_EddsaPublicKey channel_pub_key; |
60 | static struct GNUNET_CRYPTO_EcdsaPublicKey slave_pub_key; | 60 | struct GNUNET_CRYPTO_EcdsaPublicKey slave_pub_key; |
61 | 61 | ||
62 | struct TransmitClosure | 62 | struct TransmitClosure |
63 | { | 63 | { |
@@ -76,7 +76,7 @@ struct TransmitClosure | |||
76 | 76 | ||
77 | struct TransmitClosure *tmit; | 77 | struct TransmitClosure *tmit; |
78 | 78 | ||
79 | static uint8_t join_req_count; | 79 | uint8_t join_req_count; |
80 | 80 | ||
81 | enum | 81 | enum |
82 | { | 82 | { |
@@ -86,7 +86,7 @@ enum | |||
86 | } test; | 86 | } test; |
87 | 87 | ||
88 | 88 | ||
89 | static void | 89 | void |
90 | master_transmit (); | 90 | master_transmit (); |
91 | 91 | ||
92 | 92 | ||
@@ -115,7 +115,7 @@ void slave_parted (void *cls) | |||
115 | /** | 115 | /** |
116 | * Clean up all resources used. | 116 | * Clean up all resources used. |
117 | */ | 117 | */ |
118 | static void | 118 | void |
119 | cleanup () | 119 | cleanup () |
120 | { | 120 | { |
121 | if (NULL != slv) | 121 | if (NULL != slv) |
@@ -134,7 +134,7 @@ cleanup () | |||
134 | * @param cls NULL | 134 | * @param cls NULL |
135 | * @param tc scheduler context | 135 | * @param tc scheduler context |
136 | */ | 136 | */ |
137 | static void | 137 | void |
138 | end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | 138 | end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) |
139 | { | 139 | { |
140 | res = 1; | 140 | res = 1; |
@@ -149,7 +149,7 @@ end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | |||
149 | * @param cls NULL | 149 | * @param cls NULL |
150 | * @param tc scheduler context | 150 | * @param tc scheduler context |
151 | */ | 151 | */ |
152 | static void | 152 | void |
153 | end_normally (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | 153 | end_normally (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) |
154 | { | 154 | { |
155 | res = 0; | 155 | res = 0; |
@@ -161,7 +161,7 @@ end_normally (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | |||
161 | /** | 161 | /** |
162 | * Finish the test case (successfully). | 162 | * Finish the test case (successfully). |
163 | */ | 163 | */ |
164 | static void | 164 | void |
165 | end () | 165 | end () |
166 | { | 166 | { |
167 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Ending tests.\n"); | 167 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Ending tests.\n"); |
@@ -176,7 +176,7 @@ end () | |||
176 | } | 176 | } |
177 | 177 | ||
178 | 178 | ||
179 | static void | 179 | void |
180 | master_message_cb (void *cls, uint64_t message_id, uint32_t flags, | 180 | master_message_cb (void *cls, uint64_t message_id, uint32_t flags, |
181 | const struct GNUNET_PSYC_MessageHeader *msg) | 181 | const struct GNUNET_PSYC_MessageHeader *msg) |
182 | { | 182 | { |
@@ -188,7 +188,7 @@ master_message_cb (void *cls, uint64_t message_id, uint32_t flags, | |||
188 | } | 188 | } |
189 | 189 | ||
190 | 190 | ||
191 | static void | 191 | void |
192 | master_message_part_cb (void *cls, uint64_t message_id, | 192 | master_message_part_cb (void *cls, uint64_t message_id, |
193 | uint64_t data_offset, uint32_t flags, | 193 | uint64_t data_offset, uint32_t flags, |
194 | const struct GNUNET_MessageHeader *msg) | 194 | const struct GNUNET_MessageHeader *msg) |
@@ -233,7 +233,7 @@ master_message_part_cb (void *cls, uint64_t message_id, | |||
233 | } | 233 | } |
234 | 234 | ||
235 | 235 | ||
236 | static void | 236 | void |
237 | slave_message_cb (void *cls, uint64_t message_id, uint32_t flags, | 237 | slave_message_cb (void *cls, uint64_t message_id, uint32_t flags, |
238 | const struct GNUNET_PSYC_MessageHeader *msg) | 238 | const struct GNUNET_PSYC_MessageHeader *msg) |
239 | { | 239 | { |
@@ -245,7 +245,7 @@ slave_message_cb (void *cls, uint64_t message_id, uint32_t flags, | |||
245 | } | 245 | } |
246 | 246 | ||
247 | 247 | ||
248 | static void | 248 | void |
249 | slave_message_part_cb (void *cls, uint64_t message_id, | 249 | slave_message_part_cb (void *cls, uint64_t message_id, |
250 | uint64_t data_offset, uint32_t flags, | 250 | uint64_t data_offset, uint32_t flags, |
251 | const struct GNUNET_MessageHeader *msg) | 251 | const struct GNUNET_MessageHeader *msg) |
@@ -278,7 +278,7 @@ slave_message_part_cb (void *cls, uint64_t message_id, | |||
278 | } | 278 | } |
279 | 279 | ||
280 | 280 | ||
281 | static void | 281 | void |
282 | transmit_resume (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | 282 | transmit_resume (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) |
283 | { | 283 | { |
284 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Transmission resumed.\n"); | 284 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Transmission resumed.\n"); |
@@ -290,7 +290,7 @@ transmit_resume (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | |||
290 | } | 290 | } |
291 | 291 | ||
292 | 292 | ||
293 | static int | 293 | int |
294 | tmit_notify_data (void *cls, uint16_t *data_size, void *data) | 294 | tmit_notify_data (void *cls, uint16_t *data_size, void *data) |
295 | { | 295 | { |
296 | struct TransmitClosure *tmit = cls; | 296 | struct TransmitClosure *tmit = cls; |
@@ -332,7 +332,7 @@ tmit_notify_data (void *cls, uint16_t *data_size, void *data) | |||
332 | } | 332 | } |
333 | 333 | ||
334 | 334 | ||
335 | static int | 335 | int |
336 | tmit_notify_mod (void *cls, uint16_t *data_size, void *data, uint8_t *oper, | 336 | tmit_notify_mod (void *cls, uint16_t *data_size, void *data, uint8_t *oper, |
337 | uint32_t *full_value_size) | 337 | uint32_t *full_value_size) |
338 | { | 338 | { |
@@ -408,11 +408,11 @@ tmit_notify_mod (void *cls, uint16_t *data_size, void *data, uint8_t *oper, | |||
408 | } | 408 | } |
409 | 409 | ||
410 | 410 | ||
411 | static void | 411 | void |
412 | slave_join (); | 412 | slave_join (); |
413 | 413 | ||
414 | 414 | ||
415 | static void | 415 | void |
416 | join_decision_cb (void *cls, | 416 | join_decision_cb (void *cls, |
417 | const struct GNUNET_PSYC_JoinDecisionMessage *dcsn, | 417 | const struct GNUNET_PSYC_JoinDecisionMessage *dcsn, |
418 | int is_admitted, | 418 | int is_admitted, |
@@ -449,7 +449,7 @@ join_decision_cb (void *cls, | |||
449 | } | 449 | } |
450 | 450 | ||
451 | 451 | ||
452 | static void | 452 | void |
453 | join_request_cb (void *cls, | 453 | join_request_cb (void *cls, |
454 | const struct GNUNET_PSYC_JoinRequestMessage *req, | 454 | const struct GNUNET_PSYC_JoinRequestMessage *req, |
455 | const struct GNUNET_CRYPTO_EcdsaPublicKey *slave_key, | 455 | const struct GNUNET_CRYPTO_EcdsaPublicKey *slave_key, |
@@ -468,7 +468,7 @@ join_request_cb (void *cls, | |||
468 | } | 468 | } |
469 | 469 | ||
470 | 470 | ||
471 | static void | 471 | void |
472 | slave_connect_cb (void *cls, uint64_t max_message_id) | 472 | slave_connect_cb (void *cls, uint64_t max_message_id) |
473 | { | 473 | { |
474 | GNUNET_log (GNUNET_ERROR_TYPE_WARNING, | 474 | GNUNET_log (GNUNET_ERROR_TYPE_WARNING, |
@@ -476,12 +476,12 @@ slave_connect_cb (void *cls, uint64_t max_message_id) | |||
476 | } | 476 | } |
477 | 477 | ||
478 | 478 | ||
479 | static void | 479 | void |
480 | slave_join () | 480 | slave_join () |
481 | { | 481 | { |
482 | GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Joining slave.\n"); | 482 | GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Joining slave.\n"); |
483 | 483 | ||
484 | struct GNUNET_PeerIdentity origin; // FIXME: this peer | 484 | struct GNUNET_PeerIdentity origin = {}; // FIXME: this peer |
485 | struct GNUNET_ENV_Environment *env = GNUNET_ENV_environment_create (); | 485 | struct GNUNET_ENV_Environment *env = GNUNET_ENV_environment_create (); |
486 | GNUNET_ENV_environment_add (env, GNUNET_ENV_OP_ASSIGN, | 486 | GNUNET_ENV_environment_add (env, GNUNET_ENV_OP_ASSIGN, |
487 | "_foo", "bar baz", 7); | 487 | "_foo", "bar baz", 7); |
@@ -498,7 +498,7 @@ slave_join () | |||
498 | } | 498 | } |
499 | 499 | ||
500 | 500 | ||
501 | static void | 501 | void |
502 | master_transmit () | 502 | master_transmit () |
503 | { | 503 | { |
504 | GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Master sending message to all.\n"); | 504 | GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Master sending message to all.\n"); |
@@ -550,7 +550,7 @@ master_transmit () | |||
550 | } | 550 | } |
551 | 551 | ||
552 | 552 | ||
553 | static void | 553 | void |
554 | master_start_cb (void *cls, uint64_t max_message_id) | 554 | master_start_cb (void *cls, uint64_t max_message_id) |
555 | { | 555 | { |
556 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 556 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
@@ -559,6 +559,23 @@ master_start_cb (void *cls, uint64_t max_message_id) | |||
559 | } | 559 | } |
560 | 560 | ||
561 | 561 | ||
562 | void | ||
563 | master_start () | ||
564 | { | ||
565 | GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Starting master.\n"); | ||
566 | mst = GNUNET_PSYC_master_start (cfg, channel_key, GNUNET_PSYC_CHANNEL_PRIVATE, | ||
567 | &master_start_cb, &join_request_cb, | ||
568 | &master_message_cb, &master_message_part_cb, | ||
569 | NULL); | ||
570 | } | ||
571 | |||
572 | void | ||
573 | schedule_master_start (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | ||
574 | { | ||
575 | master_start (); | ||
576 | } | ||
577 | |||
578 | |||
562 | /** | 579 | /** |
563 | * Main function of the test, run from scheduler. | 580 | * Main function of the test, run from scheduler. |
564 | * | 581 | * |
@@ -566,7 +583,7 @@ master_start_cb (void *cls, uint64_t max_message_id) | |||
566 | * @param cfg configuration we use (also to connect to PSYC service) | 583 | * @param cfg configuration we use (also to connect to PSYC service) |
567 | * @param peer handle to access more of the peer (not used) | 584 | * @param peer handle to access more of the peer (not used) |
568 | */ | 585 | */ |
569 | static void | 586 | void |
570 | #if DEBUG_TEST_PSYC | 587 | #if DEBUG_TEST_PSYC |
571 | run (void *cls, char *const *args, const char *cfgfile, | 588 | run (void *cls, char *const *args, const char *cfgfile, |
572 | const struct GNUNET_CONFIGURATION_Handle *c) | 589 | const struct GNUNET_CONFIGURATION_Handle *c) |
@@ -585,11 +602,14 @@ run (void *cls, | |||
585 | GNUNET_CRYPTO_eddsa_key_get_public (channel_key, &channel_pub_key); | 602 | GNUNET_CRYPTO_eddsa_key_get_public (channel_key, &channel_pub_key); |
586 | GNUNET_CRYPTO_ecdsa_key_get_public (slave_key, &slave_pub_key); | 603 | GNUNET_CRYPTO_ecdsa_key_get_public (slave_key, &slave_pub_key); |
587 | 604 | ||
588 | GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Starting master.\n"); | 605 | #if DEBUG_TEST_PSYC |
589 | mst = GNUNET_PSYC_master_start (cfg, channel_key, GNUNET_PSYC_CHANNEL_PRIVATE, | 606 | master_start (); |
590 | &master_start_cb, &join_request_cb, | 607 | #else |
591 | &master_message_cb, &master_message_part_cb, | 608 | /* Allow some time for the services to initialize. */ |
592 | NULL); | 609 | GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, |
610 | &schedule_master_start, NULL); | ||
611 | #endif | ||
612 | return; | ||
593 | } | 613 | } |
594 | 614 | ||
595 | 615 | ||