X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=test%2Ftests.cc;h=49c6689ff8efb6d80672df9ada597454337d9b67;hb=25074e781d2c55c606db3f202457447af30ae774;hp=d717faf4c4fc65b2f1ef5a388c570f643f9fb5bb;hpb=b56b008e2ad86bd2c29a42390891a32ae658d6c4;p=libdcp.git diff --git a/test/tests.cc b/test/tests.cc index d717faf4..49c6689f 100644 --- a/test/tests.cc +++ b/test/tests.cc @@ -17,7 +17,9 @@ */ +#include #include +#include #include "KM_prng.h" #include "dcp.h" #include "util.h" @@ -28,148 +30,62 @@ #include "picture_asset.h" #include "sound_asset.h" #include "reel.h" +#include "certificates.h" +#include "crypt_chain.h" +#include "gamma_lut.h" +#include "cpl.h" +#include "encryption.h" #define BOOST_TEST_DYN_LINK #define BOOST_TEST_MODULE libdcp_test #include -using namespace std; -using namespace boost; +using std::string; +using std::cout; +using std::vector; +using std::list; +using boost::shared_ptr; -string +struct TestConfig +{ + TestConfig() + { + libdcp::init (); + } +}; + +BOOST_GLOBAL_FIXTURE (TestConfig); + +static string j2c (int) { return "test/data/32x32_red_square.j2c"; } -string +static string wav (libdcp::Channel) { return "test/data/1s_24-bit_48k_silence.wav"; } - - -BOOST_AUTO_TEST_CASE (dcp_test) -{ - Kumu::libdcp_test = true; - - libdcp::Metadata* t = libdcp::Metadata::instance (); - t->issuer = "OpenDCP 0.0.25"; - t->creator = "OpenDCP 0.0.25"; - t->company_name = "OpenDCP"; - t->product_name = "OpenDCP"; - t->product_version = "0.0.25"; - t->issue_date = "2012-07-17T04:45:18+00:00"; - filesystem::remove_all ("build/test/foo"); - filesystem::create_directories ("build/test/foo"); - libdcp::DCP d ("build/test/foo", "A Test DCP", libdcp::FEATURE, 24, 24); - - shared_ptr mp (new libdcp::PictureAsset ( - sigc::ptr_fun (&j2c), - "build/test/foo", - "video.mxf", - &d.Progress, - 24, - 24, - 32, - 32 - )); - - shared_ptr ms (new libdcp::SoundAsset ( - sigc::ptr_fun (&wav), - "build/test/foo", - "audio.mxf", - &(d.Progress), - 24, - 24, - 2 - )); - - d.add_reel (shared_ptr (new libdcp::Reel (mp, ms, shared_ptr ()))); - - d.write_xml (); -} - -BOOST_AUTO_TEST_CASE (error_test) -{ - libdcp::DCP d ("build/test/bar", "A Test DCP", libdcp::TEST, 24, 24); - vector p; - p.push_back ("frobozz"); - - BOOST_CHECK_THROW (new libdcp::PictureAsset (p, "build/test/bar", "video.mxf", &d.Progress, 24, 24, 32, 32), libdcp::FileError); - BOOST_CHECK_THROW (new libdcp::SoundAsset (p, "build/test/bar", "audio.mxf", &d.Progress, 24, 24), libdcp::FileError); -} -BOOST_AUTO_TEST_CASE (read_dcp) -{ - libdcp::DCP d ("test/ref/DCP"); - - BOOST_CHECK_EQUAL (d.name(), "A Test DCP"); - BOOST_CHECK_EQUAL (d.content_kind(), libdcp::FEATURE); - BOOST_CHECK_EQUAL (d.frames_per_second(), 24); - BOOST_CHECK_EQUAL (d.length(), 24); -} - -BOOST_AUTO_TEST_CASE (subtitles) -{ - libdcp::SubtitleAsset subs ("test/ref", "subs.xml"); - - BOOST_CHECK_EQUAL (subs.language(), "French"); - - list > s = subs.subtitles_at (libdcp::Time (0, 0, 6, 1)); - BOOST_CHECK_EQUAL (s.size(), 1); - BOOST_CHECK_EQUAL (s.front()->text(), "My jacket was Idi Amin's"); - BOOST_CHECK_EQUAL (s.front()->v_position(), 15); - BOOST_CHECK_EQUAL (s.front()->in(), libdcp::Time (0, 0, 5, 198)); - BOOST_CHECK_EQUAL (s.front()->out(), libdcp::Time (0, 0, 7, 115)); - BOOST_CHECK_EQUAL (s.front()->font(), "Arial"); - BOOST_CHECK_EQUAL (s.front()->italic(), false); - BOOST_CHECK_EQUAL (s.front()->size_in_pixels(1080), 53); - - s = subs.subtitles_at (libdcp::Time (0, 0, 7, 190)); - BOOST_CHECK_EQUAL (s.size(), 2); - BOOST_CHECK_EQUAL (s.front()->text(), "My corset was H.M. The Queen's"); - BOOST_CHECK_EQUAL (s.front()->v_position(), 21); - BOOST_CHECK_EQUAL (s.front()->in(), libdcp::Time (0, 0, 7, 177)); - BOOST_CHECK_EQUAL (s.front()->out(), libdcp::Time (0, 0, 11, 31)); - BOOST_CHECK_EQUAL (s.front()->font(), "Arial"); - BOOST_CHECK_EQUAL (s.front()->italic(), true); - BOOST_CHECK_EQUAL (s.front()->size_in_pixels(1080), 53); - BOOST_CHECK_EQUAL (s.back()->text(), "My large wonderbra"); - BOOST_CHECK_EQUAL (s.back()->v_position(), 15); - BOOST_CHECK_EQUAL (s.back()->in(), libdcp::Time (0, 0, 7, 177)); - BOOST_CHECK_EQUAL (s.back()->out(), libdcp::Time (0, 0, 11, 31)); - BOOST_CHECK_EQUAL (s.back()->font(), "Arial"); - BOOST_CHECK_EQUAL (s.front()->italic(), true); - BOOST_CHECK_EQUAL (s.back()->size_in_pixels(1080), 53); - - s = subs.subtitles_at (libdcp::Time (0, 0, 11, 95)); - BOOST_CHECK_EQUAL (s.size(), 1); - BOOST_CHECK_EQUAL (s.front()->text(), "Once belonged to the Shah"); - BOOST_CHECK_EQUAL (s.front()->v_position(), 15); - BOOST_CHECK_EQUAL (s.front()->in(), libdcp::Time (0, 0, 11, 94)); - BOOST_CHECK_EQUAL (s.front()->out(), libdcp::Time (0, 0, 13, 63)); - BOOST_CHECK_EQUAL (s.front()->font(), "Arial"); - BOOST_CHECK_EQUAL (s.front()->italic(), false); - BOOST_CHECK_EQUAL (s.front()->size_in_pixels(1080), 53); - - s = subs.subtitles_at (libdcp::Time (0, 0, 14, 42)); - BOOST_CHECK_EQUAL (s.size(), 1); - BOOST_CHECK_EQUAL (s.front()->text(), "And these are Roy Hattersley's jeans"); - BOOST_CHECK_EQUAL (s.front()->v_position(), 15); - BOOST_CHECK_EQUAL (s.front()->in(), libdcp::Time (0, 0, 13, 104)); - BOOST_CHECK_EQUAL (s.front()->out(), libdcp::Time (0, 0, 15, 177)); - BOOST_CHECK_EQUAL (s.front()->font(), "Arial"); - BOOST_CHECK_EQUAL (s.front()->italic(), false); - BOOST_CHECK_EQUAL (s.front()->size_in_pixels(1080), 53); -} - -BOOST_AUTO_TEST_CASE (dcp_time) -{ - libdcp::Time t (977143, 24); - - BOOST_CHECK_EQUAL (t.t, 73); - BOOST_CHECK_EQUAL (t.s, 34); - BOOST_CHECK_EQUAL (t.m, 18); - BOOST_CHECK_EQUAL (t.h, 11); -} +static string test_corpus = "../libdcp-test"; + +#include "kdm_test.cc" +#include "decryption_test.cc" +#include "dcp_test.cc" +#include "error_test.cc" +#include "read_dcp_test.cc" +#include "subtitle_tests.cc" +#include "dcp_time_test.cc" +#include "color_test.cc" +#include "recovery_test.cc" + +//BOOST_AUTO_TEST_CASE (crypt_chain) +//{ +// boost::filesystem::remove_all ("build/test/crypt"); +// boost::filesystem::create_directory ("build/test/crypt"); +// libdcp::make_crypt_chain ("build/test/crypt"); +//} + +//#include "encryption_test.cc" +//#include "certificates_test.cc"