diff options
| author | Carl Hetherington <cth@carlh.net> | 2022-08-06 22:57:58 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2022-08-11 22:40:59 +0200 |
| commit | 1fe717e9125e896c92f281922e87f8158b15c7af (patch) | |
| tree | fff3bdf299150f6339428b60ac30b0a6bcf3531c /test | |
| parent | 1d3085c403f265fb203654d461c0b77974205f2f (diff) | |
Allow cancellation of un-started jobs (#2777).
Diffstat (limited to 'test')
| -rw-r--r-- | test/job_manager_test.cc | 22 |
1 files changed, 22 insertions, 0 deletions
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> film; + + vector<shared_ptr<TestJob>> jobs; + for (int i = 0; i < 2; ++i) { + auto job = make_shared<TestJob>(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()); +} + |
