[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r37391 - gnunet/src/conversation
From: |
gnunet |
Subject: |
[GNUnet-SVN] r37391 - gnunet/src/conversation |
Date: |
Mon, 27 Jun 2016 15:48:21 +0200 |
Author: grothoff
Date: 2016-06-27 15:48:21 +0200 (Mon, 27 Jun 2016)
New Revision: 37391
Modified:
gnunet/src/conversation/conversation_api_call.c
gnunet/src/conversation/test_conversation_api.c
gnunet/src/conversation/test_conversation_api_twocalls.c
Log:
handle failures more gracefully in test
Modified: gnunet/src/conversation/conversation_api_call.c
===================================================================
--- gnunet/src/conversation/conversation_api_call.c 2016-06-27 12:37:45 UTC
(rev 37390)
+++ gnunet/src/conversation/conversation_api_call.c 2016-06-27 13:48:21 UTC
(rev 37391)
@@ -154,7 +154,7 @@
* @param call call to reconnect
*/
static void
-reconnect_call (struct GNUNET_CONVERSATION_Call *call);
+fail_call (struct GNUNET_CONVERSATION_Call *call);
/**
@@ -198,11 +198,11 @@
{
case CS_LOOKUP:
GNUNET_break (0);
- reconnect_call (call);
+ fail_call (call);
break;
case CS_RINGING:
GNUNET_break_op (0);
- reconnect_call (call);
+ fail_call (call);
break;
case CS_SUSPENDED_CALLER:
call->state = CS_SUSPENDED_BOTH;
@@ -243,11 +243,11 @@
{
case CS_LOOKUP:
GNUNET_break (0);
- reconnect_call (call);
+ fail_call (call);
break;
case CS_RINGING:
GNUNET_break_op (0);
- reconnect_call (call);
+ fail_call (call);
break;
case CS_SUSPENDED_CALLER:
GNUNET_break_op (0);
@@ -292,7 +292,7 @@
{
case CS_LOOKUP:
GNUNET_break (0);
- reconnect_call (call);
+ fail_call (call);
break;
case CS_RINGING:
call->state = CS_ACTIVE;
@@ -308,7 +308,7 @@
case CS_SUSPENDED_BOTH:
case CS_ACTIVE:
GNUNET_break (0);
- reconnect_call (call);
+ fail_call (call);
break;
case CS_SHUTDOWN:
GNUNET_CONVERSATION_call_stop (call);
@@ -335,7 +335,7 @@
{
case CS_LOOKUP:
GNUNET_break (0);
- reconnect_call (call);
+ fail_call (call);
break;
case CS_RINGING:
case CS_SUSPENDED_CALLER:
@@ -386,11 +386,11 @@
{
case CS_LOOKUP:
GNUNET_break (0);
- reconnect_call (call);
+ fail_call (call);
break;
case CS_RINGING:
GNUNET_break (0);
- reconnect_call (call);
+ fail_call (call);
break;
case CS_SUSPENDED_CALLER:
/* can happen: we suspended, other peer did not yet
@@ -482,17 +482,17 @@
}
GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
_("Connection to conversation service lost, trying to
reconnect\n"));
- reconnect_call (call);
+ fail_call (call);
}
/**
- * The call got disconnected, reconnect to the service.
+ * The call got disconnected, destroy the handle.
*
* @param call call to reconnect
*/
static void
-reconnect_call (struct GNUNET_CONVERSATION_Call *call)
+fail_call (struct GNUNET_CONVERSATION_Call *call)
{
if (CS_ACTIVE == call->state)
{
Modified: gnunet/src/conversation/test_conversation_api.c
===================================================================
--- gnunet/src/conversation/test_conversation_api.c 2016-06-27 12:37:45 UTC
(rev 37390)
+++ gnunet/src/conversation/test_conversation_api.c 2016-06-27 13:48:21 UTC
(rev 37391)
@@ -67,9 +67,9 @@
static void *call_rdc_cls;
-static struct GNUNET_SCHEDULER_Task * phone_task;
+static struct GNUNET_SCHEDULER_Task *phone_task;
-static struct GNUNET_SCHEDULER_Task * call_task;
+static struct GNUNET_SCHEDULER_Task *call_task;
static void
@@ -347,11 +347,14 @@
case GNUNET_CONVERSATION_EC_PHONE_HUNG_UP:
GNUNET_break (caller == active_caller);
active_caller = NULL;
- ok = 0;
+ if (1 == ok)
+ ok = 0;
GNUNET_SCHEDULER_shutdown ();
break;
default:
- fprintf (stderr, "Unexpected phone code: %d\n", code);
+ fprintf (stderr,
+ "Unexpected phone code: %d\n",
+ code);
break;
}
}
@@ -376,12 +379,21 @@
case GNUNET_CONVERSATION_EC_CALL_GNS_FAIL:
case GNUNET_CONVERSATION_EC_CALL_HUNG_UP:
call = NULL;
+ ok = 2;
+ GNUNET_break (0);
fprintf (stderr, "Unexpected call code: %d\n", code);
break;
case GNUNET_CONVERSATION_EC_CALL_SUSPENDED:
case GNUNET_CONVERSATION_EC_CALL_RESUMED:
+ GNUNET_break (0);
+ fprintf (stderr, "Unexpected call code: %d\n", code);
+ ok = 2;
+ break;
case GNUNET_CONVERSATION_EC_CALL_ERROR:
+ GNUNET_break (0);
fprintf (stderr, "Unexpected call code: %d\n", code);
+ call = NULL;
+ ok = 2;
break;
}
}
Modified: gnunet/src/conversation/test_conversation_api_twocalls.c
===================================================================
--- gnunet/src/conversation/test_conversation_api_twocalls.c 2016-06-27
12:37:45 UTC (rev 37390)
+++ gnunet/src/conversation/test_conversation_api_twocalls.c 2016-06-27
13:48:21 UTC (rev 37391)
@@ -73,8 +73,10 @@
static void *phone_rdc_cls;
-static struct GNUNET_SCHEDULER_Task * phone_task;
+static struct GNUNET_SCHEDULER_Task *phone_task;
+static struct GNUNET_SCHEDULER_Task *timeout_task;
+
/**
* Variable for recognizing caller1
*/
@@ -338,7 +340,7 @@
/**
- * Signature of the main function of a task.
+ * Function run on timeout.
*
* @param cls closure
*/
@@ -345,7 +347,26 @@
static void
end_test (void *cls)
{
+ timeout_task = NULL;
+ fprintf (stderr,
+ "Timeout!\n");
GNUNET_SCHEDULER_shutdown ();
+}
+
+
+/**
+ * Function run on shutdown.
+ *
+ * @param cls closure
+ */
+static void
+do_shutdown (void *cls)
+{
+ if (NULL != timeout_task)
+ {
+ GNUNET_SCHEDULER_cancel (timeout_task);
+ timeout_task = NULL;
+ }
if (NULL != op)
{
GNUNET_IDENTITY_cancel (op);
@@ -485,6 +506,11 @@
break;
case GNUNET_CONVERSATION_EC_CALL_ERROR:
GNUNET_break (0);
+ if (0 == strcmp (cid, "call1"))
+ call1 = NULL;
+ else
+ call2 = NULL;
+ GNUNET_SCHEDULER_shutdown ();
break;
}
}
@@ -592,8 +618,11 @@
struct GNUNET_TESTING_Peer *peer)
{
cfg = c;
- GNUNET_SCHEDULER_add_delayed (TIMEOUT, &end_test,
- NULL);
+ timeout_task = GNUNET_SCHEDULER_add_delayed (TIMEOUT,
+ &end_test,
+ NULL);
+ GNUNET_SCHEDULER_add_shutdown (&do_shutdown,
+ NULL);
id = GNUNET_IDENTITY_connect (cfg,
&identity_cb,
NULL);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r37391 - gnunet/src/conversation,
gnunet <=