summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2024-09-13 23:43:12 +0200
committerCarl Hetherington <cth@carlh.net>2024-09-13 23:43:12 +0200
commitc1d3f6f4f645e76302ca4262de3517497fa1e14b (patch)
tree1e12c089628be8bb798b425ef78865773b6b7e2e /test
parent73747a031e35ab8884aa16ebd3c8721dfb0391bc (diff)
parent4f850f9958beacd8d2b39fda1941b68ffb94b2f0 (diff)
Merge remote-tracking branch 'origin/main' into v2.17.x
Diffstat (limited to 'test')
-rw-r--r--test/j2k_encoder_test.cc12
-rw-r--r--test/job_manager_test.cc2
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());