osmux: Use osmo_gettimeofday for testing puroposes
This way we can use fake time and osmux_test take 700ms instead of >2sec to run. Change-Id: Ic39cab74400aca8262a00c0d06884230b1a15ca3
This commit is contained in:
parent
e98afe5808
commit
3460ad7f31
|
@ -777,7 +777,7 @@ static void osmux_tx_cb(void *data)
|
|||
#ifdef DEBUG_TIMING
|
||||
struct timeval now, diff;
|
||||
|
||||
gettimeofday(&now, NULL);
|
||||
osmo_gettimeofday(&now, NULL);
|
||||
timersub(&now, &h->start, &diff);
|
||||
timersub(&diff,&h->when, &diff);
|
||||
LOGP(DLMIB, LOGL_DEBUG, "we are lagging %lu.%.6lu in scheduled "
|
||||
|
@ -806,7 +806,7 @@ osmux_tx(struct msgb *msg, struct timeval *when,
|
|||
h->timer.data = h;
|
||||
|
||||
#ifdef DEBUG_TIMING
|
||||
gettimeofday(&h->start, NULL);
|
||||
osmo_gettimeofday(&h->start, NULL);
|
||||
h->when.tv_sec = when->tv_sec;
|
||||
h->when.tv_usec = when->tv_usec;
|
||||
#endif
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#include <osmocom/core/logging.h>
|
||||
#include <osmocom/core/msgb.h>
|
||||
#include <osmocom/core/linuxlist.h>
|
||||
#include <osmocom/core/timer.h>
|
||||
#include <osmocom/netif/osmux.h>
|
||||
#include <osmocom/netif/rtp.h>
|
||||
|
||||
|
@ -54,6 +55,8 @@ static uint8_t rtp_pkt[] = {
|
|||
0xf2, 0x26, 0x33, 0x65, 0x54,
|
||||
};
|
||||
|
||||
#define PKT_TIME_USEC 20*1000
|
||||
|
||||
static int rtp_pkts;
|
||||
static int mark_pkts;
|
||||
#if OSMUX_TEST_USE_TIMING
|
||||
|
@ -67,7 +70,7 @@ static void tx_cb(struct msgb *msg, void *data)
|
|||
#if OSMUX_TEST_USE_TIMING
|
||||
struct timeval now, diff;
|
||||
|
||||
gettimeofday(&now, NULL);
|
||||
osmo_gettimeofday(&now, NULL);
|
||||
timersub(&now, &last, &diff);
|
||||
last = now;
|
||||
|
||||
|
@ -159,10 +162,17 @@ static void osmux_test_marker(int ccid) {
|
|||
osmux_xfrm_input_deliver(&h_input);
|
||||
}
|
||||
}
|
||||
#if !OSMUX_TEST_USE_TIMING
|
||||
osmo_gettimeofday_override_add(0, PKT_TIME_USEC);
|
||||
#endif
|
||||
}
|
||||
|
||||
while (rtp_pkts)
|
||||
while (rtp_pkts) {
|
||||
#if !OSMUX_TEST_USE_TIMING
|
||||
osmo_gettimeofday_override_add(1, 0);
|
||||
#endif
|
||||
osmo_select_main(0);
|
||||
}
|
||||
|
||||
if (mark_pkts) {
|
||||
fprintf(stdout, "RTP M bit (marker) mismatch! %d\n", mark_pkts);
|
||||
|
@ -204,7 +214,7 @@ static void osmux_test_loop(int ccid)
|
|||
|
||||
if (i % 4 == 0) {
|
||||
#if OSMUX_TEST_USE_TIMING
|
||||
gettimeofday(&last, NULL);
|
||||
osmo_gettimeofday(&last, NULL);
|
||||
#endif
|
||||
|
||||
/* After four RTP messages, squash them into the OSMUX
|
||||
|
@ -217,8 +227,12 @@ static void osmux_test_loop(int ccid)
|
|||
* messages that are extracted from OSMUX has been
|
||||
* delivered.
|
||||
*/
|
||||
for (j = 0; j < k-2; j++)
|
||||
for (j = 0; j < k-2; j++) {
|
||||
osmo_select_main(0);
|
||||
#if !OSMUX_TEST_USE_TIMING
|
||||
osmo_gettimeofday_override_add(0, PKT_TIME_USEC);
|
||||
#endif
|
||||
}
|
||||
|
||||
k = 0;
|
||||
}
|
||||
|
@ -239,6 +253,12 @@ int main(void)
|
|||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
#if !OSMUX_TEST_USE_TIMING
|
||||
/* This test uses fake time to speedup the run, unless we want to manually
|
||||
* test time specific stuff */
|
||||
osmo_gettimeofday_override = true;
|
||||
#endif
|
||||
|
||||
/* This test doesn't use it, but osmux requires it internally. */
|
||||
osmo_init_logging(&osmux_test_log_info);
|
||||
log_set_log_level(osmo_stderr_target, LOGL_DEBUG);
|
||||
|
|
Loading…
Reference in New Issue