X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=test%2Fdcp_decoder_test.cc;h=d0052f4a1bff518d6bfad7e6141c4c2cce280fe3;hb=HEAD;hp=c1ad90d6f66a015efc0f4b427e26709bcf5241a4;hpb=28111007e2e6fd62f5810be780706ae1618bd33f;p=dcpomatic.git diff --git a/test/dcp_decoder_test.cc b/test/dcp_decoder_test.cc index c1ad90d6f..d0052f4a1 100644 --- a/test/dcp_decoder_test.cc +++ b/test/dcp_decoder_test.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2019 Carl Hetherington + Copyright (C) 2019-2021 Carl Hetherington This file is part of DCP-o-matic. @@ -18,70 +18,62 @@ */ + /** @file test/dcp_decoder_test.cc * @brief Test DCPDecoder class. * @ingroup selfcontained */ -#include "lib/film.h" + +#include "lib/config.h" +#include "lib/content_factory.h" #include "lib/dcp_content.h" #include "lib/dcp_decoder.h" -#include "lib/content_factory.h" -#include "lib/player.h" #include "lib/examine_content_job.h" +#include "lib/film.h" #include "lib/job_manager.h" -#include "lib/config.h" +#include "lib/piece.h" +#include "lib/player.h" #include "test.h" +#include #include #include #include + using std::list; +using std::make_shared; using std::string; using std::vector; -using std::make_shared; -using std::shared_ptr; + /* Check that DCPDecoder reuses old data when it should */ BOOST_AUTO_TEST_CASE (check_reuse_old_data_test) { /* Make some DCPs */ - auto ov = new_test_film2 ("check_reuse_old_data_ov"); - ov->examine_and_add_content (content_factory("test/data/flat_red.png").front()); - BOOST_REQUIRE (!wait_for_jobs()); - ov->make_dcp (); - BOOST_REQUIRE (!wait_for_jobs()); + auto ov = new_test_film2 ("check_reuse_old_data_ov", content_factory("test/data/flat_red.png")); + make_and_verify_dcp (ov); - auto vf = new_test_film2 ("check_reuse_old_data_vf"); auto ov_content = make_shared(ov->dir(ov->dcp_name(false))); - vf->examine_and_add_content (ov_content); - vf->examine_and_add_content (content_factory("test/data/L.wav").front()); - BOOST_REQUIRE (!wait_for_jobs()); + auto vf = new_test_film2 ("check_reuse_old_data_vf", {ov_content, content_factory("test/data/L.wav")[0]}); ov_content->set_reference_video (true); - vf->make_dcp (); - BOOST_REQUIRE (!wait_for_jobs()); + make_and_verify_dcp(vf, {dcp::VerificationNote::Code::EXTERNAL_ASSET}, false); auto encrypted = new_test_film2 ("check_reuse_old_data_decrypted"); - encrypted->examine_and_add_content (content_factory("test/data/flat_red.png").front()); + encrypted->examine_and_add_content (content_factory("test/data/flat_red.png")[0]); BOOST_REQUIRE (!wait_for_jobs()); encrypted->set_encrypted (true); - encrypted->make_dcp (); - BOOST_REQUIRE (!wait_for_jobs()); + make_and_verify_dcp (encrypted); dcp::DCP encrypted_dcp (encrypted->dir(encrypted->dcp_name())); encrypted_dcp.read (); - auto kdm = encrypted->make_kdm ( - Config::instance()->decryption_chain()->leaf(), - vector(), - encrypted_dcp.cpls().front()->file().get(), - dcp::LocalTime ("2030-07-21T00:00:00+00:00"), - dcp::LocalTime ("2031-07-21T00:00:00+00:00"), - dcp::Formulation::MODIFIED_TRANSITIONAL_1, - true, 0 - ); + auto signer = Config::instance()->signer_chain(); + BOOST_REQUIRE(signer->valid()); + auto const decrypted_kdm = encrypted->make_kdm(encrypted_dcp.cpls().front()->file().get(), dcp::LocalTime ("2030-07-21T00:00:00+00:00"), dcp::LocalTime ("2031-07-21T00:00:00+00:00")); + auto const kdm = decrypted_kdm.encrypt(signer, Config::instance()->decryption_chain()->leaf(), {}, dcp::Formulation::MODIFIED_TRANSITIONAL_1, true, 0); /* Add just the OV to a new project, move it around a bit and check that the _reels get reused. @@ -90,7 +82,7 @@ BOOST_AUTO_TEST_CASE (check_reuse_old_data_test) ov_content = make_shared(ov->dir(ov->dcp_name(false))); test->examine_and_add_content (ov_content); BOOST_REQUIRE (!wait_for_jobs()); - auto player = make_shared(test); + auto player = make_shared(test, Image::Alignment::COMPACT); auto decoder = std::dynamic_pointer_cast(player->_pieces.front()->decoder); BOOST_REQUIRE (decoder); @@ -108,7 +100,7 @@ BOOST_AUTO_TEST_CASE (check_reuse_old_data_test) auto vf_content = make_shared(vf->dir(vf->dcp_name(false))); test->examine_and_add_content (vf_content); BOOST_REQUIRE (!wait_for_jobs()); - player.reset (new Player(test)); + player = make_shared(test, Image::Alignment::COMPACT); decoder = std::dynamic_pointer_cast(player->_pieces.front()->decoder); BOOST_REQUIRE (decoder); @@ -126,7 +118,7 @@ BOOST_AUTO_TEST_CASE (check_reuse_old_data_test) auto encrypted_content = make_shared(encrypted->dir(encrypted->dcp_name(false))); test->examine_and_add_content (encrypted_content); BOOST_REQUIRE (!wait_for_jobs()); - player = make_shared(test); + player = make_shared(test, Image::Alignment::COMPACT); decoder = std::dynamic_pointer_cast(player->_pieces.front()->decoder); BOOST_REQUIRE (decoder);