diff options
| author | Carl Hetherington <cth@carlh.net> | 2018-04-19 22:47:37 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2018-04-19 22:47:37 +0100 |
| commit | 88b52579c0bb391fe0db225b7a608ad3ffd61831 (patch) | |
| tree | 5af3431ea5c86e01a969e40d57bde6741a7535c8 | |
| parent | 8c09738a28a4a9c0ae59a7486224cb3b4e850b57 (diff) | |
Add unit test to trigger #1275 and an assert to prevent the segfault.
| -rw-r--r-- | src/lib/writer.cc | 2 | ||||
| -rw-r--r-- | test/subtitle_trim_test.cc | 41 | ||||
| -rw-r--r-- | test/wscript | 1 |
3 files changed, 44 insertions, 0 deletions
diff --git a/src/lib/writer.cc b/src/lib/writer.cc index d6c3370b0..d86a2ccf4 100644 --- a/src/lib/writer.cc +++ b/src/lib/writer.cc @@ -664,6 +664,8 @@ Writer::write (PlayerSubtitles subs, DCPTimePeriod period) ++_subtitle_reel; } + DCPOMATIC_ASSERT (_subtitle_reel != _reels.end()); + _subtitle_reel->write (subs); } diff --git a/test/subtitle_trim_test.cc b/test/subtitle_trim_test.cc new file mode 100644 index 000000000..33bcf823f --- /dev/null +++ b/test/subtitle_trim_test.cc @@ -0,0 +1,41 @@ +/* + Copyright (C) 2018 Carl Hetherington <cth@carlh.net> + + This file is part of DCP-o-matic. + + DCP-o-matic is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + DCP-o-matic is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with DCP-o-matic. If not, see <http://www.gnu.org/licenses/>. + +*/ + +#include "lib/film.h" +#include "lib/dcp_subtitle_content.h" +#include "test.h" +#include <boost/test/unit_test.hpp> + +using boost::shared_ptr; + +/** Check for no crash when trimming DCP subtitles (#1275) */ +BOOST_AUTO_TEST_CASE (subtitle_trim_test1) +{ + shared_ptr<Film> film = new_test_film2 ("subtitle_trim_test1"); + shared_ptr<DCPSubtitleContent> content (new DCPSubtitleContent (film, "test/data/dcp_sub5.xml")); + film->examine_and_add_content (content); + BOOST_REQUIRE (!wait_for_jobs ()); + + content->set_trim_end (ContentTime::from_seconds (2)); + film->write_metadata (); + + film->make_dcp (); + BOOST_REQUIRE (!wait_for_jobs ()); +} diff --git a/test/wscript b/test/wscript index fef16dbed..c50826ae9 100644 --- a/test/wscript +++ b/test/wscript @@ -99,6 +99,7 @@ def build(bld): ssa_subtitle_test.cc stream_test.cc subtitle_reel_number_test.cc + subtitle_trim_test.cc test.cc threed_test.cc time_calculation_test.cc |
