diff options
| author | Carl Hetherington <cth@carlh.net> | 2024-09-13 23:43:12 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2024-09-13 23:43:12 +0200 |
| commit | c1d3f6f4f645e76302ca4262de3517497fa1e14b (patch) | |
| tree | 1e12c089628be8bb798b425ef78865773b6b7e2e /test | |
| parent | 73747a031e35ab8884aa16ebd3c8721dfb0391bc (diff) | |
| parent | 4f850f9958beacd8d2b39fda1941b68ffb94b2f0 (diff) | |
Merge remote-tracking branch 'origin/main' into v2.17.x
Diffstat (limited to 'test')
| -rw-r--r-- | test/j2k_encoder_test.cc | 12 | ||||
| -rw-r--r-- | test/job_manager_test.cc | 2 |
2 files changed, 10 insertions, 4 deletions
diff --git a/test/j2k_encoder_test.cc b/test/j2k_encoder_test.cc index 083a61cf8..358ccf435 100644 --- a/test/j2k_encoder_test.cc +++ b/test/j2k_encoder_test.cc @@ -44,19 +44,25 @@ BOOST_AUTO_TEST_CASE(j2k_encoder_deadlock_test) auto film = new_test_film("j2k_encoder_deadlock_test"); + auto constexpr threads = 4; + /* Don't call ::start() on this Writer, so it can never write anything */ Writer writer(film, {}, {}); - writer.set_encoder_threads(4); + writer.set_encoder_threads(threads); /* We want to test the case where the writer queue fills, and this can't happen unless there * are enough encoding threads (each of which will end up waiting for the writer to empty, * which will never happen). */ - Config::instance()->set_master_encoding_threads(4); + Config::instance()->set_master_encoding_threads(threads); J2KEncoder encoder(film, writer); encoder.begin(); - for (int i = 0; i < 26; ++i) { + /* The queue will be full when we write another frame when there are already + * more than (threads * frames_in_memory_multiplier [i.e. 3]) + * in the queue, so to fill the queue we must add threads * 3 + 2. + */ + for (int i = 0; i < (threads * 3) + 2; ++i) { auto image = make_shared<Image>(AV_PIX_FMT_RGB24, dcp::Size(1998, 1080), Image::Alignment::PADDED); auto image_proxy = make_shared<RawImageProxy>(image); encoder.encode( diff --git a/test/job_manager_test.cc b/test/job_manager_test.cc index 4a2f8bde5..abbbf5c4b 100644 --- a/test/job_manager_test.cc +++ b/test/job_manager_test.cc @@ -155,7 +155,7 @@ BOOST_AUTO_TEST_CASE(cancel_job_test) jobs[1]->cancel(); jobs[0]->cancel(); - dcpomatic_sleep_seconds(1); + dcpomatic_sleep_seconds(5); BOOST_CHECK(jobs[0]->finished_cancelled()); BOOST_CHECK(jobs[1]->finished_cancelled()); |
