mirror of https://github.com/sipwise/rtpengine.git
parent
c2a410d7e9
commit
6e3bb70a90
@ -0,0 +1,289 @@
|
||||
#include "codeclib.h"
|
||||
#include <assert.h>
|
||||
|
||||
static unsigned int num_freed;
|
||||
|
||||
static void ffunc(void *a) {
|
||||
num_freed++;
|
||||
}
|
||||
|
||||
int main(void) {
|
||||
packet_sequencer_t ps = {0};
|
||||
packet_sequencer_init(&ps, ffunc);
|
||||
|
||||
void *p;
|
||||
int i;
|
||||
|
||||
p = packet_sequencer_next_packet(&ps);
|
||||
assert(p == NULL);
|
||||
|
||||
p = packet_sequencer_force_next_packet(&ps);
|
||||
assert(p == NULL);
|
||||
|
||||
i = packet_sequencer_next_ok(&ps);
|
||||
assert(!i);
|
||||
|
||||
assert(num_freed == 0);
|
||||
|
||||
seq_packet_t pks[256];
|
||||
|
||||
pks[0].seq = 100;
|
||||
i = packet_sequencer_insert(&ps, &pks[0]);
|
||||
assert(i == 0);
|
||||
assert(num_freed == 0);
|
||||
|
||||
i = packet_sequencer_next_ok(&ps);
|
||||
assert(i);
|
||||
|
||||
p = packet_sequencer_next_packet(&ps);
|
||||
assert(p == &pks[0]);
|
||||
assert(num_freed == 0);
|
||||
|
||||
|
||||
pks[0].seq = 101;
|
||||
pks[1].seq = 102;
|
||||
|
||||
i = packet_sequencer_insert(&ps, &pks[0]);
|
||||
assert(i == 0);
|
||||
assert(num_freed == 0);
|
||||
|
||||
i = packet_sequencer_next_ok(&ps);
|
||||
assert(i);
|
||||
|
||||
i = packet_sequencer_insert(&ps, &pks[1]);
|
||||
assert(i == 2);
|
||||
assert(num_freed == 0);
|
||||
|
||||
i = packet_sequencer_next_ok(&ps);
|
||||
assert(i);
|
||||
|
||||
p = packet_sequencer_next_packet(&ps);
|
||||
assert(p == &pks[0]);
|
||||
assert(num_freed == 0);
|
||||
|
||||
p = packet_sequencer_next_packet(&ps);
|
||||
assert(p == &pks[1]);
|
||||
assert(num_freed == 0);
|
||||
|
||||
p = packet_sequencer_next_packet(&ps);
|
||||
assert(p == NULL);
|
||||
|
||||
|
||||
pks[0].seq = 103;
|
||||
pks[1].seq = 104;
|
||||
|
||||
i = packet_sequencer_insert(&ps, &pks[1]);
|
||||
assert(i == 0);
|
||||
assert(num_freed == 0);
|
||||
|
||||
i = packet_sequencer_next_ok(&ps);
|
||||
assert(!i);
|
||||
|
||||
p = packet_sequencer_next_packet(&ps);
|
||||
assert(p == NULL);
|
||||
|
||||
i = packet_sequencer_insert(&ps, &pks[0]);
|
||||
assert(i == 2);
|
||||
assert(num_freed == 0);
|
||||
|
||||
i = packet_sequencer_next_ok(&ps);
|
||||
assert(i);
|
||||
|
||||
p = packet_sequencer_next_packet(&ps);
|
||||
assert(p == &pks[0]);
|
||||
assert(num_freed == 0);
|
||||
|
||||
p = packet_sequencer_next_packet(&ps);
|
||||
assert(p == &pks[1]);
|
||||
assert(num_freed == 0);
|
||||
|
||||
p = packet_sequencer_next_packet(&ps);
|
||||
assert(p == NULL);
|
||||
|
||||
i = packet_sequencer_insert(&ps, &pks[0]);
|
||||
assert(i == -1);
|
||||
assert(num_freed == 0);
|
||||
|
||||
i = packet_sequencer_next_ok(&ps);
|
||||
assert(!i);
|
||||
|
||||
i = packet_sequencer_insert(&ps, &pks[1]);
|
||||
assert(i == -1);
|
||||
assert(num_freed == 0);
|
||||
|
||||
i = packet_sequencer_next_ok(&ps);
|
||||
assert(!i);
|
||||
|
||||
p = packet_sequencer_next_packet(&ps);
|
||||
assert(p == NULL);
|
||||
|
||||
|
||||
pks[0].seq = 106;
|
||||
pks[1].seq = 107;
|
||||
|
||||
i = packet_sequencer_insert(&ps, &pks[1]);
|
||||
assert(i == 0);
|
||||
assert(num_freed == 0);
|
||||
|
||||
i = packet_sequencer_next_ok(&ps);
|
||||
assert(!i);
|
||||
|
||||
p = packet_sequencer_next_packet(&ps);
|
||||
assert(p == NULL);
|
||||
|
||||
i = packet_sequencer_insert(&ps, &pks[0]);
|
||||
assert(i == 2);
|
||||
assert(num_freed == 0);
|
||||
|
||||
i = packet_sequencer_next_ok(&ps);
|
||||
assert(!i);
|
||||
|
||||
p = packet_sequencer_next_packet(&ps);
|
||||
assert(p == NULL);
|
||||
assert(num_freed == 0);
|
||||
|
||||
p = packet_sequencer_force_next_packet(&ps);
|
||||
assert(p == &pks[0]);
|
||||
assert(num_freed == 0);
|
||||
|
||||
p = packet_sequencer_next_packet(&ps);
|
||||
assert(p == &pks[1]);
|
||||
assert(num_freed == 0);
|
||||
|
||||
|
||||
|
||||
pks[0].seq = 110;
|
||||
pks[1].seq = 111;
|
||||
|
||||
i = packet_sequencer_insert(&ps, &pks[1]);
|
||||
assert(i == 0);
|
||||
assert(num_freed == 0);
|
||||
|
||||
i = packet_sequencer_next_ok(&ps);
|
||||
assert(!i);
|
||||
|
||||
p = packet_sequencer_next_packet(&ps);
|
||||
assert(p == NULL);
|
||||
|
||||
i = packet_sequencer_insert(&ps, &pks[0]);
|
||||
assert(i == 2);
|
||||
assert(num_freed == 0);
|
||||
|
||||
i = packet_sequencer_next_ok(&ps);
|
||||
assert(!i);
|
||||
|
||||
p = packet_sequencer_next_packet(&ps);
|
||||
assert(p == NULL);
|
||||
assert(num_freed == 0);
|
||||
|
||||
pks[2].seq = 112;
|
||||
pks[3].seq = 113;
|
||||
pks[4].seq = 114;
|
||||
pks[5].seq = 115;
|
||||
pks[6].seq = 116;
|
||||
pks[7].seq = 117;
|
||||
pks[8].seq = 118;
|
||||
pks[9].seq = 119;
|
||||
|
||||
i = packet_sequencer_insert(&ps, &pks[2]);
|
||||
assert(i == 2);
|
||||
assert(num_freed == 0);
|
||||
i = packet_sequencer_insert(&ps, &pks[3]);
|
||||
assert(i == 2);
|
||||
assert(num_freed == 0);
|
||||
i = packet_sequencer_insert(&ps, &pks[7]);
|
||||
assert(i == 2);
|
||||
assert(num_freed == 0);
|
||||
i = packet_sequencer_insert(&ps, &pks[8]);
|
||||
assert(i == 2);
|
||||
assert(num_freed == 0);
|
||||
i = packet_sequencer_insert(&ps, &pks[9]);
|
||||
assert(i == 2);
|
||||
assert(num_freed == 0);
|
||||
i = packet_sequencer_insert(&ps, &pks[4]);
|
||||
assert(i == 2);
|
||||
assert(num_freed == 0);
|
||||
|
||||
i = packet_sequencer_next_ok(&ps);
|
||||
assert(!i);
|
||||
|
||||
p = packet_sequencer_next_packet(&ps);
|
||||
assert(p == NULL);
|
||||
assert(num_freed == 0);
|
||||
|
||||
i = packet_sequencer_insert(&ps, &pks[6]);
|
||||
assert(i == 2);
|
||||
assert(num_freed == 0);
|
||||
|
||||
i = packet_sequencer_next_ok(&ps);
|
||||
assert(!i);
|
||||
|
||||
p = packet_sequencer_next_packet(&ps);
|
||||
assert(p == NULL);
|
||||
assert(num_freed == 0);
|
||||
|
||||
i = packet_sequencer_insert(&ps, &pks[5]);
|
||||
assert(i == 2);
|
||||
assert(num_freed == 0);
|
||||
|
||||
i = packet_sequencer_next_ok(&ps);
|
||||
assert(!i);
|
||||
|
||||
p = packet_sequencer_next_packet(&ps);
|
||||
assert(p == &pks[0]);
|
||||
assert(num_freed == 0);
|
||||
|
||||
i = packet_sequencer_next_ok(&ps);
|
||||
assert(i);
|
||||
assert(num_freed == 0);
|
||||
|
||||
p = packet_sequencer_next_packet(&ps);
|
||||
assert(p == &pks[1]);
|
||||
assert(num_freed == 0);
|
||||
|
||||
|
||||
pks[0].seq = 10000;
|
||||
pks[1].seq = 10001;
|
||||
|
||||
i = packet_sequencer_insert(&ps, &pks[1]);
|
||||
assert(i == 1);
|
||||
assert(num_freed == 8);
|
||||
num_freed = 0;
|
||||
|
||||
p = packet_sequencer_next_packet(&ps);
|
||||
assert(p == &pks[1]);
|
||||
assert(num_freed == 0);
|
||||
|
||||
i = packet_sequencer_insert(&ps, &pks[0]);
|
||||
assert(i == -1);
|
||||
assert(num_freed == 0);
|
||||
|
||||
p = packet_sequencer_next_packet(&ps);
|
||||
assert(p == NULL);
|
||||
assert(num_freed == 0);
|
||||
|
||||
|
||||
pks[0].seq = 10;
|
||||
pks[1].seq = 11;
|
||||
|
||||
i = packet_sequencer_insert(&ps, &pks[1]);
|
||||
assert(i == 1);
|
||||
assert(num_freed == 0);
|
||||
|
||||
i = packet_sequencer_insert(&ps, &pks[0]);
|
||||
assert(i == -1);
|
||||
assert(num_freed == 0);
|
||||
|
||||
p = packet_sequencer_next_packet(&ps);
|
||||
assert(p == &pks[1]);
|
||||
assert(num_freed == 0);
|
||||
|
||||
p = packet_sequencer_next_packet(&ps);
|
||||
assert(p == NULL);
|
||||
assert(num_freed == 0);
|
||||
|
||||
|
||||
packet_sequencer_destroy(&ps);
|
||||
|
||||
return 0;
|
||||
}
|
||||
Loading…
Reference in new issue