summaryrefslogtreecommitdiff
path: root/test/test_framelist.cc
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_framelist.cc')
-rw-r--r--test/test_framelist.cc113
1 files changed, 76 insertions, 37 deletions
diff --git a/test/test_framelist.cc b/test/test_framelist.cc
index 27b38f6..b3f8374 100644
--- a/test/test_framelist.cc
+++ b/test/test_framelist.cc
@@ -38,6 +38,11 @@
#define KEY "123456789012345678901234567890123456789012345678901234567890"
#define SSRC 1234567890
+typedef union {
+ int n;
+ char c[sizeof(int)];
+} num_t;
+
class test_conn_class : public CppUnit::TestFixture
{
CPPUNIT_TEST_SUITE(test_conn_class);
@@ -55,49 +60,59 @@ public:
std::vector<std::string> packets;
unsigned int csrc = 42;
- union {
- int n;
- char c[sizeof(int)];
- } num[3];
+ num_t num[3];
+
+ lrtp_status_t status;
+ struct lrtp_t *lrtp = lrtp_init(&status, KEY, SSRC);
+ CPPUNIT_ASSERT_EQUAL(LRTP_OK, status);
- struct lrtp_t *lrtp = lrtp_init(KEY, SSRC);
+ struct lrtp_t *lrtp2 = lrtp_init(&status, KEY, SSRC);
+ CPPUNIT_ASSERT_EQUAL(LRTP_OK, status);
ret = lrtp_create_profile(lrtp, PROFILE_RAW, csrc,
- OPTION_RAW_PKG_SIZE, sizeof(num),
+ OPTION_RAW_PKG_SIZE, sizeof(num_t),
+ OPTION_END);
+ CPPUNIT_ASSERT_EQUAL(0, ret);
+
+ ret = lrtp_create_profile(lrtp2, PROFILE_RAW, csrc,
+ OPTION_RAW_PKG_SIZE, sizeof(num_t),
OPTION_END);
CPPUNIT_ASSERT_EQUAL(0, ret);
num[0].n = 0;
- ret = lrtp_enqueue_frame(lrtp, csrc, num[0].c, sizeof(num), 0);
+ ret = lrtp_enqueue_frame(lrtp, csrc, num[0].c, sizeof(num_t), 0, LRTP_COPY);
CPPUNIT_ASSERT_EQUAL(0, ret);
num[1].n = 1;
- ret = lrtp_enqueue_frame(lrtp, csrc, num[1].c, sizeof(num), 1);
+ ret = lrtp_enqueue_frame(lrtp, csrc, num[1].c, sizeof(num_t), 1, LRTP_COPY);
CPPUNIT_ASSERT_EQUAL(0, ret);
num[2].n = 2;
- ret = lrtp_enqueue_frame(lrtp, csrc, num[2].c, sizeof(num), 2);
+ ret = lrtp_enqueue_frame(lrtp, csrc, num[2].c, sizeof(num_t), 2, LRTP_COPY);
CPPUNIT_ASSERT_EQUAL(0, ret);
for(int i = 0; i < 3; i++) {
char packet[16*1024];
ret = lrtp_pack(lrtp, packet, sizeof(packet));
- CPPUNIT_ASSERT_EQUAL((int)(16 + sizeof(num)), ret);
-
- RTP rtp;
-
- ret = rtp.fromPacket(packet, ret);
- CPPUNIT_ASSERT_EQUAL((int)(16 + sizeof(num)), ret);
-
- int n = *((int*)rtp.payloadData());
+ CPPUNIT_ASSERT_EQUAL((int)(26 + sizeof(num_t)), ret);
+ ret = lrtp_unpack(lrtp2, packet, ret);
+ CPPUNIT_ASSERT_EQUAL(0, ret);
+
+ char frame[16*1024];
+ ret = lrtp_dequeue_frame(lrtp2, frame, sizeof(frame), NULL, NULL);
+ CPPUNIT_ASSERT_EQUAL((int)sizeof(num_t), ret);
+ int n = *((int*)frame);
+
CPPUNIT_ASSERT_EQUAL(i, n);
}
lrtp_destroy_profile(lrtp, csrc);
+ lrtp_destroy_profile(lrtp2, csrc);
lrtp_close(lrtp);
+ lrtp_close(lrtp2);
}
void test_framelist() {
@@ -106,57 +121,76 @@ public:
std::vector<std::string> packets;
unsigned int csrc = 42;
- union {
- int n;
- char c[sizeof(int)];
- } num[4];
+ num_t num[4];
- struct lrtp_t *lrtp = lrtp_init(KEY, SSRC);
+ lrtp_status_t status;
+ struct lrtp_t *lrtp = lrtp_init(&status, KEY, SSRC);
+ CPPUNIT_ASSERT_EQUAL(LRTP_OK, status);
+ struct lrtp_t *lrtp2 = lrtp_init(&status, KEY, SSRC);
+ CPPUNIT_ASSERT_EQUAL(LRTP_OK, status);
+
ret = lrtp_create_profile(lrtp, PROFILE_RAW, csrc + 2,
- OPTION_RAW_PKG_SIZE, sizeof(num),
+ OPTION_RAW_PKG_SIZE, sizeof(num_t),
OPTION_END);
CPPUNIT_ASSERT_EQUAL(0, ret);
ret = lrtp_create_profile(lrtp, PROFILE_RAW, csrc,
- OPTION_RAW_PKG_SIZE, sizeof(num),
+ OPTION_RAW_PKG_SIZE, sizeof(num_t),
OPTION_END);
CPPUNIT_ASSERT_EQUAL(0, ret);
ret = lrtp_create_profile(lrtp, PROFILE_RAW, csrc + 1,
- OPTION_RAW_PKG_SIZE, sizeof(num),
+ OPTION_RAW_PKG_SIZE, sizeof(num_t),
+ OPTION_END);
+ CPPUNIT_ASSERT_EQUAL(0, ret);
+
+ ret = lrtp_create_profile(lrtp2, PROFILE_RAW, csrc + 2,
+ OPTION_RAW_PKG_SIZE, sizeof(num_t),
OPTION_END);
CPPUNIT_ASSERT_EQUAL(0, ret);
+ ret = lrtp_create_profile(lrtp2, PROFILE_RAW, csrc,
+ OPTION_RAW_PKG_SIZE, sizeof(num_t),
+ OPTION_END);
+ CPPUNIT_ASSERT_EQUAL(0, ret);
+
+ ret = lrtp_create_profile(lrtp2, PROFILE_RAW, csrc + 1,
+ OPTION_RAW_PKG_SIZE, sizeof(num_t),
+ OPTION_END);
+ CPPUNIT_ASSERT_EQUAL(0, ret);
+
+
num[0].n = 0;
- ret = lrtp_enqueue_frame(lrtp, csrc, num[0].c, sizeof(num), 0);
+ ret = lrtp_enqueue_frame(lrtp, csrc, num[0].c, sizeof(num_t), 0, LRTP_COPY);
CPPUNIT_ASSERT_EQUAL(0, ret);
num[1].n = 2;
- ret = lrtp_enqueue_frame(lrtp, csrc + 2, num[1].c, sizeof(num), 1);
+ ret = lrtp_enqueue_frame(lrtp, csrc + 2, num[1].c, sizeof(num_t), 1, LRTP_COPY);
CPPUNIT_ASSERT_EQUAL(0, ret);
num[2].n = 1;
- ret = lrtp_enqueue_frame(lrtp, csrc + 1, num[2].c, sizeof(num), 2);
+ ret = lrtp_enqueue_frame(lrtp, csrc + 1, num[2].c, sizeof(num_t), 2, LRTP_COPY);
CPPUNIT_ASSERT_EQUAL(0, ret);
num[3].n = 3;
- ret = lrtp_enqueue_frame(lrtp, csrc + 1, num[3].c, sizeof(num), 3);
+ ret = lrtp_enqueue_frame(lrtp, csrc + 1, num[3].c, sizeof(num_t), 3, LRTP_COPY);
CPPUNIT_ASSERT_EQUAL(0, ret);
for(int i = 0; i < 4; i++) {
char packet[16*1024];
ret = lrtp_pack(lrtp, packet, sizeof(packet));
- CPPUNIT_ASSERT_EQUAL((int)(16 + sizeof(num)), ret);
-
- RTP rtp;
-
- ret = rtp.fromPacket(packet, ret);
- CPPUNIT_ASSERT_EQUAL((int)(16 + sizeof(num)), ret);
-
- int n = *((int*)rtp.payloadData());
+ CPPUNIT_ASSERT_EQUAL((int)(26 + sizeof(num_t)), ret);
+ ret = lrtp_unpack(lrtp2, packet, ret);
+ CPPUNIT_ASSERT_EQUAL(0, ret);
+
+ char frame[16*1024];
+ ret = lrtp_dequeue_frame(lrtp2, frame, sizeof(frame), NULL, NULL);
+ CPPUNIT_ASSERT_EQUAL((int)sizeof(num_t), ret);
+ int n = *((int*)frame);
+
CPPUNIT_ASSERT_EQUAL(i, n);
}
@@ -164,7 +198,12 @@ public:
lrtp_destroy_profile(lrtp, csrc + 1);
lrtp_destroy_profile(lrtp, csrc + 2);
+ lrtp_destroy_profile(lrtp2, csrc);
+ lrtp_destroy_profile(lrtp2, csrc + 1);
+ lrtp_destroy_profile(lrtp2, csrc + 2);
+
lrtp_close(lrtp);
+ lrtp_close(lrtp2);
}
};