Merge.
[dcpomatic.git] / test / test.cc
index 9201e5b4cfceb7beaa205ba8015ba660298e882d..5dd591ddcc7ab2ad10d3ec8d47f46ced0c30d89b 100644 (file)
@@ -29,7 +29,7 @@
 #include <dcp/dcp.h>
 #include "lib/config.h"
 #include "lib/util.h"
-#include "lib/ui_signaller.h"
+#include "lib/signal_manager.h"
 #include "lib/film.h"
 #include "lib/job_manager.h"
 #include "lib/job.h"
@@ -51,7 +51,7 @@ using boost::scoped_array;
 
 boost::filesystem::path private_data = boost::filesystem::path ("..") / boost::filesystem::path ("dcpomatic-test-private");
 
-class TestUISignaller : public UISignaller
+class TestSignalManager : public SignalManager
 {
 public:
        /* No wakes in tests: we call ui_idle ourselves */
@@ -68,16 +68,16 @@ struct TestConfig
                dcpomatic_setup ();
 
                Config::instance()->set_num_local_encoding_threads (1);
-               Config::instance()->set_server_port_base (61920);
+               Config::instance()->set_server_port_base (61921);
                Config::instance()->set_default_isdcf_metadata (ISDCFMetadata ());
-               Config::instance()->set_default_container (static_cast<Ratio*> (0));
+               Config::instance()->set_default_container (Ratio::from_id ("185"));
                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);
 
                ServerFinder::instance()->disable ();
 
-               ui_signaller = new TestUISignaller ();
+               signal_manager = new TestSignalManager ();
        }
 
        ~TestConfig ()
@@ -143,7 +143,7 @@ check_audio_file (boost::filesystem::path ref, boost::filesystem::path check)
                BOOST_CHECK_EQUAL (r, this_time);
 
                for (sf_count_t i = 0; i < this_time; ++i) {
-                       BOOST_CHECK (fabs (ref_buffer[i] - check_buffer[i]) <= 65536);
+                       BOOST_REQUIRE (fabs (ref_buffer[i] - check_buffer[i]) <= 65536);
                }
 
                N -= this_time;
@@ -210,7 +210,7 @@ check_dcp (boost::filesystem::path ref, boost::filesystem::path check)
        options.max_std_dev_pixel_error = 5;
        options.max_audio_sample_error = 255;
        options.cpl_annotation_texts_can_differ = true;
-       options.mxf_filenames_can_differ = true;
+       options.reel_annotation_texts_can_differ = true;
        options.reel_hashes_can_differ = true;
        
        BOOST_CHECK (ref_dcp.equals (check_dcp, options, boost::bind (note, _1, _2)));
@@ -285,8 +285,11 @@ wait_for_jobs ()
 {
        JobManager* jm = JobManager::instance ();
        while (jm->work_to_do ()) {
-               ui_signaller->ui_idle ();
+               signal_manager->ui_idle ();
        }
+
+       cout << "Waiting for jobs: all finished; errors=" << jm->errors() << ".\n";
+       
        if (jm->errors ()) {
                int N = 0;
                for (list<shared_ptr<Job> >::iterator i = jm->_jobs.begin(); i != jm->_jobs.end(); ++i) {
@@ -305,10 +308,14 @@ wait_for_jobs ()
                }
        }
 
-       ui_signaller->ui_idle ();
+       signal_manager->ui_idle ();
 
-       /* Discard all jobs so we lose any we just reported an error in */
-       JobManager::drop ();
+       if (jm->errors ()) {
+               cout << "Dropping JobManager\n";
+               JobManager::drop ();
+       } else {
+               cout << "Not dropping JobManager\n";
+       }
 }
 
 void