From: Carl Hetherington Date: Mon, 9 Mar 2020 15:42:30 +0000 (+0100) Subject: Add failing test for one short-reel possibility. X-Git-Tag: v2.15.48~21 X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=commitdiff_plain;h=ffe35585f08d0a5aeccf3e32f9c4cd2a5a6f43f5;hp=bc36ddea65fda2088f7e8fa98390e3feac07df84 Add failing test for one short-reel possibility. --- diff --git a/test/reels_test.cc b/test/reels_test.cc index 3d79017f0..8d15aba52 100644 --- a/test/reels_test.cc +++ b/test/reels_test.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2015-2019 Carl Hetherington + Copyright (C) 2015-2020 Carl Hetherington This file is part of DCP-o-matic. @@ -39,7 +39,10 @@ using std::list; using std::cout; +using std::vector; +using std::string; using boost::shared_ptr; +using boost::function; using namespace dcpomatic; /** Test Film::reels() */ @@ -482,3 +485,32 @@ BOOST_AUTO_TEST_CASE (reels_test12) BOOST_CHECK_EQUAL (i->from.get(), DCPTime::from_seconds(14).get()); BOOST_CHECK_EQUAL (i->to.get(), DCPTime::from_seconds(19).get()); } + +static void +no_op () +{ + +} + + +/** Using less than 1 second's worth of content should not result in a reel + * of less than 1 second's duration. + */ +BOOST_AUTO_TEST_CASE (reels_should_not_be_short1) +{ + shared_ptr film = new_test_film2 ("reels_should_not_be_short1"); + film->set_video_frame_rate (24); + + shared_ptr A(new FFmpegContent("test/data/flat_red.png")); + film->examine_and_add_content (A); + BOOST_REQUIRE (!wait_for_jobs()); + A->video->set_length (23); + + film->make_dcp (); + BOOST_REQUIRE (!wait_for_jobs()); + + vector dirs; + dirs.push_back (film->dir(film->dcp_name(false))); + BOOST_REQUIRE (dcp::verify(dirs, boost::bind(&no_op), boost::bind(&no_op), TestPaths::xsd).empty()); +} + diff --git a/test/test.cc b/test/test.cc index c0d5d776f..b111a3b6b 100644 --- a/test/test.cc +++ b/test/test.cc @@ -72,6 +72,7 @@ using boost::scoped_array; using boost::dynamic_pointer_cast; boost::filesystem::path private_data = boost::filesystem::canonical(boost::filesystem::path ("..") / boost::filesystem::path ("dcpomatic-test-private")); +boost::filesystem::path TestPaths::xsd = boost::filesystem::canonical(boost::filesystem::path("..") / boost::filesystem::path("libdcp") / boost::filesystem::path("xsd")); void setup_test_config () diff --git a/test/test.h b/test/test.h index 3a11effa1..c94bad595 100644 --- a/test/test.h +++ b/test/test.h @@ -26,6 +26,12 @@ class Image; extern boost::filesystem::path private_data; +class TestPaths +{ +public: + static boost::filesystem::path xsd; +}; + extern bool wait_for_jobs (); extern void setup_test_config (); extern boost::shared_ptr new_test_film (std::string);