X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=test%2Frequired_disk_space_test.cc;h=b704ccef2d13557fa923bbadbb288a0853d3c626;hb=HEAD;hp=24ca4cac4921cbaa8e6e0d0a4cf28506803b0d72;hpb=3476f2f8251d5800abdd968963cac57b0df8a657;p=dcpomatic.git diff --git a/test/required_disk_space_test.cc b/test/required_disk_space_test.cc index 24ca4cac4..b704ccef2 100644 --- a/test/required_disk_space_test.cc +++ b/test/required_disk_space_test.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2016 Carl Hetherington + Copyright (C) 2016-2021 Carl Hetherington This file is part of DCP-o-matic. @@ -18,37 +18,48 @@ */ + +/** @file test/required_disk_space_test.cc + * @brief Check Film::required_disk_space + * @ingroup selfcontained + */ + + #include "lib/content_factory.h" -#include "lib/film.h" #include "lib/dcp_content.h" +#include "lib/film.h" #include "test.h" #include -using boost::shared_ptr; -using boost::dynamic_pointer_cast; + +using std::dynamic_pointer_cast; +using std::make_shared; + void check_within_n (int64_t a, int64_t b, int64_t n) { - BOOST_CHECK (abs (a - b) <= n); + BOOST_CHECK_MESSAGE (abs(a - b) <= n, "Estimated " << a << " differs from reference " << b << " by more than " << n); } BOOST_AUTO_TEST_CASE (required_disk_space_test) { - shared_ptr film = new_test_film ("required_disk_space_test"); + auto film = new_test_film ("required_disk_space_test"); film->set_j2k_bandwidth (100000000); - film->set_audio_channels (6); - shared_ptr content_a = content_factory(film, "test/data/flat_blue.png").front(); + film->set_audio_channels(8); + film->set_reel_type (ReelType::BY_VIDEO_CONTENT); + auto content_a = content_factory("test/data/flat_blue.png")[0]; + BOOST_REQUIRE (content_a); film->examine_and_add_content (content_a); - shared_ptr content_b = dynamic_pointer_cast (content_factory(film, "test/data/burnt_subtitle_test_dcp").front()); + auto content_b = make_shared("test/data/burnt_subtitle_test_dcp"); film->examine_and_add_content (content_b); - wait_for_jobs (); + BOOST_REQUIRE (!wait_for_jobs()); film->write_metadata (); check_within_n ( film->required_disk_space(), - 289LL * (100000000 / 8) / 24 + // video - 289LL * 48000 * 6 * 3 / 24 + // audio + 288LL * (100000000 / 8) / 24 + // video + 288LL * 48000 * 8 * 3 / 24 + // audio 65536, // extra 16 ); @@ -58,17 +69,19 @@ BOOST_AUTO_TEST_CASE (required_disk_space_test) check_within_n ( film->required_disk_space(), 240LL * (100000000 / 8) / 24 + // video - 289LL * 48000 * 6 * 3 / 24 + // audio + 288LL * 48000 * 8 * 3 / 24 + // audio 65536, // extra 16 ); + std::string why_not; + BOOST_CHECK(content_b->can_reference_audio(film, why_not)); content_b->set_reference_audio (true); check_within_n ( film->required_disk_space(), 240LL * (100000000 / 8) / 24 + // video - 240LL * 48000 * 6 * 3 / 24 + // audio + 240LL * 48000 * 8 * 3 / 24 + // audio 65536, // extra 16 );