#include "test.h"
#include <dcp/cpl.h>
#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/openjpeg_image.h>
boost::filesystem::path TestPaths::xsd ()
{
- return boost::filesystem::canonical(boost::filesystem::path("..") / boost::filesystem::path("libdcp") / boost::filesystem::path("xsd"));
+ return boost::filesystem::current_path().parent_path() / "libdcp" / "xsd";
}
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
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");
}
dcpomatic_setup ();
setup_test_config ();
+ capture_ffmpeg_logs();
EncodeServerFinder::instance()->stop ();
signal_manager = new TestSignalManager ();
dcpomatic_log.reset (new FileLog("build/test/log"));
+
+ auto const& suite = boost::unit_test::framework::master_test_suite();
+ int types = LogEntry::TYPE_GENERAL | LogEntry::TYPE_WARNING | LogEntry::TYPE_ERROR;
+ for (int i = 1; i < suite.argc; ++i) {
+ if (string(suite.argv[i]) == "--log=debug-player") {
+ types |= LogEntry::TYPE_DEBUG_PLAYER;
+ }
+ }
+
+ dcpomatic_log->set_types(types);
}
~TestConfig ()
BOOST_REQUIRE (!ASDCP_FAILURE (check_reader.FillAudioDescriptor (check_desc)));
BOOST_REQUIRE_EQUAL (ref_desc.ContainerDuration, check_desc.ContainerDuration);
+ BOOST_REQUIRE_MESSAGE(ref_desc.ChannelCount, check_desc.ChannelCount);
ASDCP::PCM::FrameBuffer ref_buffer (Kumu::Megabyte);
ASDCP::PCM::FrameBuffer check_buffer (Kumu::Megabyte);
void
-check_dcp (boost::filesystem::path ref, boost::filesystem::path check)
+check_dcp(boost::filesystem::path ref, boost::filesystem::path check, bool sound_can_differ)
{
dcp::DCP ref_dcp (ref);
ref_dcp.read ();
options.asset_hashes_can_differ = true;
options.issue_dates_can_differ = true;
options.max_subtitle_vertical_position_error = 0.001;
+ options.sound_assets_can_differ = sound_can_differ;
- BOOST_CHECK (ref_dcp.equals (check_dcp, options, boost::bind (note, _1, _2)));
+ BOOST_CHECK_MESSAGE(ref_dcp.equals(check_dcp, options, boost::bind (note, _1, _2)), check << " does not match " << ref);
}
void
vector<directory_entry> matches;
std::copy_if(recursive_directory_iterator(film->dir(film->dcp_name())), recursive_directory_iterator(), std::back_inserter(matches), [&prefix](directory_entry const& entry) {
- return boost::algorithm::starts_with(entry.path().leaf().string(), prefix);
+ return boost::algorithm::starts_with(entry.path().filename().string(), prefix);
});
BOOST_REQUIRE_MESSAGE(matches.size() == 1, "Found " << matches.size() << " files with prefix " << prefix);
subtitle_file (shared_ptr<Film> film)
{
for (auto i: boost::filesystem::recursive_directory_iterator(film->directory().get() / film->dcp_name(false))) {
- if (boost::algorithm::starts_with(i.path().leaf().string(), "sub_")) {
+ if (boost::algorithm::starts_with(i.path().filename().string(), "sub_")) {
return i.path();
}
}
void
verify_dcp(boost::filesystem::path dir, vector<dcp::VerificationNote::Code> ignore)
{
- auto notes = dcp::verify({dir}, &stage, &progress, {}, TestPaths::xsd());
+ auto notes = dcp::verify({dir}, {}, &stage, &progress, {}, TestPaths::xsd());
bool ok = true;
for (auto i: notes) {
if (find(ignore.begin(), ignore.end(), i.code()) == ignore.end()) {