From bed01a8e72f31e73ea8f206f9b18d5910416e0c2 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sun, 7 Oct 2012 22:42:49 +0100 Subject: [PATCH] Simple test to make sure a couple of simple make DCP jobs complete. --- src/lib/job_manager.cc | 14 +++++++++++++ src/lib/job_manager.h | 1 + test/test.cc | 47 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 62 insertions(+) diff --git a/src/lib/job_manager.cc b/src/lib/job_manager.cc index a166b5924..76fcc6c5d 100644 --- a/src/lib/job_manager.cc +++ b/src/lib/job_manager.cc @@ -73,6 +73,20 @@ JobManager::work_to_do () const return i != _jobs.end (); } +bool +JobManager::errors () const +{ + boost::mutex::scoped_lock lm (_mutex); + for (list >::const_iterator i = _jobs.begin(); i != _jobs.end(); ++i) { + if ((*i)->finished_in_error ()) { + return true; + } + } + + return false; +} + + void JobManager::scheduler () { diff --git a/src/lib/job_manager.h b/src/lib/job_manager.h index d1d33cfc2..8b79fd67d 100644 --- a/src/lib/job_manager.h +++ b/src/lib/job_manager.h @@ -41,6 +41,7 @@ public: void add_after (boost::shared_ptr after, boost::shared_ptr j); std::list > get () const; bool work_to_do () const; + bool errors () const; static JobManager* instance (); diff --git a/test/test.cc b/test/test.cc index 638d526e0..99781d1a2 100644 --- a/test/test.cc +++ b/test/test.cc @@ -315,3 +315,50 @@ BOOST_AUTO_TEST_CASE (client_server_test) (*i)->join (); } } + +BOOST_AUTO_TEST_CASE (make_dcp_test) +{ + string const test_film = "build/test/film2"; + + if (boost::filesystem::exists (test_film)) { + boost::filesystem::remove_all (test_film); + } + + Film film (test_film, false); + film.set_name ("test_film"); + film.set_content ("../../../test/test.mp4"); + film.examine_content (); + film.set_format (Format::from_ratio (185)); + film.set_dcp_content_type (DCPContentType::from_pretty_name ("Test")); + film.make_dcp (true); + + while (JobManager::instance()->work_to_do ()) { + sleep (1); + } + + BOOST_CHECK_EQUAL (JobManager::instance()->errors(), false); +} + +BOOST_AUTO_TEST_CASE (make_dcp_with_range_test) +{ + string const test_film = "build/test/film3"; + + if (boost::filesystem::exists (test_film)) { + boost::filesystem::remove_all (test_film); + } + + Film film (test_film, false); + film.set_name ("test_film"); + film.set_content ("../../../test/test.mp4"); + film.examine_content (); + film.set_format (Format::from_ratio (185)); + film.set_dcp_content_type (DCPContentType::from_pretty_name ("Test")); + film.set_dcp_frames (42); + film.make_dcp (true); + + while (JobManager::instance()->work_to_do ()) { + sleep (1); + } + + BOOST_CHECK_EQUAL (JobManager::instance()->errors(), false); +} -- 2.30.2