X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=test%2Fjob_manager_test.cc;h=4a2f8bde5f97e8849dfb0347d273c6a0edba63c8;hb=1fe717e9125e896c92f281922e87f8158b15c7af;hp=e11423575f48a18b91d70aa020fc0cb1fa6c54c0;hpb=1d3085c403f265fb203654d461c0b77974205f2f;p=dcpomatic.git diff --git a/test/job_manager_test.cc b/test/job_manager_test.cc index e11423575..4a2f8bde5 100644 --- a/test/job_manager_test.cc +++ b/test/job_manager_test.cc @@ -65,6 +65,7 @@ public: if (finished ()) { return; } + boost::this_thread::interruption_point(); } } @@ -139,3 +140,24 @@ BOOST_AUTO_TEST_CASE (job_manager_test2) BOOST_REQUIRE (!wait_for_jobs()); } + +BOOST_AUTO_TEST_CASE(cancel_job_test) +{ + shared_ptr film; + + vector> jobs; + for (int i = 0; i < 2; ++i) { + auto job = make_shared(film); + jobs.push_back(job); + JobManager::instance()->add(job); + } + + jobs[1]->cancel(); + jobs[0]->cancel(); + + dcpomatic_sleep_seconds(1); + + BOOST_CHECK(jobs[0]->finished_cancelled()); + BOOST_CHECK(jobs[1]->finished_cancelled()); +} +