From 6b4fdbdabeb7b6010b5d558fb231e5d4e69487fc Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Fri, 3 Oct 2014 19:40:11 +0100 Subject: [PATCH] Add another .srt test; remove checking of .srt subtitle indices as the strict sequence (1, 2, 3...) does not appear to be strictly adhered to. --- src/lib/subrip.cc | 23 +++++------------------ test/subrip_test.cc | 17 ++++++++++++----- 2 files changed, 17 insertions(+), 23 deletions(-) diff --git a/src/lib/subrip.cc b/src/lib/subrip.cc index 11ad3302d..6c9cef916 100644 --- a/src/lib/subrip.cc +++ b/src/lib/subrip.cc @@ -49,20 +49,19 @@ SubRip::SubRip (shared_ptr content) } state = COUNTER; char buffer[256]; - int next_count = 1; boost::optional current; list lines; - + while (!feof (f)) { fgets (buffer, sizeof (buffer), f); if (feof (f)) { break; } - + string line (buffer); trim_right_if (line, boost::is_any_of ("\n\r")); - + switch (state) { case COUNTER: { @@ -70,21 +69,9 @@ SubRip::SubRip (shared_ptr content) /* a blank line at the start is ok */ break; } - - int x = 0; - try { - x = lexical_cast (line); - } catch (...) { - } - - if (x == next_count) { - state = METADATA; - ++next_count; - current = SubRipSubtitle (); - } else { - throw SubRipError (line, _("a subtitle count"), content->path (0)); - } + state = METADATA; + current = SubRipSubtitle (); } break; case METADATA: diff --git a/test/subrip_test.cc b/test/subrip_test.cc index 84ad7f25d..0827005c1 100644 --- a/test/subrip_test.cc +++ b/test/subrip_test.cc @@ -202,11 +202,18 @@ BOOST_AUTO_TEST_CASE (subrip_render_test) check_file ("build/test/subrip_render_test.png", "test/data/subrip_render_test.png"); } -/** Test of reading a typical .srt */ -BOOST_AUTO_TEST_CASE (subrip_read_test) +static void +test (boost::filesystem::path p) { - shared_ptr film = new_test_film ("subrip_read_test"); - boost::filesystem::path p = private_data / "sintel_en.srt"; - shared_ptr s (new SubRipContent (film, p)); + shared_ptr film = new_test_film ("subrip_read_test_" + p.string ()); + boost::filesystem::path t = private_data / p; + shared_ptr s (new SubRipContent (film, t)); s->examine (shared_ptr ()); } + +/** Test of reading some typical .srt files */ +BOOST_AUTO_TEST_CASE (subrip_read_test) +{ + test ("sintel_en.srt"); + test ("Fight.Club.1999.720p.BRRip.x264-x0r.srt"); +} -- 2.30.2