Fix build with some older boosts.
[dcpomatic.git] / test / test.cc
index 9ab7fe4804b0a146880413707efa0c13373038ca..abadb72fcee138fa45f560a1973a48542a8fc370 100644 (file)
@@ -47,8 +47,8 @@
 #include <dcp/dcp.h>
 #include <dcp/equality_options.h>
 #include <dcp/filesystem.h>
-#include <dcp/mono_picture_asset.h>
-#include <dcp/mono_picture_frame.h>
+#include <dcp/mono_j2k_picture_asset.h>
+#include <dcp/mono_j2k_picture_frame.h>
 #include <dcp/openjpeg_image.h>
 #include <dcp/reel.h>
 #include <dcp/reel_picture_asset.h>
@@ -120,12 +120,8 @@ setup_test_config ()
        Config::instance()->set_master_encoding_threads (boost::thread::hardware_concurrency() / 2);
        Config::instance()->set_server_encoding_threads (1);
        Config::instance()->set_server_port_base (61921);
-       Config::instance()->set_default_dcp_content_type (static_cast<DCPContentType*> (0));
        Config::instance()->set_default_audio_delay (0);
-       Config::instance()->set_default_j2k_bandwidth (100000000);
-       Config::instance()->set_default_interop (false);
        Config::instance()->set_default_still_length (10);
-       Config::instance()->set_default_dcp_audio_channels(8);
        Config::instance()->set_log_types (
                LogEntry::TYPE_GENERAL | LogEntry::TYPE_WARNING |
                LogEntry::TYPE_ERROR | LogEntry::TYPE_DISK
@@ -138,7 +134,8 @@ setup_test_config ()
        decryption->set_key(dcp::file_to_string("test/data/decryption_key"));
        Config::instance()->set_decryption_chain (decryption);
        Config::instance()->set_dcp_asset_filename_format(dcp::NameFormat("%t"));
-       Config::instance()->set_cinemas_file("test/data/empty_cinemas.xml");
+       Config::instance()->set_cinemas_file("build/test/cinemas.sqlite3");
+       Config::instance()->set_dkdm_recipients_file("build/test/dkdm_recipients.sqlite3");
 }
 
 
@@ -202,21 +199,7 @@ test_film_dir (string name)
 
 
 shared_ptr<Film>
