diff options
Diffstat (limited to 'test/test_framelist.cc')
-rw-r--r-- | test/test_framelist.cc | 113 |
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); } }; |