summaryrefslogtreecommitdiff
path: root/pjsip/src/test-pjsip/transport_loop_test.c
diff options
context:
space:
mode:
Diffstat (limited to 'pjsip/src/test-pjsip/transport_loop_test.c')
-rw-r--r--pjsip/src/test-pjsip/transport_loop_test.c29
1 files changed, 24 insertions, 5 deletions
diff --git a/pjsip/src/test-pjsip/transport_loop_test.c b/pjsip/src/test-pjsip/transport_loop_test.c
index 351fb7b6..3e378832 100644
--- a/pjsip/src/test-pjsip/transport_loop_test.c
+++ b/pjsip/src/test-pjsip/transport_loop_test.c
@@ -25,10 +25,13 @@
static int datagram_loop_test()
{
+ enum { LOOP = 8 };
pjsip_transport *loop;
int i, pkt_lost;
pj_sockaddr_in addr;
pj_status_t status;
+ long ref_cnt;
+ unsigned rtt[LOOP], min_rtt;
PJ_LOG(3,(THIS_FILE, "testing datagram loop transport"));
@@ -40,19 +43,33 @@ static int datagram_loop_test()
return -20;
}
+ /* Get initial reference counter */
+ ref_cnt = pj_atomic_get(loop->ref_cnt);
+
/* Test basic transport attributes */
status = generic_transport_test(loop);
if (status != PJ_SUCCESS)
return status;
/* Basic transport's send/receive loopback test. */
- for (i=0; i<2; ++i) {
+ for (i=0; i<LOOP; ++i) {
status = transport_send_recv_test(PJSIP_TRANSPORT_LOOP_DGRAM, loop,
- "sip:bob@130.0.0.1;transport=loop-dgram");
+ "sip:bob@130.0.0.1;transport=loop-dgram",
+ &rtt[i]);
if (status != 0)
return status;
}
+ min_rtt = 0xFFFFFFF;
+ for (i=0; i<LOOP; ++i)
+ if (rtt[i] < min_rtt) min_rtt = rtt[i];
+
+ report_ival("loop-rtt-usec", min_rtt, "usec",
+ "Best Loopback transport round trip time, in microseconds "
+ "(time from sending request until response is received. "
+ "Tests were performed on local machine only)");
+
+
/* Multi-threaded round-trip test. */
status = transport_rt_test(PJSIP_TRANSPORT_LOOP_DGRAM, loop,
"sip:bob@130.0.0.1;transport=loop-dgram",
@@ -84,9 +101,11 @@ static int datagram_loop_test()
/* Restore delay. */
pjsip_loop_set_delay(loop, 0);
- /* Check that reference counter is one. */
- if (pj_atomic_get(loop->ref_cnt) != 1) {
- return -50;
+ /* Check reference counter. */
+ if (pj_atomic_get(loop->ref_cnt) != ref_cnt) {
+ PJ_LOG(3,(THIS_FILE, " error: ref counter is not %d (%d)",
+ ref_cnt, pj_atomic_get(loop->ref_cnt)));
+ return -51;
}
/* Decrement reference. */