#define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 25)
-static int ok = 1;
+#define LOG(kind,...) \
+ GNUNET_log (kind, __VA_ARGS__)
+
+#define LOG_DEBUG(...) \
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, __VA_ARGS__)
static const struct GNUNET_CONFIGURATION_Handle *cfg;
*/
static const char *phone0 = "phone";
+
#define CALLER1 &caller1
#define CALLER2 &caller2
#define PHONE0 &phone0
#define CLS_STR(caller) (*((char **)caller))
+
+/**
+ * Did caller1 call finish successfully
+ */
+static int call1_finished;
+
+/**
+ * Did caller2 call finish successfully
+ */
+static int call2_finished;
+
struct MicContext
{
GNUNET_MICROPHONE_RecordedDataCallback rdc;
GNUNET_SCHEDULER_TaskIdentifier call_task;
- char sym;
};
static struct MicContext call1_mic_ctx;
GNUNET_assert (NULL != phone_rdc);
GNUNET_snprintf (buf, sizeof (buf), "phone");
phone_rdc (phone_rdc_cls, strlen (buf) + 1, buf);
- fprintf (stderr, "+");
phone_task = GNUNET_SCHEDULER_add_delayed (FREQ,
&phone_send, NULL);
}
GNUNET_assert (NULL != mc->rdc);
GNUNET_snprintf (buf, sizeof (buf), "call");
mc->rdc (mc->rdc_cls, strlen (buf) + 1, buf);
- fprintf (stderr, "%c", mc->sym);
mc->call_task = GNUNET_SCHEDULER_add_delayed (FREQ,
&call_send, mc);
}
{
const char *origin = CLS_STR (cls);
- fprintf (stderr,
- "Speaker %s enabled\n",
- origin);
+ LOG_DEBUG ("Speaker %s enabled\n",
+ origin);
return GNUNET_OK;
}
{
const char *origin = CLS_STR (cls);
- fprintf (stderr,
- "Speaker %s disabled\n",
- origin);
+ LOG_DEBUG ("Speaker %s disabled\n",
+ origin);
}
static unsigned int phone_i;
static unsigned int call_i;
- write (2, data, data_size);
if (0 == strncmp ("call", data, data_size))
call_i++;
else if (0 == strncmp ("phone", data, data_size))
phone_i++;
else
{
- fprintf (stderr,
- "Received unexpected data %.*s\n",
- (int) data_size,
- (const char *) data);
+ LOG_DEBUG ("Received unexpected data %.*s\n",
+ (int) data_size,
+ (const char *) data);
}
if ( (20 < call_i) &&
/* reset counters */
call_i = 0;
phone_i = 0;
+ call2_finished = GNUNET_YES;
}
if ( (20 < call_i) &&
(20 < phone_i) &&
call1 = NULL;
call_i = 0;
phone_i = 0;
+ call1_finished = GNUNET_YES;
}
}
{
const char *origin = CLS_STR (cls);
- fprintf (stderr, "Speaker %s destroyed\n", origin);
+ LOG_DEBUG ("Speaker %s destroyed\n", origin);
}
const char *origin = CLS_STR (cls);
struct MicContext *mc;
- fprintf (stderr,
- "Mic %s enabled\n",
- origin);
+ LOG_DEBUG ("Mic %s enabled\n",
+ origin);
if (PHONE0 == cls)
{
phone_rdc = rdc;
return GNUNET_OK;
}
mc = (CALLER1 == cls) ? &call1_mic_ctx : &call2_mic_ctx;
- mc->sym = (CALLER1 == cls) ? '1': '2';
mc->rdc = rdc;
mc->rdc_cls = rdc_cls;
GNUNET_break (GNUNET_SCHEDULER_NO_TASK == mc->call_task);
const char *origin = CLS_STR (cls);
struct MicContext *mc;
- fprintf (stderr,
- "Mic %s disabled\n",
- origin);
+ LOG_DEBUG ("Mic %s disabled\n",
+ origin);
if (PHONE0 == cls)
{
phone_rdc = NULL;
{
const char *origin = CLS_STR (cls);
- fprintf (stderr,
- "Mic %s destroyed\n",
- origin);
+ LOG_DEBUG ("Mic %s destroyed\n",
+ origin);
}
{
case GNUNET_CONVERSATION_EC_CALLER_SUSPEND:
case GNUNET_CONVERSATION_EC_CALLER_RESUME:
- fprintf (stderr, "Unexpected caller code: %d\n", code);
+ LOG (GNUNET_ERROR_TYPE_WARNING, "Unexpected caller code: %d\n", code);
break;
}
}
{
active_caller1 = NULL;
GNUNET_break (NULL == active_caller2);
- ok = 0;
GNUNET_SCHEDULER_shutdown ();
}
break;
default:
- fprintf (stderr, "Unexpected phone code: %d\n", code);
+ LOG (GNUNET_ERROR_TYPE_WARNING, "Unexpected phone code: %d\n", code);
break;
}
}
case GNUNET_CONVERSATION_EC_CALL_RINGING:
break;
case GNUNET_CONVERSATION_EC_CALL_PICKED_UP:
- fprintf (stderr, "\t Call %s picked\n", cid);
+ LOG_DEBUG ("Call %s picked\n", cid);
break;
case GNUNET_CONVERSATION_EC_CALL_GNS_FAIL:
- fprintf (stderr, "\t Call %s GNS lookup failed \n", cid);
+ LOG_DEBUG ("Call %s GNS lookup failed \n", cid);
case GNUNET_CONVERSATION_EC_CALL_HUNG_UP:
- fprintf (stderr, "\t Call %s hungup\n", cid);
+ LOG_DEBUG ("Call %s hungup\n", cid);
if (0 == strcmp (cid, "call1"))
call1 = NULL;
else
call2 = NULL;
break;
case GNUNET_CONVERSATION_EC_CALL_SUSPENDED:
- fprintf (stderr, "\t Call %s suspended\n", cid);
+ LOG_DEBUG ("Call %s suspended\n", cid);
break;
case GNUNET_CONVERSATION_EC_CALL_RESUMED:
- fprintf (stderr, "\t Call %s resumed\n", cid);
+ LOG_DEBUG ("Call %s resumed\n", cid);
break;
}
}
int
main (int argc, char *argv[])
{
+
if (0 != GNUNET_TESTING_peer_run ("test_conversation_api_twocalls",
"test_conversation.conf",
&run, NULL))
return 1;
- return ok;
+ if (call1_finished && call2_finished)
+ return 0;
+ return 1;
}
/* end of test_conversation_api_twocalls.c */