@@ -396,7 +396,7 @@ m=video 000000000000000000050020 RTP/AVP 0096
396
396
)" ;
397
397
398
398
const std::string expected_sdp = R"( v=0
399
- o=- 7 987654321098765432 IN IP4 192.0.2.0
399
+ o=- 007 0987654321098765432 IN IP4 192.0.2.0
400
400
s=Leading zeros
401
401
b=AS:9876543210
402
402
t=0 0
@@ -577,10 +577,21 @@ BST_TEST_CASE(testSdpSessionId)
577
577
{
578
578
const std::string before = " v=0\r\n o=- " ;
579
579
const std::string after = " 42 IN IP4 10.0.0.1\r\n s= \r\n t=0 0\r\n " ;
580
- BST_REQUIRE_NO_THROW (sdp::parse_session_description (before + " 0" + after));
581
- BST_REQUIRE_NO_THROW (sdp::parse_session_description (before + " 007" + after));
582
- BST_REQUIRE_NO_THROW (sdp::parse_session_description (before + " 18446744073709551615" + after)); // session id to UINT64_MAX
583
- BST_REQUIRE_NO_THROW (sdp::parse_session_description (before + " 184467440737095516150" + after)); // session id greater than UINT64_MAX
580
+
581
+ const std::vector<std::pair<utility::string_t , std::string>> session_id_params = {
582
+ {U (" 1" ), before + " 1" + after},
583
+ {U (" 00000000000000000000" ), before + " 00000000000000000000" + after},
584
+ {U (" 0018446744073709551615" ), before + " 0018446744073709551615" + after},
585
+ {U (" 001844674407370955161500" ), before + " 001844674407370955161500" + after}
586
+ };
587
+ for (const auto & session_id_param : session_id_params)
588
+ {
589
+ auto session_description = sdp::parse_session_description (session_id_param.second );
590
+ auto origin = sdp::fields::origin (session_description);
591
+ auto session_id = sdp::fields::session_id (origin);
592
+ BST_CHECK_EQUAL (session_id_param.first , session_id);
593
+ }
594
+
584
595
// an invalid session id results in "sdp parse error - expected a sequence of digits at line 2"
585
596
BST_REQUIRE_THROW (sdp::parse_session_description (before + " foo" + after), std::runtime_error);
586
597
BST_REQUIRE_THROW (sdp::parse_session_description (before + " 0foo" + after), std::runtime_error);
@@ -593,10 +604,21 @@ BST_TEST_CASE(testSdpSessionVersion)
593
604
{
594
605
const std::string before = " v=0\r\n o=- 42 " ;
595
606
const std::string after = " IN IP4 10.0.0.1\r\n s= \r\n t=0 0\r\n " ;
596
- BST_REQUIRE_NO_THROW (sdp::parse_session_description (before + " 0" + after));
597
- BST_REQUIRE_NO_THROW (sdp::parse_session_description (before + " 007" + after));
598
- BST_REQUIRE_NO_THROW (sdp::parse_session_description (before + " 18446744073709551615" + after)); // session version to UINT64_MAX
599
- BST_REQUIRE_NO_THROW (sdp::parse_session_description (before + " 184467440737095516150" + after)); // session version greater than UINT64_MAX
607
+
608
+ const std::vector<std::pair<utility::string_t , std::string>> session_version_params = {
609
+ {U (" 1" ), before + " 1" + after},
610
+ {U (" 00000000000000000000" ), before + " 00000000000000000000" + after},
611
+ {U (" 0018446744073709551615" ), before + " 0018446744073709551615" + after},
612
+ {U (" 001844674407370955161500" ), before + " 001844674407370955161500" + after}
613
+ };
614
+ for (const auto & session_version_param : session_version_params)
615
+ {
616
+ auto session_description = sdp::parse_session_description (session_version_param.second );
617
+ auto origin = sdp::fields::origin (session_description);
618
+ auto session_version = sdp::fields::session_version (origin);
619
+ BST_CHECK_EQUAL (session_version_param.first , session_version);
620
+ }
621
+
600
622
// an invalid session version results in "sdp parse error - expected a sequence of digits at line 2"
601
623
BST_REQUIRE_THROW (sdp::parse_session_description (before + " foo" + after), std::runtime_error);
602
624
BST_REQUIRE_THROW (sdp::parse_session_description (before + " 0foo" + after), std::runtime_error);
0 commit comments