-new_test_film (string name)
-{
-       auto p = test_film_dir (name);
-       if (boost::filesystem::exists (p)) {
-               boost::filesystem::remove_all (p);
-       }
-
-       auto film = make_shared<Film>(p);
-       film->write_metadata ();
-       return film;
-}
-
-
-shared_ptr<Film>
-new_test_film2 (string name, vector<shared_ptr<Content>> content, Cleanup* cleanup)
+new_test_film(string name, vector<shared_ptr<Content>> content, Cleanup* cleanup)
 {
        auto p = test_film_dir (name);
        if (boost::filesystem::exists (p)) {
@@ -227,6 +210,7 @@ new_test_film2 (string name, vector<shared_ptr<Content>> content, Cleanup* clean
        }
 
        auto film = make_shared<Film>(p);
+       film->use_template({});
        film->set_dcp_content_type (DCPContentType::from_isdcf_name ("TST"));
        film->set_container (Ratio::from_id ("185"));
        film->write_metadata ();
@@ -287,13 +271,14 @@ check_wav_file (boost::filesystem::path ref, boost::filesystem::path check)
 void
 check_mxf_audio_file (boost::filesystem::path ref, boost::filesystem::path check)
 {
-       ASDCP::PCM::MXFReader ref_reader;
+       Kumu::FileReaderFactory factory;
+       ASDCP::PCM::MXFReader ref_reader(factory);
        BOOST_REQUIRE (!ASDCP_FAILURE (ref_reader.OpenRead (ref.string().c_str())));
 
        ASDCP::PCM::AudioDescriptor ref_desc;
        BOOST_REQUIRE (!ASDCP_FAILURE (ref_reader.FillAudioDescriptor (ref_desc)));
 
-       ASDCP::PCM::MXFReader check_reader;
+       ASDCP::PCM::MXFReader check_reader(factory);
        BOOST_REQUIRE (!ASDCP_FAILURE (check_reader.OpenRead (check.string().c_str())));
 
        ASDCP::PCM::AudioDescriptor check_desc;
@@ -316,13 +301,14 @@ check_mxf_audio_file (boost::filesystem::path ref, boost::filesystem::path check
 bool
 mxf_atmos_files_same (boost::filesystem::path ref, boost::filesystem::path check, bool verbose)
 {
-       ASDCP::ATMOS::MXFReader ref_reader;
+       Kumu::FileReaderFactory factory;
+       ASDCP::ATMOS::MXFReader ref_reader(factory);
        BOOST_REQUIRE (!ASDCP_FAILURE(ref_reader.OpenRead(ref.string().c_str())));
 
        ASDCP::ATMOS::AtmosDescriptor ref_desc;
        BOOST_REQUIRE (!ASDCP_FAILURE(ref_reader.FillAtmosDescriptor(ref_desc)));
 
-       ASDCP::ATMOS::MXFReader check_reader;
+       ASDCP::ATMOS::MXFReader check_reader(factory);
        BOOST_REQUIRE (!ASDCP_FAILURE(check_reader.OpenRead(check.string().c_str())));
 
        ASDCP::ATMOS::AtmosDescriptor check_desc;
@@ -827,10 +813,10 @@ check_one_frame (boost::filesystem::path dcp_dir, int64_t index, boost::filesyst
 {
        dcp::DCP dcp (dcp_dir);
        dcp.read ();
-       auto asset = dynamic_pointer_cast<dcp::MonoPictureAsset> (dcp.cpls().front()->reels().front()->main_picture()->asset());
+       auto asset = dynamic_pointer_cast<dcp::MonoJ2KPictureAsset>(dcp.cpls().front()->reels().front()->main_picture()->asset());
        BOOST_REQUIRE (asset);
        auto frame = asset->start_read()->get_frame(index);
-       dcp::MonoPictureFrame ref_frame(ref);
+       dcp::MonoJ2KPictureFrame ref_frame(ref);
 
        auto image = frame->xyz_image ();
        auto ref_image = ref_frame.xyz_image();
@@ -963,10 +949,10 @@ void progress (float) {}
 void
 verify_dcp(boost::filesystem::path dir, vector<dcp::VerificationNote::Code> ignore)
 {
-       auto notes = dcp::verify({dir}, {}, &stage, &progress, {}, TestPaths::xsd());
+       auto result = dcp::verify({dir}, {}, &stage, &progress, {}, TestPaths::xsd());
        bool ok = true;
-       for (auto i: notes) {
-               if (find(ignore.begin(), ignore.end(), i.code()) == ignore.end()) {
+       for (auto i: result.notes) {
+               if (i.type() != dcp::VerificationNote::Type::OK && find(ignore.begin(), ignore.end(), i.code()) == ignore.end()) {
                        std::cout << "\t" << dcp::note_to_string(i) << "\n";
                        ok = false;
                }
@@ -1040,8 +1026,16 @@ check_int_close (std::pair<int, int> a, std::pair<int, int> b, int d)
 }
 
 
+ConfigRestorer::ConfigRestorer(boost::filesystem::path override_path)
+{
+       Config::override_path = override_path;
+       Config::drop();
+}
+
+
 ConfigRestorer::~ConfigRestorer()
 {
+       Config::override_path = boost::none;
        setup_test_config();
 }
 
@@ -1083,3 +1077,4 @@ Editor::replace(string a, string b)
        boost::algorithm::replace_all(_content, a, b);
        BOOST_REQUIRE(_content != old_content);
 }
+