X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=test%2Ftest.cc;h=4466b74cb32d77212766b84302df0e4a03456daf;hb=1f82930e73679d6aec5223caa255f564339a1a2a;hp=241032099b8922ebf7935c971978dcba6ac898f0;hpb=a79d78d8bb6d51f6662f1f63b9f8fd19e1a0c5f1;p=dcpomatic.git diff --git a/test/test.cc b/test/test.cc index 241032099..4466b74cb 100644 --- a/test/test.cc +++ b/test/test.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2012 Carl Hetherington + Copyright (C) 2012-2014 Carl Hetherington This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -17,6 +17,10 @@ */ +/** @file test/test.cc + * @brief Overall test stuff and useful methods for tests. + */ + #include #include #include @@ -43,6 +47,8 @@ using std::cerr; using std::list; using boost::shared_ptr; +boost::filesystem::path private_data = boost::filesystem::path ("..") / boost::filesystem::path ("dcpomatic-test-private"); + class TestUISignaller : public UISignaller { public: @@ -61,7 +67,7 @@ struct TestConfig Config::instance()->set_num_local_encoding_threads (1); Config::instance()->set_server_port_base (61920); - Config::instance()->set_default_dci_metadata (DCIMetadata ()); + Config::instance()->set_default_isdcf_metadata (ISDCFMetadata ()); Config::instance()->set_default_container (static_cast (0)); Config::instance()->set_default_dcp_content_type (static_cast (0)); Config::instance()->set_default_audio_delay (0); @@ -70,6 +76,11 @@ struct TestConfig ui_signaller = new TestUISignaller (); } + + ~TestConfig () + { + JobManager::drop (); + } }; BOOST_GLOBAL_FIXTURE (TestConfig); @@ -102,7 +113,7 @@ check_file (boost::filesystem::path ref, boost::filesystem::path check) { uintmax_t N = boost::filesystem::file_size (ref); BOOST_CHECK_EQUAL (N, boost::filesystem::file_size (check)); - FILE* ref_file = fopen (ref.c_str(), "rb"); + FILE* ref_file = fopen_boost (ref, "rb"); BOOST_CHECK (ref_file); FILE* check_file = fopen_boost (check, "rb"); BOOST_CHECK (check_file); @@ -132,7 +143,7 @@ check_file (boost::filesystem::path ref, boost::filesystem::path check) static void note (dcp::NoteType t, string n) { - if (t == dcp::ERROR) { + if (t == dcp::DCP_ERROR) { cerr << n << "\n"; } } @@ -171,7 +182,7 @@ check_xml (xmlpp::Element* ref, xmlpp::Element* test, list ignore) xmlpp::Element::NodeList::iterator k = ref_children.begin (); xmlpp::Element::NodeList::iterator l = test_children.begin (); - while (k != ref_children.end ()) { + while (k != ref_children.end () && l != test_children.end ()) { /* XXX: should be doing xmlpp::EntityReference, xmlpp::XIncludeEnd, xmlpp::XIncludeStart */ @@ -200,6 +211,9 @@ check_xml (xmlpp::Element* ref, xmlpp::Element* test, list ignore) ++k; ++l; } + + BOOST_CHECK (k == ref_children.end ()); + BOOST_CHECK (l == test_children.end ()); } void @@ -221,10 +235,19 @@ wait_for_jobs () ui_signaller->ui_idle (); } if (jm->errors ()) { + int N = 0; + for (list >::iterator i = jm->_jobs.begin(); i != jm->_jobs.end(); ++i) { + if ((*i)->finished_in_error ()) { + ++N; + } + } + cerr << N << " errors.\n"; + for (list >::iterator i = jm->_jobs.begin(); i != jm->_jobs.end(); ++i) { if ((*i)->finished_in_error ()) { - cerr << (*i)->error_summary () << "\n" - << (*i)->error_details () << "\n"; + cerr << (*i)->name() << ":\n" + << "\tsummary: " << (*i)->error_summary () << "\n" + << "\tdetails: " << (*i)->error_details () << "\n"; } } }