X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=test%2Ftests.cc;h=fa0b57ab0206411d54091074f037e48e6198bcd3;hb=341bdc0e4f78fed5f231e741142e2e74415f56b7;hp=cb180ec0f5c60c2d7b2f7ac16a600d3cb7c5bdbf;hpb=cadec42b9547665ac03a7180af374ebb40df7c78;p=libdcp.git diff --git a/test/tests.cc b/test/tests.cc index cb180ec0..fa0b57ab 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" @@ -25,108 +27,66 @@ #include "types.h" #include "exceptions.h" #include "subtitle_asset.h" +#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); - - d.add_picture_asset (sigc::ptr_fun (&j2c), 32, 32); - d.add_sound_asset (sigc::ptr_fun (&wav), 2); - - 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 (d.add_picture_asset (p, 32, 32), libdcp::FileError); - BOOST_CHECK_THROW (d.add_sound_asset (p), 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"); - BOOST_CHECK_EQUAL (subs.fonts().size(), 1); - BOOST_CHECK_EQUAL (subs.fonts().front()->subtitles().size(), 4); - - list >::const_iterator i = subs.fonts().front()->subtitles().begin (); - - BOOST_CHECK_EQUAL ((*i)->in(), libdcp::Time (0, 0, 5, 198)); - BOOST_CHECK_EQUAL ((*i)->out(), libdcp::Time (0, 0, 7, 115)); - BOOST_CHECK_EQUAL ((*i)->texts().size(), 1); - BOOST_CHECK_EQUAL ((*i)->texts().front()->v_position(), 15); - BOOST_CHECK_EQUAL ((*i)->texts().front()->text(), "My jacket was Idi Amin's"); - ++i; - - BOOST_CHECK_EQUAL ((*i)->in(), libdcp::Time (0, 0, 7, 177)); - BOOST_CHECK_EQUAL ((*i)->out(), libdcp::Time (0, 0, 11, 31)); - BOOST_CHECK_EQUAL ((*i)->texts().size(), 2); - BOOST_CHECK_EQUAL ((*i)->texts().front()->v_position(), 21); - BOOST_CHECK_EQUAL ((*i)->texts().front()->text(), "My corset was H.M. The Queen's"); - BOOST_CHECK_EQUAL ((*i)->texts().back()->v_position(), 15); - BOOST_CHECK_EQUAL ((*i)->texts().back()->text(), "My large wonderbra"); - ++i; - - BOOST_CHECK_EQUAL ((*i)->in(), libdcp::Time (0, 0, 11, 94)); - BOOST_CHECK_EQUAL ((*i)->out(), libdcp::Time (0, 0, 13, 63)); - BOOST_CHECK_EQUAL ((*i)->texts().size(), 1); - BOOST_CHECK_EQUAL ((*i)->texts().front()->v_position(), 15); - BOOST_CHECK_EQUAL ((*i)->texts().front()->text(), "Once belonged to the Shah"); - ++i; - - BOOST_CHECK_EQUAL ((*i)->in(), libdcp::Time (0, 0, 13, 104)); - BOOST_CHECK_EQUAL ((*i)->out(), libdcp::Time (0, 0, 15, 177)); - BOOST_CHECK_EQUAL ((*i)->texts().size(), 1); - BOOST_CHECK_EQUAL ((*i)->texts().front()->v_position(), 15); - BOOST_CHECK_EQUAL ((*i)->texts().front()->text(), "And these are Roy Hattersley's jeans"); - - BOOST_CHECK_EQUAL (subs.subtitles_at (libdcp::Time (0, 0, 14, 042)).size(), 1); - BOOST_CHECK_EQUAL (subs.subtitles_at (libdcp::Time (0, 0, 14, 042)).front()->text(), "And these are Roy Hattersley's jeans"); -} - +static string test_corpus = "../libdcp-test"; + +#include "util_test.cc" +#include "decryption_test.cc" +#include "kdm_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" +#include "certificates_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"