summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorVincent Penquerc'h <vincent.penquerch@collabora.co.uk>2015-11-02 10:48:11 +0000
committerVincent Penquerc'h <vincent.penquerch@collabora.co.uk>2015-11-02 11:36:12 +0000
commit2f8efd1ce3a8ab98606bbda2bd753330474528e3 (patch)
tree0303c8d0b2cf784fae41c21534892080e2bbbf24 /tests
parent045a03c14a68f9163a90a9bf448af37ce0ee576f (diff)
downloadgstreamer-plugins-bad-2f8efd1ce3a8ab98606bbda2bd753330474528e3.tar.gz
tests: add a test for MPD file duration parsing
https://bugzilla.gnome.org/show_bug.cgi?id=752336
Diffstat (limited to 'tests')
-rw-r--r--tests/check/elements/dash_mpd.c60
1 files changed, 60 insertions, 0 deletions
diff --git a/tests/check/elements/dash_mpd.c b/tests/check/elements/dash_mpd.c
index 613556b2a..b2091e37b 100644
--- a/tests/check/elements/dash_mpd.c
+++ b/tests/check/elements/dash_mpd.c
@@ -5188,6 +5188,62 @@ GST_START_TEST (dash_mpdparser_default_presentation_delay)
GST_END_TEST;
+GST_START_TEST (dash_mpdparser_duration)
+{
+ guint64 v;
+
+ fail_unless (gst_mpdparser_parse_duration ("", &v) == FALSE);
+ fail_unless (gst_mpdparser_parse_duration (" ", &v) == FALSE);
+ fail_unless (gst_mpdparser_parse_duration ("0", &v) == FALSE);
+ fail_unless (gst_mpdparser_parse_duration ("D-1", &v) == FALSE);
+ fail_unless (gst_mpdparser_parse_duration ("T", &v) == FALSE);
+
+ fail_unless (gst_mpdparser_parse_duration ("P", &v) == TRUE);
+ fail_unless (gst_mpdparser_parse_duration ("PT", &v) == TRUE);
+ fail_unless (gst_mpdparser_parse_duration ("PX", &v) == FALSE);
+ fail_unless (gst_mpdparser_parse_duration ("PPT", &v) == FALSE);
+ fail_unless (gst_mpdparser_parse_duration ("PTT", &v) == FALSE);
+
+ fail_unless (gst_mpdparser_parse_duration ("P1D", &v) == TRUE);
+ fail_unless (gst_mpdparser_parse_duration ("P1D1D", &v) == FALSE);
+ fail_unless (gst_mpdparser_parse_duration ("P1D1M", &v) == FALSE);
+ fail_unless (gst_mpdparser_parse_duration ("P1M1D", &v) == TRUE);
+ fail_unless (gst_mpdparser_parse_duration ("P1M1D1M", &v) == FALSE);
+ fail_unless (gst_mpdparser_parse_duration ("P1M1D1D", &v) == FALSE);
+
+ fail_unless (gst_mpdparser_parse_duration ("P0M0D", &v) == TRUE);
+ fail_unless (gst_mpdparser_parse_duration ("P-1M", &v) == FALSE);
+ fail_unless (gst_mpdparser_parse_duration ("P15M", &v) == FALSE);
+ fail_unless (gst_mpdparser_parse_duration ("P-1D", &v) == FALSE);
+ fail_unless (gst_mpdparser_parse_duration ("P35D", &v) == FALSE);
+ fail_unless (gst_mpdparser_parse_duration ("P-1Y", &v) == FALSE);
+ fail_unless (gst_mpdparser_parse_duration ("PT-1H", &v) == FALSE);
+ fail_unless (gst_mpdparser_parse_duration ("PT25H", &v) == FALSE);
+ fail_unless (gst_mpdparser_parse_duration ("PT-1M", &v) == FALSE);
+ fail_unless (gst_mpdparser_parse_duration ("PT65M", &v) == FALSE);
+ fail_unless (gst_mpdparser_parse_duration ("PT-1S", &v) == FALSE);
+ /* seconds are allowed to be larger than 60 */
+ fail_unless (gst_mpdparser_parse_duration ("PT65S", &v) == TRUE);
+
+ fail_unless (gst_mpdparser_parse_duration ("PT1.1H", &v) == FALSE);
+ fail_unless (gst_mpdparser_parse_duration ("PT1-1H", &v) == FALSE);
+ fail_unless (gst_mpdparser_parse_duration ("PT1-H", &v) == FALSE);
+ fail_unless (gst_mpdparser_parse_duration ("PT-H", &v) == FALSE);
+ fail_unless (gst_mpdparser_parse_duration ("PTH", &v) == FALSE);
+ fail_unless (gst_mpdparser_parse_duration ("PT0", &v) == FALSE);
+ fail_unless (gst_mpdparser_parse_duration ("PT1.1S", &v) == TRUE);
+ fail_unless (gst_mpdparser_parse_duration ("PT1.1.1S", &v) == FALSE);
+
+ fail_unless (gst_mpdparser_parse_duration ("P585Y", &v) == FALSE);
+ fail_unless (gst_mpdparser_parse_duration ("P584Y", &v) == TRUE);
+
+ fail_unless (gst_mpdparser_parse_duration (" P10DT8H", &v) == TRUE);
+ fail_unless (gst_mpdparser_parse_duration ("P10D T8H", &v) == FALSE);
+ fail_unless (gst_mpdparser_parse_duration ("P10DT8H ", &v) == TRUE);
+}
+
+GST_END_TEST;
+
/*
* create a test suite containing all dash testcases
*/
@@ -5199,6 +5255,7 @@ dash_suite (void)
TCase *tc_complexMPD = tcase_create ("complexMPD");
TCase *tc_negativeTests = tcase_create ("negativeTests");
TCase *tc_stringTests = tcase_create ("stringTests");
+ TCase *tc_duration = tcase_create ("duration");
GST_DEBUG_CATEGORY_INIT (gst_dash_demux_debug, "gst_dash_demux_debug", 0,
"mpeg dash tests");
@@ -5365,10 +5422,13 @@ dash_suite (void)
tcase_add_test (tc_stringTests, dash_mpdparser_whitespace_strings);
tcase_add_test (tc_stringTests, dash_mpdparser_rfc1738_strings);
+ tcase_add_test (tc_duration, dash_mpdparser_duration);
+
suite_add_tcase (s, tc_simpleMPD);
suite_add_tcase (s, tc_complexMPD);
suite_add_tcase (s, tc_negativeTests);
suite_add_tcase (s, tc_stringTests);
+ suite_add_tcase (s, tc_duration);
return s;
}